本記事ではスパニングツリープロトコル(STP)の状態遷移や各種タイマーについて解説いたします。
Spanning tree ポート状態遷移について
では、STPポートの状態遷移について解説していきます!
L2ネットワーク内においてスイッチの各ポートが通信可能ポート(フォワード状態)にすると、ブロードキャストストームの発生してしまいます。
図で表現すると以下の通りです。
上記のような問題を防止する為に、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では障害ポイントにより通信断時間が異なります。
具体的にはブロッキングポートを有する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タイマーを短縮すると各L2機器間でBPDUの処理が増え、機器の負荷が増大する可能性がございます。
タイマー値の変更が必要な場合は検証した上で実装しましょう。
最大エージタイマー
最大エージタイマー(Max Age Timer)とはBPDUの通信が途絶えリンク障害が発生したとみなす時間の事です。
デフォルト値は20秒です。
転送遅延タイマー
「リスニング状態からランニング状態」「ランニング状態からフォワーディング状態」にとどまる時間の事です。
デフォルト値は15秒です。
ルートブリッジが発出するBPDUは末端のスイッチに届くまで時間がかかります。
その為、最大エージタイマー・転送遅延タイマーを短縮しすぎると、想定外のトラブル(障害誤検知など)が発生する可能性がございます。
タイマー値の変更が必要な場合は検証した上で実装しましょう。
では、次章では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のタイマーは3種類(Helloタイマー、最大エージタイマー、転送遅延タイマー)
以下の記事にてSTPに関する記事を纏めておりますので、STPに関する幅広い知識を身に付けたい方はご覧下さい!
>>参考記事: 「STPの基本〜応用まで!STPの仕様と検証結果の記事をまとめました!」