MACアドレスはネットワークに欠かせない識別情報の1つだ。IPアドレスに比べてあまり知られていないが、通信を裏方で支える重要な要素である。昨今は、iPhoneなどでMACアドレスの「ランダム化」がデフォルトになり、それに伴ってトラブルが発生する懸念があるなど、ネットワーク管理者が知っておくべき新しいトピックもある。改めてMACアドレスについて理解し、謎に思っている部分や疑問点をなくしておこう。

Q:LANスイッチはMACアドレスをどのように使っているの?

 LANスイッチはMACアドレスを利用して、効率的にデータ(イーサネットではフレームと呼びます)を転送しています。この際に利用するのが「MACアドレス学習テーブル」(以下、学習テーブル)です。学習テーブルには、LANスイッチのポート(LANポート)と、その先につながるパソコンのMACアドレスの対応が登録されています。どのように動作するのか見てみましょう。

 LANスイッチにパソコンをつないだ直後は、まだ学習テーブルには何も登録されていません。この状態でパソコンがフレームを送信すると、LANスイッチは宛先MACアドレスに対応するLANポートが分からないので、全ポートに向けてフレームを転送します。この動作は「フラッディング」と呼ばれています。LAN内の全端末にフレームが届くのですが、対応するMACアドレスを持った端末だけが受信して処理を始めます。それ以外の端末は自身に無関係なので廃棄します。

 また、LANスイッチはパソコンからフレームを受信すると、受信したLANポートと送信元MACアドレスをセットにして学習テーブルに登録します。そして次回からLANスイッチは、フレームを受信しても全ポートに送り出さずに、学習テーブルを参照して宛先MACアドレスに対応したLANポートのみにフレームを送信します。

 ただし、LANスイッチは定期的に学習テーブルの内容を消去します。パソコンをつなぎ替えた場合、学習テーブルの内容が古いままだと、誤ったLANポートにフレームを送り出してしまう可能性があります。これを防止するために消去するのです。

LANスイッチにおけるフレーム転送の動作
LANスイッチにおけるフレーム転送の動作
[画像のクリックで拡大表示]

Q:MACアドレスとIPアドレスはどのように補完しているの?

 インターネットの世界ではIPアドレスが“住所”の役割を果たします。データは「IPパケット」という形で転送され、その際にIPアドレスは宛先として使われます。これに対してイーサネットでは、IPパケットはフレームに格納されて運ばれます(Wi-Fiのフレームも同様です)。フレームの宛先はMACアドレスで指定するので、たとえ宛先IPパケットが分かっていても対応する宛先MACアドレスを知らなければフレームを送れません。

 MACアドレスとIPアドレスをつなぐ役割を担うのは「ARP(Address Resolution Protocol)」というプロトコルです。これはIPアドレスに対応するMACアドレスを見つけるためのものです。

 仕組みは次のようになります。まず送信端末は宛先IPアドレスに対応したMACアドレスについて、LAN内の全端末に問い合わせます。これは「ARP要求」と呼ばれます。この際に使われる宛先MACアドレスは「FF:FF:FF:FF:FF:FF」という特別なものが使われます。これは「ブロードキャストアドレス」と呼ばれ、このMACアドレスを持ったフレームを受信したLANスイッチは必ず全ポートから送り出します。前述のフラッディングとは一見すると似ていますが、別物なので注意が必要です。

 全端末がARP要求を受け取りますが、返答するのは対応するIPアドレスを持った端末のみです。その端末は自身が持つMACアドレスを返します。これは「ARP応答」と呼ばれます。ARP応答を受け取った受信端末は「ARPキャッシュ」と呼ばれるメモリーに記録します。そして次回からは、ARP要求を出す前にまずARPキャッシュを参照して通信を始めます。

 なおARPはIPv4で使われるプロトコルで、IPv6では「近隣探索」という別の仕組みが使われています。

ARPの仕組み
ARPの仕組み
[画像のクリックで拡大表示]

この先は日経クロステック Active会員の登録が必要です

日経クロステック Activeは、IT/製造/建設各分野にかかわる企業向け製品・サービスについて、選択や導入を支援する情報サイトです。製品・サービス情報、導入事例などのコンテンツを多数掲載しています。初めてご覧になる際には、会員登録(無料)をお願いいたします。