スパニングツリープロトコル (STP)
このドキュメントはこちらを翻訳したものです。
ドキュメントの内容について矛盾が不一致がある場合、英語版の内容が優先されます。
概要
スパニングツリープロトコル(STP)(IEEE 802.1D)は、主にレイヤー2のループやブロードキャストストームを防ぐために使用され、ネットワークの冗長化にも使用されています。 STPは、1分以上かかる障害からの復旧が許容されていた時代に開発されました。しかし、技術が進歩し、不可欠なアプリケーションが安定した接続を必要とするようになると、企業はこの長い復旧時間から脱却し、より迅速なソリューションを求めるようになりました。
STPは、ラピッドスパニングツリープロトコル(RSTP)(802.1w)に進化し、STP(802.1D)よりもいくつかの点で改善されました。RSTPはSTP(802.1D)に比べて、ポートの状態やポートの役割が新しくなり、さらには収束時間も短縮されました。STPとRSTPはどちらも健全なネットワークを構築する上で重要であり、管理者はSTPよりもRSTPを使用する方がメリットがあります。RSTPは、より速い復旧時間を必要とするビジネスに最適です。
このドキュメントでは、STPおよびRSTP規格の概要を説明しており、以下について学習できます。
- STP の選出プロセス
- STP のポートの状態と役割
- RSTP の選出プロセス
- RSTP のポートの状態と役割
STP
同一ネットワーク内のスイッチは、スパニングツリーアルゴリズムを実行する前にSTPを有効にしておく必要があり、どのスイッチを「ルートブリッジ」にするかを正確に決定することができます。このルートブリッジは、設定用のブリッジプロトコルデータユニット(BPDU)やその他の情報を、直接接続されたスイッチに送信する役割を担い、スイッチはそのBPDUを隣接するスイッチに転送します。各スイッチは、優先度の値(デフォルトは32768)とスイッチ自身のMACアドレスを組み合わせたブリッジID優先度の値(BID)を持っています。最も低いBIDを持つスイッチがルートブリッジとなります。
STP ポートの状態
STP において各スイッチポートは以下のいずれかの状態になります。
- Disabled - 管理コマンドによりポートが無効になった状態です。
- Blocking - デバイスがポートに初めて接続した時 Blocking ポートになります。
- Listening -BPDU を送信し、また受信を待機している状態です。
- Learning - 自身よりも優先度が高い BPDU を受信した場合、自身の BPDU の送信を止め、優先度が高い BPDU を転送します。
- Forwarding - トラフィックを転送している状態です。
STP ポートの役割
- Root - ルートブリッジ以外のスイッチで、ルートスイッチまでの経路コストが最も低いポートが Root になります。これらのポートはルートブリッジにデータを転送します。
- Designated - ルートブリッジに最も近いポートが Designated になります。ルートブリッジ側のポートは全て Designated になります。
- Blocked - Root にも Desginated にも選ばれなかったポートが Blocked になります。アクセスポートは影響を受けません。
STP 選出プロセス
スイッチの電源を入れると、スイッチは自分のBIDを含む設定BPDUを送信します。各スイッチは当初、自身をルートブリッジと認識していますが、あるスイッチが自身より低い値(=プライオリティが高い) BIDを持つBPDUを受信すると、そのスイッチは設定BPDUの送信をやめ、代わりに優先度の高いスイッチのBPDUを隣接するスイッチに転送します。
最終的にルートブリッジが決定されると、「ルートポート」選択プロセス(ルートブリッジにフレームを転送するスイッチ上のポート)を決定するための第2の選出プロセスが始まります。このプロセスは、ルートポートが選出されるまで以下の手順で行われます。
-
スイッチポートは、他のスイッチから優先度が高いBPDUを受信し、そのスイッチをルートブリッジとして認識する
-
可能であれば、最も低いルートパスを持つポートがルートポートとして選択される
-
パスコストが同じであれば、スイッチはBIDの値がより低い方をルートポートとして選択する
-
BIDも同じ場合(通常は同じスイッチ)、スイッチの物理的なポート番号が最も小さいポートをルートブリッジとして選択する
選出プロセス(図解)
下図のスイッチ2のプロセスを追ってみましょう。
-
優先度が高いBPDUを受信しているスイッチポートであるポート fa0/1 と fa0/2 は同じBPDUを受信しているため、ルートポートを決定するにはさらなるステップが必要です。スイッチ2 のポートfa0/3は、スイッチ 3 から BPDU を受信しているため、ルートポートにはなれません。
-
ルートのパスコストが最も低いポートを確認します。 ポートfa0/1とfa0/2のパスコストが同じであることがわかりますので、まだ引き分けです。
-
送信BIDが最も低いポートを確認します。 ここでも、fa0/1とfa0/2はBIDが同じ(スイッチ2のもの)なので、最終的にはルートポートを決定するために使用します。
-
送信側のスイッチのポート番号を確認します。fa0/1は最小のポート番号であるため、このスイッチのルートポートに選出されます。
Rapid Spanning Tree Protocol (RSTP)
Rapid spanning tree protocol (RSTP)は、その名の通り、ポート転送状態への移行を高速化します。スイッチポートの状態が5つあるSTPとは異なり、RSTPには "Discarding", "Learning", "Forwarding" の 3 つの状態しかありません。
RSTP の各ポートの状態
- Disabled - 管理コマンドによりポートが無効にされている状態
- Discarding - デバイスが接続された際にまずは Discarding 状態になります
- Learning - 優先度の高い BPDU を受信したため、自身の BPDU の送信を止め、優先度の高い BPDU を転送している状態
- Forwarding - トラフィックを転送できる状態
RSTP 各ポートの役割
- Root - 非ルートスイッチ上のポートでルートブリッジまでの経路コストが最も低いポートが Root ポートになります。Root ポートではルートブリッジへデータを転送します。
- Designated - ルートブリッジに最も近いポートが Designated になります。ルートブリッジ側のポートは全て Designated になります。
- Alternate - 他のスイッチからの BPDU を受け入れますが、Discarding の状態になります。
- Backup - 自身のスイッチからBPDUを受信するが、ブロック状態を維持します。 本番環境では、ハブが使われていない限り、このような状態になることはありません。
Alternate と Backup ポート
RSTPでは、ブロックされたポートがAlternate と Backup という2つの新しいポートの役割に分割されることを除いて、選出プロセスはSTPと同じです。
Alternate (代替ポート)
代替ポートは、他のスイッチからBPDUを受信しますが、ブロック状態のままです。例えば、あるスイッチにルートブリッジへの経路が2つあるとします。スイッチは2つのポートのうち1つをルートポートとして選択し、もう1つを代替ポートとします。ルートポートに障害が発生した場合は、この冗長経路(代替ポート)が新たなルートポートとなります。
Backup
バックアップポートは、自スイッチからのBPDUを受信しますが、ブロック状態のままです。例えば、あるスイッチに異なるスイッチに接続する2つのポートがある場合、一方のポートがルートポートに選ばれ、もう一方のポートがバックアップポートになります。
STP と RSTP のポート状態の比較
STP と RSTP のポート状態は以下の通り対応しています
STP | RSTP |
---|---|
Blocking | Discarding |
Listening | Discarding |
Learning | Learning |
Forwarding | Forwarding |
Meraki スイッチにおける RSTP
MS スイッチでの STP の設定については Merakiスイッチ(MS)に対するスパニング ツリーの設定 を参照してください。