謎1 MACアドレスとは?
MAC▼アドレスは、イーサネットや無線LANで通信の宛先を指定するためのアドレスだ。パソコンやスマートフォンだけでなく、ルーターやLANスイッチなどのネットワーク機器にもMACアドレスが割り当てられている。LAN内で通信する際は、MACアドレスを手掛かりにデータを届ける。
ネットワークのアドレスというと、IP▼アドレスが有名だ。MACアドレスとIPアドレスのどちらも、「ネットワークにおける住所」という共通の役割を担う(図1)。IPアドレスはインターネットという広大なネットワークにおける住所であり、MACアドレスは比較的狭いネットワークにおける住所である。より正確に言えば、伝送メディア(LANケーブルや無線など)で直接つながる範囲で使われる。従ってMACアドレスは、NIC▼単位で割り当てられる。
謎2 LANスイッチはMACアドレスをどのように使っているの?
LANスイッチは「MACアドレステーブル」を使って宛先となる機器を管理する。このテーブルには、LANスイッチのポート(LANポート)と、その先につながるパソコンなどの端末のMACアドレスの対応が登録されている。
新規にLANスイッチを設置し、パソコンを接続したとしよう。この時点ではテーブルには何も登録されていない。まずパソコンがデータ(フレーム▼)を送信する(図2(1))。パソコンからフレームを受信したスイッチは、受信したLANポートと送信元MACアドレスをセットにしてテーブルに記録する(同(2))。
そしてLANスイッチはフレームを送信しようとするが、宛先MACアドレスに対応する端末がつながったLANポートが分からない。そこで全ポートからフレームを送信する(同(3))。この動作を「フラッディング」と呼ぶ。これによりLANスイッチに接続した全端末にフレームが届くが、対応するMACアドレスを持つ端末だけが受信して処理を始める。それ以外の端末は自身に無関係なので届いたフレームを廃棄する。
MACアドレステーブルに記録されているMACアドレス宛てのフレームが届いた場合は、LANスイッチはテーブルを参照してそのMACアドレスに対応したLANポートだけからフレームを送信する。
ただし、LANスイッチは定期的にMACアドレステーブルの内容を消去する。パソコンをつなぎ替えた場合、MACアドレステーブルの内容が古いままだと、誤ったLANポートからフレームを送信してしまう可能性があるためだ。