🌐 ネットワーク構築・運用 第2章-1節

L2スイッチの動作原理

L2スイッチとは

L2(レイヤー2)スイッチは、OSI参照モデルの第2層(データリンク層)で動作するネットワーク機器です。MACアドレスに基づいてフレームを適切なポートに転送する役割を担い、社内LANの基盤として最も多く使用される機器です。

MACアドレスとは

MACアドレス(Media Access Control Address)は、ネットワーク機器のNIC(ネットワークインターフェースカード)に製造時に書き込まれる48ビットの物理アドレスです。

📋 具体例

MACアドレスの表記例:00:1A:2B:3C:4D:5E
・前半24ビット(00:1A:2B):ベンダーID(OUI)→ 製造元を特定
・後半24ビット(3C:4D:5E):製造番号 → 各機器に固有

ベンダーIDの例:
・00:50:56 → VMware
・DC:A6:32 → Raspberry Pi
・AC:DE:48 → Apple

MACアドレステーブルとフレーム転送

L2スイッチはMACアドレステーブル(別名:CAMテーブル)を内部に持ち、「どのポートにどのMACアドレスの機器が接続されているか」を学習・記録します。

  1. 学習(Learning):フレームを受信すると、送信元MACアドレスとポート番号をテーブルに記録
  2. 検索(Lookup):宛先MACアドレスをテーブルで検索
  3. 転送(Forwarding):宛先が見つかれば該当ポートのみに転送(ユニキャスト転送)
  4. フラッディング(Flooding):宛先が見つからなければ受信ポート以外の全ポートに転送
  5. エージング(Aging):一定時間通信がないエントリは自動削除(通常300秒)

ポイント:ハブ(リピータハブ)はすべてのポートにフレームを転送しますが、L2スイッチは宛先MACアドレスに基づいて必要なポートだけに転送します。これにより帯域を効率的に利用でき、セキュリティも向上します。

STP(Spanning Tree Protocol)

STPは、L2ネットワーク上のループを防止するためのプロトコル(IEEE 802.1D)です。冗長構成のためにスイッチ間を複数のケーブルで接続すると、フレームがネットワーク上を永遠に回り続ける「ブロードキャストストーム」が発生し、ネットワーク全体がダウンします。

ブロードキャストストームとは

ループが存在するとブロードキャストフレームが無限に増幅・循環し、スイッチのCPUとポート帯域を100%消費してネットワークが完全に停止する現象です。

STPの動作原理

  1. ルートブリッジの選出:ブリッジIDが最小のスイッチがルートブリッジに選ばれる
  2. ルートポートの決定:各スイッチでルートブリッジに最も近いポートを選出
  3. 指定ポートの決定:各リンクでルートブリッジに近い側のポートを指定ポートとする
  4. ブロッキング:上記以外のポートをブロッキング状態にしてループを遮断

⚠️ 注意

STPの収束(ループ検出~ポート切り替え完了)には従来のSTPで約30~50秒かかります。この間、ネットワーク通信が停止するため、現在はより高速なRSTP(Rapid STP、IEEE 802.1w)の使用が推奨されます。RSTPは通常1~3秒で収束します。

RSTP(Rapid Spanning Tree Protocol)

RSTPはSTPの改良版で、以下の点が強化されています。

項目STP (802.1D)RSTP (802.1w)
収束時間30〜50秒1〜3秒
ポート状態5つ(Disabled/Blocking/Listening/Learning/Forwarding)3つ(Discarding/Learning/Forwarding)
BPDU送信ルートブリッジのみすべてのスイッチが送信
下位互換STPと互換あり

ループ防止の実務的対策

ひとり情シスの視点:中小企業の現場で最も多いループ障害は、会議室などで社員が誤ってLANケーブルを同じスイッチの2つのポートに接続してしまうケースです。以下の対策が有効です。

  • ループ検知機能:マネージドスイッチのループ検知を有効にする
  • ストームコントロール:ブロードキャスト量のしきい値を設定し、超過時にポートを遮断
  • BPDUガード:エッジポート(PC接続用)でBPDUを受信した場合にポートを無効化
  • 物理的対策:不要なポートをシャットダウン、ケーブルにラベリング

📋 具体例

Cisco スイッチでのループ防止設定例:
interface GigabitEthernet0/1
spanning-tree portfast
spanning-tree bpduguard enable
storm-control broadcast level 10

Yamaha SWX2310 でのループ検出:
loop-detect enable
loop-detect blocking