STPの種類(RSTP/MSTP)とフレームフォーマットの比較

STP には様々な種類があります。その機能の比較表を以下に示します。

一般名称 STP RSTP MSTP
モード CST PVST+ RST PVRST+ MST
規格 IEEE802.1D IEEE802.1D
+Cisco独自
IEEE802.1w IEEE802.1w
+Cisco独自
IEEE802.1s
Cisco
独自機能
- PortFast
UplinkFast
Backbone-
Fast
Per-VLAN
- Per-VLAN -
下位規格
からの主
な改良点
- ・HandShakeによる収束高速化 ( Timer 依存からの脱却)
・Blocking Port を Alternate Port (Uplink) と Backup Port に区別し、UplinkFast 相当が標準装備
・エッジポートの概念を取り入れ、PortFast を規格化。
・トポロジ変更に対する収束が高速になり、BackboneFast が不要となった。
・インスタンス (複数の VLAN をまとめたもの) 単位での負荷分散が可能。
・VLAN の数だけ必要だった STP 計算を、インスタンス数だけに減らせる。
下位互換 - - STP (CST) STP (PVST+) STP / RSTP
収束 Timer依存 (最大50秒) SW 間の HandShake
負荷分散 不可 VLAN単位 不可 VLAN単位 インスタンス単位
構成の
制約
・STP対応SWは直結していなくてもよいが、挟まれている HUB はBPDU(L2マルチキャスト)を透過できること。 ・RSTP or MSTP 対応 SW 同士は直結している(P2Pである)こと。(HandShake は1対1で行われるため)
・未対応 HUB/SW が挟まれている(Shared)場合、BPDUが透過されれば下位の STP へフォールバックする。
初期収束 ・全 SW が全 STP 有効ポートでListening状態とし、BPDU を発信する。しかし自分より優位なBPDU を受信すると発信を止め、受信した BPDUを下部SW へ転送する。
(PVST+ で portfastを有効にしているポートは影響せず常に通信可能状態)
・エッジポート以外の全 RSTP/MSTP 有効ポートでDiscarding 状態とし、隣接スイッチと HandShake によるネゴを行う。
・自分が対向 SW より優位な場合はそのポートを Desinated Port としてForwarding 状態とする。逆に相手が自分より優位である場合、そのポートが最優位のポートであればRoot Port とし、Forwarding 状態とする。
他に優位なポートがあれば Alternate Port としてDiscarding 状態とする。
・他の SW との HandShake により Root Port の変更が必要な場合は、新 Root Port 以外をDiscarding 状態にし、再度、下部 SW とHandShake を取り、速やかに役割を再決定する。
収束状態 ・ルートブリッジのみがHello Timer(2s) の間隔で BPDU を生成し、他のSW はその BPDU を(Message Ageの数値を 1足して) 下部 SW に転送する。(一方通行) ・全ての SW が Hello Timer(2s) の間隔で BPDUを生成し、下部 SW に限らず上部 SW にも発信し、KeepAlive として動作している。(下位互換のためMessage Age 等の STP のみで利用する情報も反映している)
トポロジ
変更の
トリガー
STP有効ポートで
・リンクダウンした
・BPDU の受信が止まり、
Max Age (20s) が経過
・BPDU を受信し始めた
RSTP/MSTP 有効ポートのエッジポート以外においてForwarding 状態に遷移した場合
トポロジ
変更時の
具体的な
動作
「初期収束」と同じようにルートブリッジの選定とポートの役割を再決定する。TCN BPDU や TCflag を利用して全 SWにトポロジ変更を伝え、トポロジ変更を知ったSW は MAC アドレステーブルのエージングタイマーを 300 秒からForwarding Delay(15s) に短縮させる。(PVST+ で portfastを有効にしているポートは影響せず常に通信可能状態) Forwarding 状態に遷移したポートがあった場合、MAC アドレステーブルをクリアしつつ、他の SW に障害を知らせるために TC フラグを立てて BPDU を送信する。TC フラグを受信した SW は同様に MACアドレステーブルをクリアし、その他の SW に TCフラグで障害を知らせる。

また、STP のフレームフォーマットの比較表を以下に示します。

STPの種類 STP RSTP MSTP
IEEE802.1D IEEE802.1w IEEE802.1s
Protocol ID
(2Byte)
Ox0000
Version
(1Byte)
Ox00 Ox02 Ox03
BPDU Type
(1Byte)
Ox00(Config)
Ox80(TCN)
Ox02
Flags
(1Byte)
TC トポロジ変更の発生時
に全体へ周知
トポロジ変更の発生時
に隣接スイッチに周知
Proposal - HandShakeの開始時、
および、収束時に利用
Role(2bit) - ポートの役割を明示
-Alternate/Backup=01
-Root=10
-Designated=11
Learning - MACアドレス学習の可否
Forwarding - L2フレームの転送可否
Agreement - HandShakeの終了時に利用
TCA BPDU Type=Ox80 (TCN)
を受信した際の返信
TCを隣接スイッチから
受信した際の返信
Root ID
(8Byte)
ルートブリッジのブリッジID
Path Cost
(4Byte)
BPDUを転送もしくは送信しているスイッチから
ルートブリッジまでのコスト
Bridge ID
(8Byte)
BPDUを転送もしくは送信しているスイッチのブリッジID
Port ID
(2Byte)
BPDUを転送もしくは送信しているポートのポートID
Message Age
(2Byte)
ルートブリッジまでのHop数
(RSTP/MSTPはSTPとの下位互換のために利用)
Hello Time
(2Byte)
BPDUを定期的に送信する間隔 (default 2秒)
Forward Delay
(2Byte)
Listening/Learning状態に留まる時間 (default 15秒)
(RSTP/MSTPはSTPとの下位互換のために利用)

 

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG