レイヤ2スイッチ
一言でいうと
MACアドレスに基づいて同一ネットワーク内のデータの転送を行うためのネットワーク機器。
試験のポイント
- CCENT試験では、レイヤ2スイッチの動作の仕組みをしっかりと理解しておくことはとても重要です。
- レイヤ2スイッチによって動的にMACアドレスを学習する仕組みを説明できるようにしましょう。
- 学習したMACアドレスに基づいてどのようにしてデータを転送するかを説明できるようにしましょう。
レイヤ2スイッチとは
レイヤ2スイッチは、MACアドレスに基づいて同一ネットワーク内のデータの転送を行うためのネットワーク機器です。レイヤ2スイッチは、名前に「レイヤ2」とあるように、OSI参照モデルにおけるデータリンク層のネットワーク機器です。
レイヤ2スイッチで転送の判断に利用するMACアドレスは、データリンク層レベルのアドレスです。データリンク層レベルのアドレスに基づいてデータ転送を行うので、データリンク層のネットワーク機器ということになります。
レイヤ2スイッチによって「1つの」イーサネットを利用したネットワークを構築することができ、ネットワーク内のデータの転送を行います。レイヤ2スイッチを複数台接続しても「1つの」ネットワークとなります[1]。
レイヤ2スイッチには「ネットワークの入口」という役割もあります。たくさんのイーサネットインタフェースを備えていて、クライアントPCやサーバをネットワークに接続するときには、まず、レイヤ2スイッチと接続します。ネットワークの入口になるという意味から、レイヤ2スイッチをアクセススイッチと表現することもよくあります。レイヤ2スイッチは、一般家庭向けの製品の場合、スイッチングハブと呼ばれることも多いです[2]。
なお、シスコシステムズにはレイヤ2スイッチの製品シリーズとして、「Cisco Catalyst2960-Xシリーズ」などがあります。
注
[1]: VLANを利用すると、レイヤ2スイッチで複数のネットワークとすることができます。
[2]: 単に「ハブ」と呼ぶこともありますが、物理層レベルの「共有(シェアード)ハブ」と紛らわしくなります。筆者個人としては、「ハブ」という呼び方は使うべきではないと考えています。
レイヤ2スイッチの動作
レイヤ2スイッチの動作はとてもシンプルです。レイヤ2スイッチがデータを転送する動作の流れは次のようになります。なお、レイヤ2スイッチにとっての転送するデータは、イーサネットフレームです。
- 受信したイーサネットフレームの送信元MACアドレスをMACアドレステーブルに登録する
- 宛先MACアドレスとMACアドレステーブルから転送先のポートを決定して、イーサネットフレームを転送する。MACアドレステーブルに存在しないMACアドレスの場合は、受信したポート以外のすべてのポートへイーサネットフレームを転送する(フラッディング)。
ここからは、レイヤ2スイッチのイーサネットフレームの転送の仕組みを、次図に示すネットワーク構成を見ながら具体的に解説します。
図2では、2台のレイヤ2スイッチSW1とSW2にホストA~ホストDを接続しています。ホストA~ホストDは同一ネットワークに接続していることになります。また、話を簡単にするために、各ホストのMACアドレスはそれぞれのホスト名のA~Dとします。
ホストAからホストDへのイーサネットフレームの転送(SW1の動作)
図2のネットワーク構成で、ホストAからホストDへイーサネットフレームを転送するときを考えます。ホストAは次のMACアドレスを指定して、イーサネットフレームを送信します(図3の①)。
- 宛先MACアドレス: D
- 送信元MACアドレス: A
なお、TCP/IPでは本来、IPアドレスを指定しなければいけません。今回は、レイヤ2スイッチの動作を解説するのが主な目的なので、IPアドレスは意識していません。通常は、宛先IPアドレスに対する宛先MACアドレスをARP[3]によって解決しなければいけません。今回の解説では、ARPのアドレス解決の流れは省略しています。また、ARPアドレス解決の過程で、レイヤ2スイッチのMACアドレステーブルにMACアドレスが登録されます。しかし、以降の解説ではMACアドレステーブルには何も登録されていないものとしています。
注
[3]: ARP(Address Resolution Protocol)は、IPアドレスからイーサネットのMACアドレスを得るために使用されるプロトコル。
SW1はポート1でイーサネットフレームを受信します。これは、流れてくる電気信号を「0」と「1」のビットに変換して、イーサネットフレームとして認識することになります。そして、イーサネットフレームのイーサネットヘッダにある送信元MACアドレスAをMACアドレステーブルに登録します。SW1は、ポート1の先にはAというMACアドレスが接続されているということを認識していることになります(図3の②)。
次に、SW1は宛先MACアドレスDを見て、MACアドレステーブルからどのポートにイーサネットフレームを転送するべきかを判断します。MACアドレスDは、MACアドレステーブルに登録されていません。MACアドレステーブルに登録されていないMACアドレスが宛先になっているイーサネットフレームをUnknownユニキャストフレームと呼びます。Unknownユニキャストフレームは、受信したポート以外のすべてのポートへ転送します。これをフラッディングと呼びます(図3の③)。レイヤ2スイッチのイーサネットフレームの転送は、「わからなかったらとりあえず転送しておく」というちょっといい加減な動作をしているわけです。この点は、ルータの動作と大きく異なります。
ポート1で受信しているので、ポート2とポート3から受信したイーサネットフレームを転送します。受信したイーサネットフレームは1つだけですが、SW1がフラッディングするためにコピーします。コピーしているだけなので、受信したイーサネットフレームはいっさい変更されていません。
ポート2から転送されたイーサネットフレームは、ホストBに届きます。ホストBは宛先MACアドレスは自身のMACアドレスではないので、イーサネットフレームを破棄します。そして、ポート3から転送されたイーサネットフレームは、SW2で処理されることになります。
ホストAからホストDへのイーサネットフレームの転送(SW2の動作)
SW1でフラッディングされたホストAからホストDへのイーサネットフレームは、SW2のポート3で受信します。動作はSW1と同じです。まず、送信元MACアドレスAを、SW2のMACアドレステーブルに登録します(図4の①)。ただし、宛先MACアドレスDは、MACアドレステーブルに登録されていません。そのため、フラッディングされることになり受信したポート3以外のポート1、ポート2へ転送されます(図4の②)。
ホストCは宛先MACアドレスが自分宛てではないので、イーサネットフレームを破棄します。ホストDは宛先MACアドレスが自分宛なので、イーサネットフレームを受信して上位プロトコルでの処理を行っていきます。