本記事ではラピッドスパニングツリープロトコル(RSTP)の基本動作・設定コマンド・STPとの違いについて解説いたします。
RSTP(Rapid Spanning Tree)とは
ラピッドスパニングツリープロトコル(Rapid Spanning Tree Protocol : RSTP)はSTPと同様、ブロードキャストストームの発生を防止するL2技術です。
RSTPはIEEE802.1wで標準化されており、STPの最大の欠点である最大50秒の通信断時間を数秒に短縮する事が可能です。
※RSTPではSTPと異なり「BPDUv2(BPDUの機能拡張版)」を使用しております。
BPDUv2では「プロポーザルBPDU」と「アグリーメントBPDU」を使用し、高速切り替えを実装しております。
では次章にて具体的なRSTPの動作について解説いたします。
STPとRSTPの動作違いについて
ではSTPとRSTPの動作の違いについて解説いたします。
※細かい違いは多数ございますので本記事ではその中でも理解しておいた方がよい、代表的な違いをご紹介させていただきます。
STPとの大きな違いは以下の4点です!
- 代替ポート・バックアップポートの選出
- プロポーザルBPDU・アグリーメントBPDUでのポート選出
- 間接障害時の切り替わり時間
- RSTPの状態遷移
では、上記①〜④の詳細について解説いたします。
STPとRSTPの動作違い①代替ポート・バックアップポートの選出(Alternate Port,Backup Port)
STPではブロッキングポートの選出を実施しますが、RSTPではブロッキングポートではなく代わりに「代替ポート」「バックアップポート」の選出を実施します。
※STPで選出されるブロッキングポートとは異なり、RSTPで選出される「代替ポート」「バックアップポート」では障害時に継承するポートが決まっております。
代替ポート・バックアップポートの詳細は以下の通りです。
- 代替ポート(Alternate Port : AP)
代替ポートはルートポートの障害時に利用するバックアップ用のポートです。
- バックアップポート(Backup Port : BP)
バックアップポートは指定ポートの障害時に利用するバックアップとなるポートです。
また、STPとRSTPのポート役割の違いは以下の通りです。
▼ STPとRSTPのポート役割の違い ▼
STP ポートの役割 | RSTP ポートの役割 | 備考 |
---|---|---|
ルートポート | ルートポート | STP/RSTP 同じ |
指定ポート | 指定ポート | STP/RSTP 同じ |
ブロッキングポート | 代替ポート | ルートポートの障害時に利用するバックアップ用のポート |
ブロッキングポート | バックアップポート | 指定ポートの障害時に利用するバックアップとなるポート |
図で表すと、代替ポート・バックアップポートの選定イメージは以下の通りです。
STPとRSTPの動作違い②プロポーザルBPDU・アグリーメントBPDU(BPDUv2)でのポート選出
RSTPではBPDUv2(プロポーザルBPDU・アグリーメントBPDU)を対向スイッチと直接やりとりを実施し、各ポートの選出や障害時の高速切り替えを実現しております。
まず各L2機器でプロポーザルBPDUを送信し合い、対向機器のRSTPの設定値(ブリッジプライオリティ・パスコスト等)を確認し合います。
その後、優先度の低いSW(指定ポートにならないSW)がアグリーメントBPDU送信する事により、各ポートの選出を実装しております。
STPとRSTPの動作違い③間接障害時の収束(再計算)や切り替わり時間
STP環境では間接障害時の通信断時間が最大50秒かかっておりました。
しかし、RSTPではプロポーザルBPDUとアグリーメントBPDUを使用し数秒での切り替えを実現しております。
STPとRSTPにおける障害時の挙動は以下の図の通りです。
▼ STP 間接障害 ▼
①ブロッキングポート(NDP)を持つSW3視点で間接障害(SW1-SW2の障害)が発生。
※SW3のNDPポートにBPDUが届かなくなる。
②最大エージタイマー(20秒)を待ってからSTPの再計算(転送遅延タイマー15秒 ×2)が実行され、ポートの切替が完了しユーザ通信が可能になる。
(障害時の切替に50秒かかる。)
上記の通り、STPで間接障害が発生した場合はバックアップルートへ切り替わるのに50秒かかってしまいます。
では、RSTPではどうでしょうか?
▼ RSTP 間接障害 ▼
①代替ポート(AP)を持つSW3視点で間接障害(SW1-SW2の障害)が発生。
②すぐに障害発生元のSW2にてトポロジー変更を示すBPDU(TC)をSW3へ送出。
③SW3がSW2宛にプロポーザルBPDU(代替ポートを指定ポートへ変更したいメッセージ)を送出し、SW2でアグリーメントBPDU(ポート変更OKというメッセージ)を送出する。
RSTPでは上記のような仕組みを活用する事で、バックアップルートへ素早く切り替える事が可能です。
STPとRSTPの動作違い④RSTPの状態遷移
STPでは「ブロッキング→リスニング→ランニング→フォワーディング」の順で遷移しますが、RSTPでは「ディスカーディング→ランニング→フォワーディング」の順に遷移します。
▼ RSTPの状態遷移 ▼
また、STPとRSTPの状態遷移の違いは以下の通りです。
▼ STPとRSTPの状態遷移の違い ▼
STP 状態遷移 | RSTP 状態遷移 |
---|---|
ブロッキング | ディスカーディング |
リスニング | ディスカーディング |
ランニング | ランニング |
フォワーディング | フォワーディング |
では、以下にて各状態遷移の詳細について紹介します。
RSTPの状態遷移① ポートディスカーディング(Discarding)
ディスカーディング(Discarding)状態とはMACアドレスの学習は不可・ユーザ通信の転送は不可・BPDUの受信は可能なポートステータスの事です。
※電源投入時はブロッキング状態になります。
RSTPの状態遷移② ランニング(Learning)
ランニング(Learning)状態とはMACアドレスの学習は可能・ユーザ通信の転送は不可・BPDUの送受信が可能なポートステータスの事です。
※ランニング状態ではMACアドレスの学習を実施し、データ通信が可能になるように準備している状態です
RSTPの状態遷移③ フォワーディング(Forwarding)
フォワーディング(Forwarding)状態とはMACアドレスの学習は可能・ユーザ通信の転送は可能・BPDUの送受信が可能なポートステータスの事です。
※フォワーディング状態になるとユーザ通信が可能になります。
また、STPの状態遷移について復習されたい方は、以下の記事をご確認下さい!
>>参考記事: 「Spanning treeの状態遷移とタイマーを解説」
RSTP(Rapid Spanning Tree) 設定方法
では、最後にRSTPの設定方法について紹介いたします。
RSTPの有効化・無効化設定(spanning-tree mode rapid-pvst)
RSTPを有効化する際は「spanning-tree mode rapid-pvstコマンド」にて実施します。
・全VLANのRSTP有効化
【設定コマンド】
SW(config)# spanning-tree mode rapid-pvst
RSTPの検証結果に関する記事は以下に纏めておりますので、興味のある方はご覧ください!
>>参考記事: 「RSTPの設定変更・正常性確認方法【動作検証】」
・全VLANのRSTP無効化
RSTPを無効化する際は「no spanning-tree mode rapid-pvstコマンド」にて実施します。
【設定コマンド】
SW(config)# no spanning-tree mode rapid-pvst
・特定VLANのRSTP有効化
特定のVLANでRSTPを有効化する際は「spanning-tree vlan [vlan番号]コマンド」にて実施します。
【設定コマンド】
SW(config)# spanning-tree vlan [vlan番号]
※VLAN5を有効化を場合
SW(config)# spanning-tree vlan 5
・特定VLANのRSTP無効化
特定のVLANでRSTPを無効化する際は「no spanning-tree vlan [vlan番号]コマンド」にて実施します。
【設定コマンド】
SW(config)# no spanning-tree vlan [vlan番号]
※VLAN5を無効化を場合
SW(config)# no spanning-tree vlan 5
ブリッジプライオリティの設定(spanning-tree priority)
ブリッジプライオリティを変更する際は「spanning-tree vlan [vlan番号] priority [ブリッジプライオリティ]コマンド」にて実施します。
【設定コマンド】
SW(config)# spanning-tree vlan [vlan番号] priority [ブリッジプライオリティ]
※VLAN5のブリッジプライオリティを0にする場合
SW(config)# spanning-tree vlan 5 priority 0
パスコストの設定(spanning-tree cost)
パスコストを変更する際は「spanning-tree vlan [vlan番号] cost [コスト値]コマンド」にて実施します。
【設定コマンド】
SW(config)# interface [インターフェース名&番号]
SW(config-if)# spanning-tree vlan [vlan番号] cost [コスト値]
※VLAN5のコスト値を0にする場合
SW(config)# interface gigabitethernet1/0/1
SW(config-if)# spanning-tree vlan 5 priority 1
ポートプライオリティの設定(spanning-tree port-priority)
ポートプライオリティを変更する際は「spanning-tree vlan [vlan番号] port-priority [ポートプライオリティ値]コマンド」にて実施します。
【設定コマンド】
SW(config)# interface [インターフェース名&番号]
SW(config-if)# spanning-tree vlan [vlan番号] port-priority [ポートプライオリティ値]
※VLAN5のポートプライオリティ値を1にする場合
SW(config)# interface gigabitethernet1/0/1
SW(config-if)# spanning-tree vlan 5 port-priority 1
まとめ
最後までお読み頂きましてありがとうございます。
本記事で内容を纏めましたので再度復習してみて下さいね!
- RSTPは障害時の通信時間を数秒で切り替える事ができる(STPの改良版)
- RSTPはBPDUv2を用いてブロードキャストストームの発生を防止する
- STPでは3つのポート種別(ルートポート・指定ポート・代替ポート・バックアップポート)がある
- RSTPのポートは「ディスカーディング→ランニング→フォワーディング」の順に遷移する
以下の記事にてSTPに関する記事を纏めておりますので、STPに関する幅広い知識を身に付けたい方はご覧下さい!
>>参考記事: 「STPの基本〜応用まで!STPの仕様と検証結果の記事をまとめました!」