スパニングツリープロトコル

STP(802.1d)

そもそも802.1dはMACブリッジの規格.この中にSTPが含まれてる

動作
  • BPDUを交換し,ブリッジIDの小さい方をルートブリッジとする.
    • 自分がルートブリッジと思っている間だけBPDUを送信.ルートブリッジでなければBPDUの転送だけする
  • 各セグメント中で最もルートブリッジまでのパスコストが小さいポートをDP(指名ポート)として選出
    • パスコストが同じ場合はブリッジIDが小さい方
  • 各ブリッジ中で最もルートブリッジまでのパスコストが小さいポートをRP(ルートポート)として選出
    • パスコストが同じ場合は接続先ブリッジIDが小さい方.これも同じならポートIDが小さい方(1ブリッジに2接続しているような場合
  • DPでもRPでもないポートをブロッキングポートとする

要約?すると

  1. ブリッジID最小のSWがルートブリッジ
  2. 各セグメントでルートブリッジに近いポートをDP
  3. 各ブリッジでルートブリッジに近いポートをRP
  4. DPでもRPでもないポートはblocking
BPDU(Bridge Protocol Data Unit)
  • ルートブリッジIDとルートブリッジまでのパスコストを含む
  • ブリッジIDはpriority+MACアドレス(+は加算ではなく繋げるという意味
  • デフォルトでは2秒間隔で送信
  • マルチキャストで送信
ポート毎の状態遷移
  1. Disabled:down時
  2. Blocking:BPDUの受信のみ行う.他のフレームの送受信はしない.20秒経過かBPDUの受信をすると次に遷移
  3. Listening:ルートブリッジやDPやRPを計算する.BPDUの送受信はするが他フレームの送受信はしない.トポロジー全体の安定までの転送遅延として15秒経過すると次に遷移(ブロッキングポートは前へ
  4. Lerning:MACアドレスの学習をする.BPDUの送受信と他フレームの受信だけする.転送遅延として15秒経過すると次に遷移
  5. 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が拡張した規格