MACアドレスの学習

具体的にスイッチによるイーサネットフレームの転送の仕組みを見ていこう。

スイッチにはMACアドレステーブルが存在し、MACアドレステーブルに基づいてイーサネットフレームを転送している。MACアドレステーブルにはポート番号とMACアドレスの情報が登録されることになる。電源投入時には、MACアドレステーブルには何も登録されていないが、動的にポートとその先に接続されているMACアドレスの情報を学習する。

以下の図において、PC1、PC2、SRVは機器の名称とともにMACアドレスをあらわしているものとする。例えば、PC1からSRVへイーサネットフレームを送信すると、送信先MACアドレス「SRV」、送信元MACアドレス「PC1」である。

ポート2で受信したイーサネットフレームの送信元MACアドレスが「PC1」ということは、ポート2の先にMACアドレス「PC1」が接続されているということである。このような判定に則って、スイッチは受信したイーサネットフレームの送信元MACアドレスの情報をMACアドレステーブルに登録する。

図2 : 送信元MACアドレスの学習

イーサネットフレームの転送(フラッディング)

スイッチは受信したイーサネットフレームを転送するために、今度は送信先MACアドレスを見る。

送信先MACアドレス「SRV」はまだMACアドレステーブルに登録されていない。MACアドレステーブルに登録されていないMACアドレス宛のイーサネットフレームをUnknownユニキャストフレームと呼ぶ。

スイッチはUnknownユニキャストフレームを受信したポート以外のすべてのポートに転送する。この動作をフラッディングと呼ぶ。簡単にいえば、「知らないMACアドレス宛のイーサネットフレームはとりあえず転送する」ということだ。なお、スイッチはUnknownユニキャストフレームだけではなく、ブロードキャストフレーム、マルチキャストフレームもフラッディングする。

図3 : Unknownユニキャストフレームのフラッディング

送信元MACアドレスに基づいたイーサネットフレームの転送

通信は基本的に双方向なのでSRVからPC1へと返事が返ってくる。そのイーサネットフレームの送信先MACアドレスは「PC1」、送信元MACアドレスは「SRV」だ。スイッチは送信元MACアドレス「SRV」をMACアドレステーブルに登録する。そして、送信先MACアドレス「PC1」はポート2に接続されていることがわかっているので、ポート2へと転送する。

図4 : 送信先MACアドレスに基づいたフレームの転送

このように、通信を行ううちにスイッチはMACアドレスを動的に学習して、学習したMACアドレスに基づいて適切なポートへイーサネットフレームを転送する。

以上のイーサネットフレームの転送はスイッチの最も基本的な機能なので、当然ながらネットギア製品ラインナップのすべてが対応している。イーサネットフレームの転送で製品によって異なるのは、登録できるMACアドレス数ぐらいだ。アンマネージスイッチでもMACアドレス数4000なので、SMBの用途ではMACアドレス数の上限が問題になるケースはほとんどないだろう。