ネットワークには、レイヤ2スイッチだけでなくレイヤ3スイッチやルータ、ファイアウォールなどのさまざまな機器が相互に接続され、構成されています。この連載では、これらのネットワーク機器の仕組みと役割について、わかりやすく解説していきます。今回のテーマはレイヤ23スイッチです。

レイヤ2スイッチの3つのポイント

・レイヤ2スイッチはLANの入り口
・レイヤ2スイッチは同じネットワーク内でのデータの転送を行う
・レイヤ2スイッチはMACアドレスにもとづいてデータの転送を行う

レイヤ2スイッチの特徴

レイヤ2スイッチは、複数のLAN(イーサネット)ポートを持つネットワーク機器です。「スイッチングハブ」や単純に「スイッチ」と呼ばれることもあります。

レイヤ2スイッチはLANの「入り口」に当たります。PCやサーバなどをLANに接続するには、PCやサーバなどのLANポートとレイヤ2スイッチのLANポートをLANケーブルで接続するからです。

図1 レイヤ2スイッチはLANの入り口

最近では、有線だけではなく無線LANもよく利用されています。無線LANの場合は、無線LANアクセスポイントが入り口になります。そして、その無線LANも通常はレイヤ2スイッチに接続されることになります。

なお、LANそのものはレイヤ2スイッチだけでなくレイヤ3スイッチやルータ、ファイアウォールなどのさまざまなネットワーク機器が相互に接続され、構成されています。レイヤ3スイッチなどについては、今後の連載で解説する予定です。

レイヤ2スイッチでのデータの転送

レイヤ2スイッチをはじめとするさまざまなネットワーク機器は、データを転送することが基本的な役割です。いろんなネットワーク機器の仕組みを理解するためには、

・ データを転送する範囲
・何に基づいてデータを転送するか

ということがポイントです。

レイヤ2スイッチの場合は、データを転送する範囲は「同じネットワークの中だけ」です。そして、「MACアドレス」に基づいてデータの転送を行います。以降で、データを転送する範囲とどのようにデータを転送するかについて、もう少し詳しく解説します。

データの転送範囲

「1つのネットワーク」とはルータやレイヤ3スイッチで区切られる範囲で、同じレイヤ2スイッチに接続されているPCやサーバなどは同じネットワークに接続されていることになります。

レイヤ2スイッチは、同じネットワーク内のデータの転送を行います。レイヤ2スイッチでは、ネットワークを超えたデータの転送はできません。なお、複数のレイヤ2スイッチが接続されている場合も、同じネットワークとなります。

図2 レイヤ2スイッチのデータの転送範囲

なお、VLAN(Virtual LAN)という技術により、レイヤ2スイッチでネットワークを分割することもできます。VLANがあると、同じレイヤ2スイッチに接続されていても必ずしも同じネットワークとは言えなくなる場合があります。VLANの環境でも、あくまでもレイヤ2スイッチがデータを転送する範囲は同じネットワーク内だけです。

何に基づいてデータを転送するか

LANポートにはMACアドレスと呼ばれるアドレスがあります。レイヤ2スイッチはこのMACアドレスに基づいてデータを適切なポートに転送します。MACアドレスは48ビットのアドレスで16進数表記します。そのため、あまり馴染み深いものではありませんが、LANで通信するときには必ずMACアドレスが必要です。PCやサーバなどからLAN上に送信されるデータには、宛先MACアドレスと送信元MACアドレスが記載されています。

レイヤ2スイッチは、まず、自身のポートの先にどのようなMACアドレスのLANポートが接続されているかを学習します。ポートの先に接続されているMACアドレスはMACアドレステーブルで管理します。受信したデータの送信元MACアドレスと受信したポートをMACアドレステーブルに登録することになります。そして、送信先MACアドレスとMACアドレステーブルを見て、どのポートにデータを転送すればよいかを判断します。もし、宛先MACアドレスがMACアドレステーブルに存在しなければ、すべてのポートへ転送します。この動作をフラッディングと呼んでいます。レイヤ2スイッチは、「知らないMACアドレス宛てのデータはとりあえず送ってしまえ」というちょっといい加減な感じです。

具体的な例として、次のようなレイヤ2スイッチ2台とPC3台のネットワーク構成を考えましょう。A~CはそれぞれMACアドレスを表しているものとします。このネットワーク構成でAからCへデータを送信すると、次のような流れでMACアドレステーブルへのMACアドレスの登録、データの転送を行います。

1.AからCへデータの送信 AからCへ送信されるデータには、宛先MACアドレス:C、送信元MACアドレス:Aが記載されています。

2.L2SW1のMACアドレステーブルにMACアドレスを登録 L2SW1のポート1でデータを受信します。その送信元MACアドレスはAです。つまり、ポート1の先にはMACアドレスAが接続されているので、MACアドレステーブルに登録します。

3.データの転送 L2SW1は送信先MACアドレスCとMACアドレステーブルを見ます。まだMACアドレステーブルにはCが登録されていません。その場合は、とにかく転送します。ポート2、ポート3へとデータを転送することになります。

4.L2SW2のMACアドレステーブルにMACアドレスを登録 今度は、L2SW2のポート3でデータを受信します。送信元MACアドレスはAなので、L2SW2にとってみると、ポート3の先にMACアドレスAが接続されているとして、MACアドレスレーブルに登録します。

5.データの転送 L2SW2のMACアドレステーブルにもMACアドレスCは登録されていません。データはフラッディングされてポート1へと転送され、Cへと届きます。

図3 レイヤ2スイッチのデータの転送 A→C

そして、たいていはなにかデータを送信すると、その返事が返ってきます。そこで、CからAに返事を返す場合を考えます。

1.CからAへデータの送信 CからAへ送信されるデータには、宛先MACアドレス:A、送信元MACアドレス:Cが記載されています。

2.L2SW2のMACアドレステーブルにMACアドレスを登録 L2SW2のポート1でデータを受信します。その送信元MACアドレスはCです。L2SW2のポート1の先にMACアドレスCが接続されていることをMACアドレステーブルに登録します。

3.データの転送 MACアドレステーブルを見ると、宛先MACアドレスはポート3の先に接続されていることがわかります。そこでL2SW2はポート3へデータを転送します。

4.L2SW1のMACアドレステーブルにMACアドレスを登録 L2SW1のポート3でデータを受信します。ポート3の先にMACアドレスCが接続されていることをL2SW1のMACアドレステーブルに登録します。

5.データの転送 L2SW1はMACアドレステーブルから宛先MACアドレスであるAはポート1に接続されていることがわかります。L2SW1はポート1にだけデータを転送します。

図4 レイヤ2スイッチのデータの転送 C→A

以上のように、レイヤ2スイッチはMACアドレスを学習して、学習したMACアドレスに基づいてデータを転送します。なお、レイヤ2スイッチの「レイヤ2」とはOSI参照モデルのデータリンク層を意味します。MACアドレスはOSI参照モデルのデータリンク層のアドレスです。データリンク層、すなわちレイヤ2のアドレスを見て、データを転送するのでレイヤ2スイッチと呼ばれているわけです。