ネットワークエンジニアにとって恐怖のトラブルのひとつがループ障害です。 特にL2スイッチ環境では、ケーブルの誤接続やSTP(Spanning Tree Protocol)の設定ミスにより、 LAN全体が麻痺する大規模障害を引き起こすことがあります。 本記事では、STPの基本仕組みからループ発生の原因、Ciscoスイッチでの対策方法までを詳しく解説します。

STPの基本仕組み

STP(Spanning Tree Protocol)は、冗長化されたL2ネットワークでループを防ぐための仕組みです。 仕組みのポイントは以下の通りです。

  • ルートブリッジの選出:最も優先度の高いスイッチがルートブリッジとなる
  • ポートの役割:各スイッチのポートは「Root」「Designated」「Blocking」などに分類される
  • BPDUのやりとり:スイッチ間でBPDU(Bridge Protocol Data Unit)を交換し、ループを検知

この仕組みにより、冗長リンクを持ちながらもループしないトポロジを構築できます。 しかし設定や設計を誤ると、STPが正しく働かずループ障害につながります。

ループ発生の原因

1. STPが無効化されたポート

誤って「spanning-tree portfast」や「BPDU filter」を適用したポートにサーバやスイッチを接続し、 STPが働かない状態で冗長接続するとループが発生します。

2. VLANごとのSTP設計ミス

CiscoではPVST+(Per-VLAN STP)を利用するケースが多く、VLANごとにルートブリッジを設計しないと、 意図しないスイッチがルートになりループが生じることがあります。

3. 不適切なBPDUフィルタ/ガード設定

BPDU Guardを無効にしているポートにスイッチを誤接続すると、STP制御が効かずループが発生します。 運用中の現場で非常に多い原因のひとつです。

障害時の典型的な現象

  • 全社LANがフリーズする(Ping不可)
  • ARPやDHCPのブロードキャストストームが発生
  • スイッチのCPU使用率が100%に張り付く
  • Wiresharkで大量の重複フレームやブロードキャストが観測される

特にブロードキャストストームは「数分で全拠点ダウン」となるため、緊急切り分けが必須です。

ループ障害発生時の対処法

  1. 疑わしいリンクを物理的に遮断(ケーブルを抜く)
  2. 遮断した時点でネットワークが復旧すれば、そのリンクが原因と判明
  3. 再度STP設計を見直し、正しいポートにBlockingを適用
  4. 再接続前に「show spanning-tree」で役割を確認
# CiscoスイッチでSTP確認
Switch# show spanning-tree vlan 10

STP障害を防ぐための設定例(Cisco IOS)

1. ルートブリッジの明示設定

Switch(config)# spanning-tree vlan 10 priority 4096

明示的に優先度を下げ、意図したスイッチをルートに指定します。

2. BPDU Guardの有効化

Switch(config)# interface range fa0/1 - 24
Switch(config-if-range)# spanning-tree portfast
Switch(config-if-range)# spanning-tree bpduguard enable

エッジポートに誤ってスイッチが接続された場合、自動的にポートをerr-disableにします。

3. ループガードの利用

Switch(config)# spanning-tree loopguard default

ルートポートや代替ポートがBPDUを受信できなくなった場合でも、誤ってForwardingにならないようにします。

まとめ

STPループ障害はネットワーク全体を瞬時に停止させる重大トラブルです。 その多くは「STP設計不足」や「BPDU Guard未設定」といった運用上の見落としから発生します。 Ciscoスイッチではルートブリッジの設計・BPDU Guard・Loop Guardを適切に活用することで、 ループ障害のリスクを大幅に減らせます。 現場での大規模障害を防ぐためにも、日常的にSTP設定を見直し、監視ツール(ZabbixやSolarWinds)で状態を監視することが推奨されます。