スパニングツリープロトコル
STP(802.1d)
そもそも802.1dはMACブリッジの規格.この中にSTPが含まれてる
動作
- BPDUを交換し,ブリッジIDの小さい方をルートブリッジとする.
- 自分がルートブリッジと思っている間だけBPDUを送信.ルートブリッジでなければBPDUの転送だけする
- 各セグメント中で最もルートブリッジまでのパスコストが小さいポートをDP(指名ポート)として選出
- パスコストが同じ場合はブリッジIDが小さい方
- 各ブリッジ中で最もルートブリッジまでのパスコストが小さいポートをRP(ルートポート)として選出
- パスコストが同じ場合は接続先ブリッジIDが小さい方.これも同じならポートIDが小さい方(1ブリッジに2接続しているような場合
- DPでもRPでもないポートをブロッキングポートとする
要約?すると
- ブリッジID最小のSWがルートブリッジ
- 各セグメントでルートブリッジに近いポートをDP
- 各ブリッジでルートブリッジに近いポートをRP
- DPでもRPでもないポートはblocking
BPDU(Bridge Protocol Data Unit)
ポート毎の状態遷移
- Disabled:down時
- Blocking:BPDUの受信のみ行う.他のフレームの送受信はしない.20秒経過かBPDUの受信をすると次に遷移
- Listening:ルートブリッジやDPやRPを計算する.BPDUの送受信はするが他フレームの送受信はしない.トポロジー全体の安定までの転送遅延として15秒経過すると次に遷移(ブロッキングポートは前へ
- Lerning:MACアドレスの学習をする.BPDUの送受信と他フレームの受信だけする.転送遅延として15秒経過すると次に遷移
- Forwarding:BPDUも他フレームも送受信する
※転送遅延が15秒なのはルートブリッジから最大7段(BPDUの送信間隔2×7<15)としているため
なので経路切替時や電源投入時に最大50秒待たないといけない
RSTP(802.1w)
802.1dと互換性があるので混ぜても大丈夫
動作
- STPとほぼ同じ.ブロッキングポートが代替ポートかバックアップポートに分類される(BPDUの取り扱いもちょっと違う
- RPの次にルートブリッジまでのコストが小さいポートを代替ポートとして選出
- 同一セグメントに2接続以上ある(冗長)場合のDPにならなかったポートをバックアップポートに選出(ポートIDが大きい方)
BPDU
- STPとほぼ同じ
- proposal/agreementでハンドシェイクを行う
ポート毎の状態遷移
- Discarding:STPのDisabled,Blocking,Listeningを合わせた感じ.自分が代替ポートかバックアップポートであればDPの障害検知時にDPになる
- Lerning:STPと同じ
- Forwarding:STPと同じ
PVSTとRapid-PVST
PVはper vlanの意味.その名の通りvlan毎のSTP
PVST+やRapid-PVST+はciscoが拡張した規格