STP(スパニングツリープロトコル)入門|ネットワークループを防ぐ仕組みとCisco設定の実践
STPとは?ループを防ぐネットワークの守護者
ネットワークエンジニアとして現場に出たとき、「ループが発生してネットワーク全体がダウンした」という障害に立ち会ったことがあります。その原因と解決策を理解するうえで欠かせないのが、STP(Spanning Tree Protocol)です。CCNAの試験範囲でもあり、現場でも必ず知っておくべき技術です。
STPはネットワーク上に発生するループを自動的に防ぐプロトコルです。スイッチを冗長構成にすると、同じフレームがネットワーク上を永遠に巡り続ける「ブロードキャストストーム」が発生します。STPはこれを防ぐために一部のポートを論理的にブロックし、ループのないツリー状のトポロジを作り出します。
STPの動作:3つの選出プロセス
STPは以下の順序で動作します。
1. ルートブリッジの選出
ネットワーク内で1台だけ「ルートブリッジ」を選びます。最も小さいブリッジID(優先度+MACアドレス)を持つスイッチが選ばれます。優先度のデフォルト値は32768です。現場では意図的に優先度を下げて特定のスイッチをルートブリッジに指定するのが一般的です。
2. ルートポートの選出
各スイッチでルートブリッジへの最短経路となるポートを「ルートポート」として選出します。コスト(帯域幅の逆数)が最小のパスが選ばれます。
3. 指定ポート・非指定ポートの決定
各セグメントで1つの「指定ポート」を選び、残りを「非指定ポート(ブロッキング状態)」にします。ブロッキング状態のポートはデータを転送しませんが、BPDUの受信は続けます。
STPのポート状態遷移
STPのポートは5つの状態を遷移します。
- Blocking:フレームを転送しない。BPDUのみ受信
- Listening:BPDUの送受信を開始。フレーム転送はしない(15秒)
- Learning:MACアドレステーブルを学習。フレーム転送はしない(15秒)
- Forwarding:フレームを正常に転送する
- Disabled:管理的に無効化されたポート
実際の現場では、STPのコンバージェンス(収束)に最大50秒かかることが問題になります。これを改善するためにRSTP(Rapid STP)やPortFastが使われます。
現場でよく使うSTP関連の設定
PortFast
PCやサーバーを接続するアクセスポートに設定します。STPの状態遷移をスキップしてすぐにForwardingになります。ループの危険がないポートに限定して使用します。
- Switch(config-if)# spanning-tree portfast
ルートブリッジ優先度の設定
- Switch(config)# spanning-tree vlan 1 priority 4096(低い値を設定してルートブリッジに指定)
RSTPとMSTP:STPの進化版
- RSTP(802.1w):コンバージェンスを数秒以内に短縮。現在の主流
- MSTP(802.1s):複数のVLANを束ねてSTPインスタンスを管理。大規模環境向け
講師として見ていると、CCNAの勉強ではSTPの概念を理解していても、RSTPとの違いを説明できない方が多いです。現場ではRSTPがデフォルトになっているケースがほとんどなので、合わせて押さえておきましょう。
まとめ:STPはネットワーク冗長設計の基礎
STPはネットワークの冗長化と安定性を両立するための必須技術です。ルートブリッジ選出・ポート状態遷移・PortFastの使い方を理解することで、現場での障害対応や設計業務に自信を持って臨めるようになります。
STPのポート状態:5つのステート
STPではスイッチの各ポートが以下の状態を遷移します。障害復旧時の動作を理解するうえで重要です。
- Blocking:ループ防止のためデータフレームを転送しない。BPDUは受信する
- Listening:BPDUを送受信してトポロジを把握中。データフレームは転送しない
- Learning:MACアドレステーブルを学習中。データフレームはまだ転送しない
- Forwarding:通常の転送状態。データフレームを転送する
- Disabled:管理者によって無効化されたポート
Blocking → Forwarding になるまでに約50秒かかるのが旧来のSTPの問題点でした。これを解消したのがRSTP(Rapid STP)です。
RSTPとPVSTの違い
- RSTP(802.1w):STPを改良した高速版。障害時の収束が数秒(旧STPは50秒)。Cisco機器ではRapid PVST+として実装
- PVST+:Cisco独自のVLANごとのSTP。VLAN単位でルートブリッジを分けることで負荷分散が可能
- MST(802.1s):複数VLANを1つのSTPインスタンスで管理する標準規格。大規模環境に向く
現在の企業ネットワークではRapid PVST+が最も広く使われています。
Cisco機器でのSTP設定コマンド
! ルートブリッジを指定する(優先度を下げる)
Switch(config)# spanning-tree vlan 10 priority 4096
! ルートブリッジの自動設定(推奨)
Switch(config)# spanning-tree vlan 10 root primary
! STPモードの確認
Switch# show spanning-tree vlan 10
! ポートファストの設定(エンドデバイス接続ポートに使用)
Switch(config-if)# spanning-tree portfast
PortFastはPC・サーバーなどエンドデバイスに直結するポートに設定します。Listening/Learningをスキップして即Forwardingになるため、PCがスムーズにネットワークに接続できます。スイッチ間接続のポートには絶対に設定しないでください(ループ発生の原因になります)。
STPのトラブルシューティング
- ネットワーク全体が遅くなった・輻輳している:ブロードキャストストームの可能性。show spanning-treeでトポロジを確認し、ループが発生していないか確認する
- 意図しないスイッチがルートブリッジになっている:MACアドレスやデフォルト優先度の関係で意図しないスイッチが選ばれることがある。明示的に優先度を設定することで解消
- ポートが長時間Listeningのまま:旧来のSTPでは正常動作。RSTPへの移行を検討する
まとめ:STPの要点
- STPはネットワークループを防ぐための自動制御プロトコル
- ルートブリッジ・ルートポート・指定ポートの3つの選出で動作する
- 現場ではRapid PVST+が主流。収束速度が速くVLAN単位の制御が可能
- PortFastはエンドデバイス接続ポートにのみ設定する
- ルートブリッジは明示的に優先度を設定して意図的に指定する
STPは「存在を忘れたころに障害を引き起こす」プロトコルです。設計段階でルートブリッジを明示的に決め、PortFastの設定ミスがないかを定期的に確認することが現場での鉄則です。




