ネットワークエンジニアの備忘録

トラブルや気になった点をメモしておきます。

STPのBPDU

BPDUについて改めて確認したくて整理しました。

BPDUはSTPで正しくトポロジを形成するため、定期的にマルチキャストアドレス宛(0180.C200.0000)に送信します。

 ※以下の記載のSTPが有効なポートとは同一Vlanの前提で記載します。

【RootBridgeの選定】

STPが有効な各スイッチは、隣接しているSTPが有効なスイッチ同士でBPDUを交換します。このときBPDUには自身のBridge Priorityを挿入して送信します。受信したBPDUのPriorityが自身のPriorityより低ければRootBridge候補から外れます。その後RootBridge候補のPriorityを広告するため、隣接スイッチに送信するBPDUにはRootBridge候補のPriorityを挿入します。最終的に最もPriorityが低いスイッチがRootBridgeとなります。

【RootBridge選定後のBPDU】

RootBridgeはSTPが有効なすべてのポートからBPDUを2秒毎に送信します。BPDUを受信した非RootBridgeは受信したポート以外の全てのSTPが有効なポートからBPDUを送信します。つまり受信ポートにBPDUを送信することはありません。BPDUを一定期間受信しないと障害と判断します。例外としてBLKポートはBPDUを送信しません。(受信はします。)また、経路切り替え時はBPDUでTopology change notificationを送信し、構成変更を通知します。この際も本来のBPDU送信ポートからしか出力しません。BLKポートだったところからもlistening状態に移行してBPDUを送信します。

結果的にBLKポートを持つスイッチ以外の各スイッチは常にBPDUを送信することになります。仮にBPDUを受信しなくなった場合も、自身がRootBridgeになり、BPDUを送信し続けます。

BLKポートを持たない非RootBridgeのルートポート障害時にはTCにビットを立てたBPDUを隣接スイッチに送信します。このとき送信するBPDUのBridge Prioirtyは、障害によってRootBridgeからPriortityを受け取れなくなったため、自身のPriorityを付与します。このBPDUを受信した隣接スイッチは内部タイマーを開始し、一定時間経過後にBLKポートをリスニング状態にしてTC付きのBPDUを送信します。このBPDUに付与されるBride Priorityは本来のRootBridgeのものとなります。BPDUを受信した障害発生スイッチはTopology change notificationを送信し、RootBridgeまでトポロジ変更を通知します。ただし、BLKポートを持つ非RootBridgeのルートポート障害時は即座にTopology change notificationを送信し、BLKポートをフォワーディング状態に移行します

逆にポート復旧時は障害復旧したスイッチが隣接スイッチにTCにビットを立てたBPDUを隣接スイッチに送信します。その後、受信したスイッチはTopology change notificationを送信し、RootBridgeまでトポロジ変更を通知します。