RSTP
レイヤ2の転送ループを防ぐSTPを改良し、経路変更時の収束を高速化したプロトコルである。代替ポートの管理や隣接スイッチ間の提案と合意を利用する。切替え時間は障害の検知方法や接続条件によって異なる。
イマシルちゃんの解説
LANでスイッチを輪のようにつなぐと、データが回り続けるループが起きることがあるよ。
RSTPは一部のポートで転送を止めてループを防ぎ、障害時の経路切替えを速くするプロトコルなんだ。
従来のSTPでは、安全のために決められた時間を待ってから転送を始める場面があるよ。
RSTPでは基準となるスイッチへの別経路につながるポートを代替ポートとして管理するんだ。
1対1でつながる隣のスイッチとは、ループを作らず転送を始められる状態を確かめる提案と合意というやり取りも行うよ。
条件が整えば長い待ち時間を省けるから、通信を早く再開できるんだ。
この解説はわかりやすかったですか?
より深い解説
定義
RSTP(Rapid Spanning Tree Protocol)は、STPの収束の遅さを改善したプロトコルで、IEEE 802.1w(2001年)として標準化され、IEEE 802.1D-2004に取り込まれた。STPと互換性があり、STPしか使えないスイッチと混在させることもできる(その部分ではSTPの動作になる)。
STPが遅い理由
STPでは、ポートをフォワーディングに移すとき、ループが一時的にできないように、タイマーの時間(転送遅延15秒 × 2)を待つ。また、上流の障害は、BPDUが一定時間(最大エージ20秒)届かないことで初めて検知する。このようにタイマーに頼った動作のため、切り替えに30~50秒かかる。
RSTPが速い理由
| 改良点 | 内容 |
|---|---|
| 代替ポート | ルートへの別経路をあらかじめ把握し、ルートポートの障害時に切替え先とする |
| 提案と合意(Proposal/Agreement) | 隣接スイッチ同士がBPDUで直接ハンドシェイクし、タイマーを待たずにフォワーディングに移る |
| エッジポート | PCなどの端末だけがつながるポートとし、すぐにフォワーディングにする |
| 障害検知 | 通常は各スイッチがBPDUを送る。受信情報は原則としてHello Timeの3倍で失効し、標準の2秒間隔なら6秒になる。物理リンクの切断はリンクダウンで検知できる |
ポートの役割と状態
ポートの状態も、STPの5状態(無効、ブロッキング、リスニング、ラーニング、フォワーディング)から、ディスカーディング、ラーニング、フォワーディングの3状態に整理された。
代替ポートは、別のスイッチから受け取った有利なBPDUを保持し、現在のルートポートとは別のルート到達経路に備える。一方、バックアップポートは、同じスイッチの指定ポートが接続する同じ共有セグメントへの予備である。例えば一つの共有LANへ同じスイッチから二つのポートをつないだ場合に生じ、ルートへの独立した別経路を意味しない。
どちらも安定した構成ではディスカーディングに置く。この状態では通常のデータフレームを転送せず、送信元MACアドレスも学習しない。ただし、構成を判断するためのBPDU処理は行う。ポートの役割と、現在の転送状態は別の分類である。
隣接装置と転送開始を確認する
ポイントツーポイントのリンクで、新しい指定ポートから転送を始める代表的な流れは次のようになる。
- 指定ポート側がBPDUのProposalで、転送を始める提案を通知する。
- 相手は有利な経路情報を受け取り、提案元がルートへ向かう上流側と判断して、そのポートを新しいルートポートとして選ぶ。
- 相手は他の非エッジの指定ポートなどを必要に応じてディスカーディングへ戻し、ループを作らない状態へ同期する。すでに転送を止めているポートやエッジポートは別扱いになる。
- 同期できた相手がルートポートからAgreementを返す。提案側も合意を確認して転送を始められる。
この提案と合意によって、従来のSTPのように二つの転送遅延タイマーが終わるのを待たず、安全を確かめて移行できる。共有メディアや従来STPとの接続などでは、同じ高速移行が使えるとは限らない。
MSTP
STPとRSTPは、ネットワーク全体で1つの木しか作れない。VLANが複数あっても、すべて同じ経路を通り、ブロックされたリンクは使われない。
MSTP(Multiple Spanning Tree Protocol、IEEE 802.1s)は、複数のVLANをグループ(インスタンス)にまとめ、インスタンスごとに別々の木を作る。たとえば、VLAN 10のグループはスイッチAをルートに、VLAN 20のグループはスイッチBをルートにすれば、両方のリンクを使って負荷分散できる。
比較
| STP | RSTP | MSTP | |
|---|---|---|---|
| 規格 | IEEE 802.1D | IEEE 802.1w | IEEE 802.1s |
| 収束時間 | 標準タイマーでは30~50秒程度 | 条件が整えば数秒以内。検知方法などで変わる | RSTPを基礎に高速収束。条件による |
| 木の数 | 1つ | 1つ | インスタンスごと |