STP状態遷移とコンバージェンス
STPにはブロッキング状態とフォワーディング状態の中間的な状態があります。
本項では、STPの状態遷移、状態が収束するコンバージェンスの時間、トポロジーチェンジ等について説明します。
状態の説明
STPには、ブロッキング状態、リスニング状態、ラーニング状態、フォワーディング状態があります。
以下に各状態の特徴をまとめます。
状態 | 英語表示 | BPDU受信 | BPDU送信 | テーブル | フレーム | 保持時間 |
---|---|---|---|---|---|---|
ブロッキング | Blocking | ○ | × | × | × | - |
リスニング | Listening | ○ | ○ | × | × | 15秒 |
ラーニング | Learning | ○ | ○ | ○ | × | 15秒 |
フォワーディング | Forwarding | ○ | ○ | ○ | ○ | - |
テーブル欄は、MACアドレステーブルをエージングするかどうかです。フレーム欄は、フレームを転送するかどうかです。フォワーディング状態になって初めて通常の通信が可能になります。
BPDUを送信するのは、役割が指定ポートの時です。ルートポートになると、BPDUの受信だけ行います。
この他にも、インターフェースが使えない時はDisable状態になります。
状態遷移
スイッチが起動されると、最初は全インターフェースがブロッキング状態になります。フォワーディング状態にする必要があるインターフェースはリスニング状態となり、15秒経過後にラーニング状態、更に15秒経過してフォワーディング状態になります。この15秒を転送遅延タイマー(forward delay)と言います。
受信したBPDUの情報は、遅延を考慮して一定時間保持されます。保持する時間の最大値は最大エージタイマー(max age)と呼ばれ、デフォルトは20秒です。ブロッキング状態の時にBPDUを受信しなくなっても、情報を保持している間はリスニング状態に移行しません。つまり、ブロッキングからフォワーディング状態になるまでは、最大で50秒(20秒+15秒+15秒)かかります。
又、新たにインターフェースがアップすると、リスニング状態から始まります。このため、起動したスイッチにパソコン等を接続すると、通信可能になるまで30秒(15秒+15秒)かかります。
このように、状態遷移が始まってから収束するまでのコンバージェンス時間は、30秒から50秒です。
トポロジーチェンジ
一旦、ルートブリッジやルートポート、指定ポート等が決まった後は、ルートブリッジから2秒間隔で指定ポートを経由し、順次BPDUが流れていきます。
障害等が発生すると、上位からBPDUが流れてこなくなります。ブロッキング状態のインターフェースでBPDUを受信できなくなり、エージタイマーを過ぎると、リスニング状態になり、ラーニング状態を経て、フォワーディング状態になります。
このため、上記では最大50秒間通信が途絶えた後、コンバージェンスして通信可能になります。
又、以下の場合は、自身でインターフェースがダウンした事を検知出来るため、すぐにブロッキング状態を解除する必要があると判断し、エージタイマーを待たずにリスニング状態、ラーニング状態を経てフォワーディング状態になります。
このため、上記では30秒間通信が途絶えた後、コンバージェンスして通信可能になります。
どこからもBPDUを受信出来なくなり、エージタイマーを過ぎると、自身をルートブリッジと認識してBPDUを送信し始めます。
MACアドレステーブルのエージング調整
MACアドレステーブルは、一般的に5分間のエージング時間があります。このため、トポロジーチェンジが発生した時にMACアドレステーブルでエージングされていると、最大5分間通信が出来ない可能性があります。
STPでは、インターフェースがダウンした場合、ルートポートからTCN BPDUと呼ばれるトポロジー変更通知を行い、受信したスイッチはルートブリッジまで順次TCN BPDUを送信します。ルートブリッジでは、トポロジーチェンジが発生したものとして、BPDUのTCビットを有効にして送信します。
TCビットが有効なBPDUを受信したスイッチは、MACアドレステーブルのエージングを転送遅延タイマーの時間に短縮するため、最大5分通信が出来ない事を防げます。
次のページ「STP直径とタイマー計算」