STP状態遷移とコンバージェンス

STPにはブロッキング状態とフォワーディング状態の中間的な状態があります。

本項では、STPの状態遷移、状態が収束するコンバージェンスの時間、トポロジーチェンジ等について説明します。

状態の説明

 STPには、ブロッキング状態、リスニング状態、ラーニング状態、フォワーディング状態があります。

 以下に各状態の特徴をまとめます。

【STP状態】
状態 英語表示 BPDU受信 BPDU送信 テーブル フレーム 保持時間
ブロッキング Blocking × × × -
リスニング Listening × × 15秒
ラーニング Learning × 15秒
フォワーディング Forwarding -

 テーブル欄は、MACアドレステーブルをエージングするかどうかです。フレーム欄は、フレームを転送するかどうかです。フォワーディング状態になって初めて通常の通信が可能になります。

 BPDUを送信するのは、役割が指定ポートの時です。ルートポートになると、BPDUの受信だけ行います。

 この他にも、インターフェースが使えない時はDisable状態になります。

状態遷移

 スイッチが起動されると、最初は全インターフェースがブロッキング状態になります。フォワーディング状態にする必要があるインターフェースはリスニング状態となり、15秒経過後にラーニング状態、更に15秒経過してフォワーディング状態になります。この15秒を転送遅延タイマー(forward delay)と言います。

STPの状態遷移

 受信したBPDUの情報は、遅延を考慮して一定時間保持されます。保持する時間の最大値は最大エージタイマー(max age)と呼ばれ、デフォルトは20秒です。ブロッキング状態の時にBPDUを受信しなくなっても、情報を保持している間はリスニング状態に移行しません。つまり、ブロッキングからフォワーディング状態になるまでは、最大で50秒(20秒+15秒+15秒)かかります。

 又、新たにインターフェースがアップすると、リスニング状態から始まります。このため、起動したスイッチにパソコン等を接続すると、通信可能になるまで30秒(15秒+15秒)かかります。

 このように、状態遷移が始まってから収束するまでのコンバージェンス時間は、30秒から50秒です。

トポロジーチェンジ

 一旦、ルートブリッジやルートポート、指定ポート等が決まった後は、ルートブリッジから2秒間隔で指定ポートを経由し、順次BPDUが流れていきます。

STPでのBPDUが流れる方向

 障害等が発生すると、上位からBPDUが流れてこなくなります。ブロッキング状態のインターフェースでBPDUを受信できなくなり、エージタイマーを過ぎると、リスニング状態になり、ラーニング状態を経て、フォワーディング状態になります。

STPで障害時の状態遷移(エージタイマー切れ)

 このため、上記では最大50秒間通信が途絶えた後、コンバージェンスして通信可能になります。

 又、以下の場合は、自身でインターフェースがダウンした事を検知出来るため、すぐにブロッキング状態を解除する必要があると判断し、エージタイマーを待たずにリスニング状態、ラーニング状態を経てフォワーディング状態になります。

STPで障害時の状態遷移(インターフェースダウン検知)

 このため、上記では30秒間通信が途絶えた後、コンバージェンスして通信可能になります。

 どこからもBPDUを受信出来なくなり、エージタイマーを過ぎると、自身をルートブリッジと認識してBPDUを送信し始めます。

MACアドレステーブルのエージング調整

 MACアドレステーブルは、一般的に5分間のエージング時間があります。このため、トポロジーチェンジが発生した時にMACアドレステーブルでエージングされていると、最大5分間通信が出来ない可能性があります。

STPトポロジーチェンジ時にMACアドレステーブルのエージングがあると通信不可

 STPでは、インターフェースがダウンした場合、ルートポートからTCN BPDUと呼ばれるトポロジー変更通知を行い、受信したスイッチはルートブリッジまで順次TCN BPDUを送信します。ルートブリッジでは、トポロジーチェンジが発生したものとして、BPDUのTCビットを有効にして送信します。

STPのTCN BPDUとTC

 TCビットが有効なBPDUを受信したスイッチは、MACアドレステーブルのエージングを転送遅延タイマーの時間に短縮するため、最大5分通信が出来ない事を防げます。

次のページ「STP直径とタイマー計算

  • このエントリーをはてなブックマークに追加