ひよっこエンジニアの備忘録

日常とかSEとしての備忘を書いていきます。

STP動作メモ

STP(SpanningTree Protocol:IEEE802.1D)
●ルートブリッジ選定
☆ルートブリッジ=ブリッジID(BID)が最小のスイッチ

BIDとは
→スイッチごとに一意な8バイトの値
→ブリッジプライオリティ(2バイト)+MACアドレス(6バイト)=BID(8バイト)

ブリッジプライオリティは2バイトのため0~65535の間で定義される。(デフォルト中間地点の32768)
ブリッジプライオリティはデフォルト固定値のため基本的には最少MACアドレスのSWがルートブリッジとなる。

●Roleの決定
ルートポート(RP)→BPDUを受信するポート
指定ポート(DP)→BPDUを送信するポート
非指定ポート(NDP)→RP、DPどちらにも選ばれなかったポート、通称ブロッキングポート

選定要素は下記の通り
・ルートブリッジへのパスコスト合計値が最小
→パスコストはリンクごとの帯域で決定(10G-2/1G-4/100M-19/10M-100)
・送信元ブリッジIDが最少
・送信元ポートIDが最少
→ポートIDはポートプライオリティ(デフォルト128)+ポートインデックス(Fa0/1、0/2...)の計2バイトの値
→ポートプライオリティを弄ってなければ若番ポートの方が小さい値となる

●ポート状態憑依
ブロッキング
→最大遅延タイマー(デフォルト20秒)
→BPDU受信・データフレームは転送しない状態。直接接続されたリンク障害はブロッキングを飛ばしてすぐにリスニングへ移行
②リスニング
→転送遅延タイマー(デフォルト15秒)
→BPDU送受信・データフレームは転送しない状態。ここでBPDUを交換してRoleを確定させる
③ラーニング
→転送遅延タイマー(デフォルト15秒)
→BPDU送受信・データフレームは転送しない状態。MACアドレステーブルを構築しデータフレーム転送準備を行う(まだデータフレームは転送しない)
フォワーディング
→BPDU送受信・データフレームを転送する状態。
※リンクダウンしているポートはDisable状態となりフレームを転送しない

●STP ToolKit
・Portfast
→サーバやPC向けポートに設定する技術。STPのコンバージェンスタイマー50秒を飛ばして即フォワーティングへ移行する。
・BPDUガード
→PortfastポートでBPDUを受診した場合、ポートをerr-disable状態にする機能。不正なスイッチが接続されることを防ぐ。
・BPDUフィルタ
→PortfastポートでのBPDU送信を抑制する機能。グローバルで設定する場合とポートに設定する場合で動作が異なるため注意が必要。
 ▲グローバル…PortfastポートでBPDUを受信した場合、Portfast状態を解除し通常のSTPポートとしてBPDUを送受信させる
 ▲ポート単位…PortfastポートでBPDUを受信した場合、BPDUを無視する(自分から送信もしない)
・ルートガード
→管理外のスイッチがルートブリッジになることを防ぐ機能。
 ルートガードが有効なポートで上位BPDU(プライオリティが小さい)を受信するとルート不整合状態(root-inconsistent:BPDUの転送を止める)
 へ移行しルートブリッジが変わることを防ぐ。ちなみにルートガードのみグローバルでは設定できない
・ループガード
→STPプロセス障害や単一リンク障害によりBPDU受信不可になった際、代替ポートやルートポートが指定ポートになりループが起こることを防ぐ機能
 指定ポート以外のポートからBPDUを受信した場合、ルート不整合状態(root-inconsistent:BPDUの転送を止める)へ移行する

・UplinkFast
→NDPポートをもつスイッチの直接リンク障害発生時アップリンクを高速で切り替える。
 直接リンク障害発生時NDPポートを5sec以内にフォワーディング状態に切り替える
・BackboneFast
→NDPポートをもつスイッチの間接リンク障害発生時経路を高速で切り替える
 間接リンク障害発生時NDPポートをすぐにリスニング状態に切り替える
 ※フォワーディングではなく飽くまでもリスニング状態への移行となるため
  フォワーディング状態に切り替わるまでに転送遅延タイマー15sec ×2回分(リスニング/ラーニング)の30sec程度要する

●コマンド
<設定>
・portfast
→(config)#spanning-tree pordtfast default
 (config-if)#spanning-tree portfast
・uplink fast
→(config)#spanning-tree uplinkfast
・backbonefast
→(config)#spanning-tree backbonefast

・BPDUガード
→(config)#spanning-tree portfast bpduguard default
 (config-if)#spanning-tree bpduguard enable
・BPDUフィルタ
→(config)#spanning-tree portfast bpdufilter default
 (config-if)#spanning-tree bpdufilter enable
・ルートガード
→(config-if)#spanning-tree guard root
・ループガード
→(config)#spanning-tree loopguard default
 (config-if)#spanning-tree guard loop

<確認>
・show span
・show span sum
・show span de
・show span inconsistentports