<<第19回:どのように接続するか?【トポロジ・バス型・スター型・リング型・CSMA/CD・レイヤ2スイッチ・VLAN・スイッチングハブ】
この記事のポイント
- レイヤ2スイッチは設定なしで動作する
- レイヤ2スイッチは受信したイーサネットフレームの送信元MACアドレスをMACアドレステーブルに登録する
レイヤ2スイッチの動作
レイヤ2スイッチのデータ転送
レイヤ2スイッチのデータ転送の概要
レイヤ2スイッチの動作はとてもシンプルです。レイヤ2スイッチがデータを転送する動作の流れは次のようになります。
- 受信したイーサネットフレームの送信元MACアドレスをMACアドレステーブルに登録する
- 宛先MACアドレスとMACアドレステーブルから転送先のポートを決定して、イーサネットフレームを転送する。MACアドレステーブルに存在しないMACアドレスの場合は、受信したポート以外のすべてのポートヘイーサネットフレームを転送する(フラッディング)
レイヤ2スイッチがこうしたデータを転送するために、設定は必要ありません。電源が入っていて、PCなどを配線さえしていればOKです。
ホストAからホストDへのイーサネットフレームの転送 SW1の動作
レイヤ2スイッチの動作として、下の図のようなネットワーク構成でホストAからホストDヘイーサネットフレームを転送するときを考えます。ホストAは、「宛先MAC アドレス:D」と「送信元MAC アドレス:A」のMACアドレスを指定してイーサネットフレームを送信します。(図①)
SW1はポート1でイーサネットフレームを受信します。流れてくる電気信号を「0」と「1」のピットに変換して、イーサネットフレームとして認識することになります。そして、イーサネットフレームのイーサネットヘッダにある送信元MACアドレスAをMACアドレステーブルに登録します。SW1は、ポート1の先にはAというMACアドレスが接続されているということを認識しています。(図②)
レイヤ2スイッチの動作 その2
次の項目のポイント
- 宛先MACアドレスとMACアドレステーブルから転送先を判断する
- 宛先MACアドレスがMACアドレステーブルに登録されていないUnknown ユニキャストフレームはフラッディングされる
Unknownユニキャストフレーム、フラッディング
ホストAからホストDへのイーサネットフレームの転送 SW1の動作
前項の続きで、下の図を見てください。SW1は宛先MACアドレスDを見て、MACアドレステーブルから転送すべきポートを判断します。
MACアドレスDはMACアドレステーブルに登録されていません。MACアドレステーブルに登録されていないMACアドレスが宛先になっているイーサネットフレームをUnknownユニキャストフレームと呼びます。
わからなければとりあえず転送する
Unknownユニキャストフレームは、受信したポート以外のすべてのポートへ転送します。この動作をフラッディングと呼びます。(下の図の③)
レイヤ2スイッチのイーサネットフレームの転送は、「わからなかったらとりあえず転送しておく」というちょっといい加減な動作をしているわけです。レイヤ2スイッチの転送範囲は、同じネットワークの中だけです。わからないからとりあえず転送しておいても、それほど大した悪影響は出ません。この点は、後で詳しく解説するルータの動作と大きく異なります。ルータの場合は、宛先がわからなければデータを破棄します。
ポート1で受信しているので、ポート2とポート3から受信したイーサネットフレームを転送します。受信したイーサネットフレームは1つだけですが、SW1がフラッディングするためにコピーします。コピーしているだけなので、受信したイーサネットフレームはいっさい変更されていません。
ポート2から転送されたイーサネットフレームは、データの宛先ではないホストBにも届きます。ホストBは、宛先MAC アドレスが自身のMACアドレスではないので、イーサネットフレームを受信せずに破棄します。そして、ポート3から転送されたイーサネットフレームは、SW2で処理されることになります。
レイヤ2スイッチの動作 その3
次の項目のポイント
- 複数のレイヤ2スイッチがあっても、それぞれのレイヤ2スイッチの動作は同じように行っていく
- レイヤ2スイッチは受信したイーサネットフレームの送信元をだんだんと覚えながら、同じネットワーク内のイーサネットインタフェースへ転送する
イーサネットフレーム送信後のMACアドレステーブルへの登録
レイヤ2スイッチごとに繰り返す
SW1でフラッディングされたホストAからホストDへのイーサネットフレームは、SW2のポート3で受信します。動作はSW1と同じです。まず、受信したイーサネットフレームの送信元MACアドレスAをSW2のMACアドレステーブルに登録します(下の図の①)。
そして、宛先MACアドレスDはまだMACアドレステーブルに登録されていません。そのため、フラッディングされることになり、受信したポート3以外のポート1、ポート2へ転送されます(下の図の②)。
ホストCは宛先MACアドレスが自分宛てではないので、イーサネットフレームを破棄します。ホストDは宛先MACアドレスが自分宛てなので、イーサネットフレームを受信してIPなどの上位プロトコルでの処理を行っていきます。
MACアドレスをだんだんと覚えながら転送していく
ここまで解説しているように、レイヤ2スイッチはMACアドレスをだんだんとMACアドレステーブルに覚えさせていきながら、イーサネットフレームを転送していきます。
通信は原則として双方向である
そして、通信は原則として双方向であるということをあらためて思い出しておきましょう。ここまでの例で考えたホストAからホストDへ何かデータを送信したら、その返事となるデータがホストDからホストAへと送信されることになります。