スパニングツリーの状態遷移とタイマーを解説

本記事ではスパニングツリープロトコル(STP)の状態遷移や各種タイマーについて解説いたします。

▼ STPを復習されたい方へ ▼

>>参考記事: スパニングツリー(STP)の基本・設定方法を解説
>>参考記事: RSTPの基本から設定方法を解説

STPの状態遷移について

スイッチの各ポートにおいて全ポートが転送可能なポート(フォワード状態)にしてしまうと、ブロードキャストストームの発生してしまいます。
その為、STPが有効になっているポートでは最初から転送可能なポート(フォワード状態)にせず、以下の状態を経て転送可能なポートへ遷移する仕様となっております。

STPのポート遷移

では、以下にて各ポート遷移の詳細について解説いたします。

ポート遷移① ブロッキング

ブロッキング(Blocking)状態とはMACアドレスの学習は不可・ユーザ通信の転送は不可・BPDUの送信は不可(BPDUの受信のみは可能)なポートステータスの事です。
※電源投入時はブロッキング状態になります。

ブロッキング状態になってから最大エージタイマー(デフォルト 20秒)を経ると、「リスニング」状態へ遷移いたします。

ポート遷移② リスニング

リスニング(Listening)状態とはMACアドレスの学習は不可・ユーザ通信の転送は不可・BPDUの送受信が可能なポートステータスの事です。
※リスニング状態では、ルートブリッジの選定・ルートポートの選定・指定ポートの選定を実施いたします。

リスニング状態になってから転送遅延タイマー(デフォルト 15秒)を経ると、「ランニング」状態へ遷移いたします。

ポート遷移③ ランニング

ランニング(Learning)状態とはMACアドレスの学習は可能・ユーザ通信の転送は不可・BPDUの送受信が可能なポートステータスの事です。
※ランニング状態ではMACアドレスの学習を実施し、データ通信が可能になるように準備している状態です。

ランニング状態になってから転送遅延タイマー(デフォルト 15秒)を経ると、「フォワーディング」状態へ遷移いたします。

ポート遷移④ フォワーディング

フォワーディング(Forwarding)状態とはMACアドレスの学習は可能・ユーザ通信の転送は可能・BPDUの送受信が可能なポートステータスの事です。
※フォワーディング状態になるとユーザ通信が可能になります。

STPのポート遷移

【補足】STPの障害時の通信断時間について

STPが実装されているL2ネットワークは障害ポイントにより通信断時間が異なります。具体的にはブロッキングポートを保持するL2機器視点で直接リンク障害の場合は最大30秒、間接障害の場合は最大50秒の通信が発生します。
上記の通りSTPでは障害時の通信断が長い為、実業務では障害時の通信断時間を短縮できるRSTP(Rapid Spanning Tree Protocol)を実装する事をオススメします。

ポイント
デフォルトではSTPが動いているケースが多いです。RSTPを利用する場合は忘れずに設定して下さい。

STPの各タイマーについて

STPで使用する各種タイマーについてご紹介いたします。

注意点
各タイマーの値を短くする事により通信断時間の短縮が可能ですが、想定外のトラブルが発生する可能性がございます。タイマーの変更する際は必ず検証する事を推奨いたします。

Helloタイマー

HelloタイマーとはBPDUの送信の送信間隔の事です。デフォルト値は2秒です。

【補足】Helloタイマーの短縮について

Helloタイマーを短縮すると各L2機器側ではBPDU関連の処理が増え、機器の負荷が増大する可能性が高いです。タイマー値の変更が必要な場合は検証した上で実装しましょう。

最大エージタイマー

最大エージタイマー(Max Age Timer)とはBPDUの通信が途絶えリンク障害が発生したと見なす時間の事です。デフォルト値は20秒です。

転送遅延タイマー

「リスニング状態からランニング状態」「ランニング状態からフォワーディング状態」にとどまる時間の事です。デフォルト値は15秒です。

【補足】最大エージタイマー・転送遅延タイマーの短縮について

ルートブリッジが発出するBPDUが末端のスイッチに届くまで時間がかかります。その為、最大エージタイマー・転送遅延タイマーを短縮しすぎると、想定外のトラブル(障害誤検知など)が発生する可能性が上がります。タイマー値の変更が必要な場合は検証した上で実装しましょう。
STP-最大エッジタイマー

設定方法

STP Timerの設定方法は以下の通りです。

【補足】STPのタイマー変更時

STPのタイマー値はルートブリッジに設定されているタイマーが全体へ適用されます。
その為、STPタイマーの変更はルートブリッジのみで問題ございません。

Helloタイマー値の設定

【設定コマンド】
 SW(config)# spanning-tree vlan [vlan番号] hello-time [Helloタイマー値]
※VLAN5のHelloタイマー値を1秒にする場合
 SW(config)# spanning-tree vlan 5 hello-time 1

最大エージタイマー値の設定

【設定コマンド】
 SW(config)# spanning-tree vlan [vlan番号] max-age [最大エージタイマー値]
※VLAN5の最大エージタイマー値を15秒にする場合
 SW(config)# spanning-tree vlan 5 max-age 15

転送遅延タイマー値の設定

【設定コマンド】
 SW(config)# spanning-tree vlan [vlan番号] forward-time [転送遅延タイマー値]
※VLAN5の転送遅延タイマー値を10秒にする場合
 SW(config)# spanning-tree vlan 5 forward-time 10

以下の記事にて、STPのタイマー(Helloタイマー値、最大エージタイマー値、転送遅延タイマー値)に関する動作検証の結果を纏めております。ご興味のある方はぜひご覧ください。

▼ STPを復習されたい方へ ▼

>>参考記事: STPのタイマーの設定変更・正常性確認方法【動作検証】

まとめ

最後までお読み頂きましてありがとうございます。

STPについて以下の点は理解しておきましょう!

▼STPのポート遷移やタイマーに関する基本はコチラ!▼

  • STPのポート遷移はブロッキング→リスニング→ランニング→フォワーディングの順
  • STPのタイマーは3種類(Helloタイマー、最大エージタイマー、転送遅延タイマー)

RSTPについて知りたい方はコチラ!
本記事の内容を理解された方は、以下の別記事にて「ラピッドスパニングツリープロトコル(RSTP)」について纏めておりますので、ご興味のある方はぜひご覧ください。