6.

STPとは|L2ループ防止・BPDU・ルートブリッジ/ポート役割・RSTP(802.1w)・収束時間を解説

編集
この記事の要点
  • STP とは、L2 スイッチを冗長接続した際に発生するループを防ぐためのプロトコル(IEEE 802.1D)。
  • L2 ループはブロードキャストストームや MAC テーブルの不安定化を招き、ネットワークを麻痺させる。
  • ルートブリッジを選出し、各スイッチから見て最短のポートを残し、余分なポートをブロックして木構造を作る。
  • BPDU は STP の制御フレームで、スイッチ同士が経路情報を交換しトポロジを計算するのに使う。
  • RSTP(IEEE 802.1w)は STP の改良版で、収束時間を数十秒から数秒へ大幅に短縮した。
  • 冗長配線は障害対策に有効だが、STP/RSTP なしではループの危険があり、必ず併用する。

概要

スパニングツリープロトコル(STP, IEEE 802.1D)とは、L2 スイッチを冗長(ループ状)に接続したときに発生するループを防止するためのプロトコルです。スイッチを複数台つないでネットワークを構築する際、可用性を高めるために配線を二重化することがあります。しかしレイヤ 2 にはルーティングの TTL のような「ぐるぐる回り続けるフレームを破棄する仕組み」がないため、ループがあるとフレームが永遠に回り続け、ネットワークが麻痺します。STP はこのループを論理的に断ち切る役割を担います。

STP は物理的にはループを保ったまま、一部のポートをブロッキング状態にして論理的にループのない木構造(スパニングツリー)を作ります。普段使っていた経路が障害で切れると、ブロックしていたポートを開放して通信を復旧させます。つまり STP は「冗長配線の利点(障害時の切替)」と「ループの回避」を両立させる仕組みです。

仕組み

L2 ループが危険なのは、おもに次の 3 つの問題を引き起こすためです。

  • ブロードキャストストーム — ブロードキャストフレームがループ内を増殖しながら回り続け、帯域と CPU を食い尽くします。
  • MAC アドレステーブルの不安定化 — 同じ送信元 MAC が複数ポートから次々に学習され、転送先が定まらなくなります。
  • フレームの重複到達 — 同じフレームが複数経路から届き、上位アプリの誤動作を招きます。

STP はこれを防ぐため、スイッチ同士が BPDU(Bridge Protocol Data Unit)という制御フレームを交換してトポロジを計算します。手順の概略は次のとおりです。

STP の経路決定の流れ
1. ルートブリッジの選出
   ブリッジ ID(優先度+MAC)が最小のスイッチが「中心」になる
2. 各スイッチでルートポートを決定
   ルートブリッジへ最もコストの低いポートを 1 つ選ぶ
3. 各セグメントで指定ポートを決定
   そのセグメントでルートに近い側のポートを転送用に残す
4. 残ったポートをブロッキング(非指定ポート)
   → 物理ループは残るが論理的にはループのない木構造になる

ブロッキング中のポートはデータフレームを転送しませんが、BPDU は受信し続けてトポロジを監視します。アクティブな経路が切れると、ブロックされていたポートが Listening → Learning → Forwarding と状態遷移して通信を引き継ぎます。従来の STP ではこの収束に最大 30〜50 秒かかりました。これを大幅に改善したのが RSTP(Rapid STP, IEEE 802.1w)で、ポート役割やネゴシエーションを見直すことで収束を数秒に短縮しています。現在のスイッチは RSTP(やその拡張の MSTP)が標準です。

設定・実用例

Cisco スイッチでの STP/RSTP 関連の代表的なコマンドです。

# 動作モードを RSTP(rapid-pvst)に設定
Switch(config)# spanning-tree mode rapid-pvst

# このスイッチを VLAN1 のルートブリッジに優先設定
Switch(config)# spanning-tree vlan 1 root primary

# 端末直結ポートを高速に Forwarding にする(PortFast)
Switch(config)# interface GigabitEthernet0/1
Switch(config-if)# spanning-tree portfast

# 端末ポートに不正な BPDU が来たら遮断(BPDU Guard)
Switch(config-if)# spanning-tree bpduguard enable

# STP の状態・ルートブリッジ・ポート役割を確認
Switch# show spanning-tree

show spanning-tree で、どのスイッチがルートブリッジか、各ポートが Root/Designated/Blocking のどの役割かを確認できます。PortFast は端末直結ポートで状態遷移を省略して即 Forwarding にする機能で、サーバや PC のポートに使います(スイッチ間ポートには使わないこと)。

主な用途

  • 冗長化したスイッチ網のループ防止 — 二重配線で可用性を上げつつ、ループ事故を防ぐ基本機能です。
  • 障害時の経路自動切替 — アクティブ経路が切れたとき、待機ポートを開放して通信を継続します。
  • 誤接続(ループ)からの保護 — 配線ミスで生じたループを STP が検出・遮断し、ネットワーク全体の停止を防ぎます。
  • BPDU Guard によるエッジ保護 — 端末ポートへの不正なスイッチ接続を遮断し、トポロジの乱れを防ぎます。

関連技術との比較

項目STP(802.1D)RSTP(802.1w)MSTP(802.1s)
収束時間30〜50 秒数秒数秒(RSTP ベース)
VLAN の扱い全体で 1 ツリー全体で 1 ツリーVLAN をグループ化し複数ツリー
ポート状態5 状態3 状態に簡素化RSTP 準拠
負荷分散苦手苦手得意(インスタンスごと)
位置づけ原型(旧式)現在の標準大規模・多 VLAN 向け

注意点・落とし穴

  • ルートブリッジの自然選出に任せない — 優先度を設定しないと、たまたま MAC が小さい古い機器がルートになり、非効率な木構造になることがあります。中心に置きたいスイッチに明示的に低い優先度を設定します。
  • スイッチ間ポートに PortFast を付けない — スイッチ同士のポートに PortFast を設定すると、状態遷移を飛ばすため一時的なループを起こす危険があります。
  • STP の無効化は厳禁 — 「収束が遅いから」と STP を切ると、ループ事故で即座にネットワークが落ちます。遅さは RSTP/MSTP で解決します。
  • BPDU の遮断・改ざん — 端末側から不正な BPDU が入るとトポロジが乱れます。エッジポートには BPDU Guard を設定して保護します。
  • ループ事故の波及 — 1 か所のループが、ブロードキャストストームによりネットワーク全体へ波及します。物理ループは必ず STP/RSTP で管理下に置くこと。

関連リンク

編集
Post Share
子ページ

子ページはありません

同階層のページ
  1. ルーティングの基礎
  2. デフォルトゲートウェイ
  3. 静的ルーティング
  4. 動的ルーティング(RIP/OSPF/BGP)
  5. VLAN
  6. スパニングツリープロトコル(STP)

最近更新/作成されたページ