Spanning treeの状態遷移とタイマーを解説【CCNA】

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

Spanning tree ポート状態遷移について


では、STPポートの状態遷移について解説していきます!


L2ネットワーク内においてスイッチの各ポートが通信可能ポート(フォワード状態)にすると、ブロードキャストストームの発生してしまいます。
図で表現すると以下の通りです。
スパニングツリー


上記のような問題を防止する為に、STPが有効になっているポートは直ぐに通信可能なポート(フォワード状態)にせず、以下の状態を経て通信可能なポートへ遷移する仕様になっております。


ポート遷移図は以下の通りです。
STPのポート遷移


また、各ポートの役割と各種タイマーは以下の通りになります。
STPのポート遷移
では、以下にて各ポート遷移の詳細について解説します!

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

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


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

Spanning tree ポート遷移② リスニング

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


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

Spanning tree ポート遷移③ ランニング

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


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

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

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

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

STPでは障害ポイントにより通信断時間が異なります。
具体的にはブロッキングポートを有するL2機器からみて、直接リンク障害が発生した場合は最大30秒、間接障害の場合は最大50秒の通信断が発生します。


上記の通りSTPでは障害時の通信断が長い為、実業務では障害時の通信断時間を短縮できるRSTP(Rapid Spanning Tree Protocol)を実装する事が多いです。

ポイント
最近ではSTP,RSTPではなく、各メーカーのスタック技術やVXLANなどのループフリーな技術が利用される事が多いです!
興味のある方は調べてみて下さいね!



次章ではSTPの各種タイマーについて解説します!

Spanning tree タイマー(hello, max age, forward-time)について


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

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

Helloタイマー

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

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

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

最大エージタイマー

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

転送遅延タイマー

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

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

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

では、次章ではSTPタイマーの設定方法について紹介します!

Spanning tree タイマー(hello, max age, forward-time) 設定方法


では、STP Timerの設定方法について紹介します。


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

Helloタイマー値の設定

Helloタイマー値を変更する場合は「spanning-tree vlan [vlan番号] hello-time [Helloタイマー値]コマンド」で設定します。

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

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

最大エージタイマー値を変更する場合は「spanning-tree vlan [vlan番号] max-age [最大エージタイマー値]コマンド」で設定します。

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

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

転送遅延タイマー値を変更する場合は「spanning-tree vlan [vlan番号] forward-time [転送遅延タイマー値]コマンド」で設定します。

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

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

▼ あなたにオススメな記事 ▼

>>参考記事: 【検証結果】STPのタイマーの設定変更や正常性確認方法を纏めました!

Spanning tree 状態遷移とタイマーのまとめ


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


本記事で内容を纏めましたので再度復習してみて下さいね!

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

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



以下の記事にてSTPに関する記事を纏めておりますので、STPに関する幅広い知識を身に付けたい方はご覧下さい!

▼ あなたにオススメな記事 ▼

>>参考記事: STPの基本〜応用まで!STPの仕様と検証結果の記事をまとめました!