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アドレスの機器が接続されているか」を学習・記録します。
- 学習(Learning):フレームを受信すると、送信元MACアドレスとポート番号をテーブルに記録
- 検索(Lookup):宛先MACアドレスをテーブルで検索
- 転送(Forwarding):宛先が見つかれば該当ポートのみに転送(ユニキャスト転送)
- フラッディング(Flooding):宛先が見つからなければ受信ポート以外の全ポートに転送
- エージング(Aging):一定時間通信がないエントリは自動削除(通常300秒)
ポイント:ハブ(リピータハブ)はすべてのポートにフレームを転送しますが、L2スイッチは宛先MACアドレスに基づいて必要なポートだけに転送します。これにより帯域を効率的に利用でき、セキュリティも向上します。
STP(Spanning Tree Protocol)
STPは、L2ネットワーク上のループを防止するためのプロトコル(IEEE 802.1D)です。冗長構成のためにスイッチ間を複数のケーブルで接続すると、フレームがネットワーク上を永遠に回り続ける「ブロードキャストストーム」が発生し、ネットワーク全体がダウンします。
ブロードキャストストームとは
ループが存在するとブロードキャストフレームが無限に増幅・循環し、スイッチのCPUとポート帯域を100%消費してネットワークが完全に停止する現象です。
STPの動作原理
- ルートブリッジの選出:ブリッジIDが最小のスイッチがルートブリッジに選ばれる
- ルートポートの決定:各スイッチでルートブリッジに最も近いポートを選出
- 指定ポートの決定:各リンクでルートブリッジに近い側のポートを指定ポートとする
- ブロッキング:上記以外のポートをブロッキング状態にしてループを遮断
⚠️ 注意
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
✅ 完了済み