『RSTP(ラピッドスパニングツリープロトコル)』について、CMLで環境を構築し説明します。
通常の『STP(スパニングツリープロトコル)』の説明は下記を参照してください。
ネットワーク構成
CMLで下記の環境を構築します。全スイッチでRSTP設定を有効化します。(Server1とPC1が接続されているポートはportfastの設定を入れています。)
hostname L2SW-A
spanning-tree mode rapid-pvst
interface GigabitEthernet0/2
spanning-tree portfast edge
hostname L2SW-B
spanning-tree mode rapid-pvst
hostname L2SW-C
spanning-tree mode rapid-pvst
hostname L2SW-D
spanning-tree mode rapid-pvst
interface GigabitEthernet0/2
spanning-tree portfast edge
hostname Server1
ifconfig eth0 192.168.100.1 netmask 255.255.255.0 up
route add -net 0.0.0.0/0 dev eth0
hostname PC1
ifconfig eth0 192.168.100.100 netmask 255.255.255.0 up
route add -net 0.0.0.0/0 dev eth0
RSTPのポートの役割と状態
ポートの役割
RSTPでは下記4つのポートの役割があります。
役割 | 説明 |
---|---|
ルートポート | RP – Root Port 各スイッチでルートブリッジに最も近いポート。ルートブリッジ以外の各スイッチごとに1ポートが選出される。 |
指定ポート | DP – Designated Port 各リンクでルートブリッジに最も近いポート。各リンクごとに1ポートが選出される。 |
代替ポート | AP – Alternate Port ルートポート/指定ポートに選出されなかったポート。ルートポートのリンクダウン時に即座に役割を引き継ぐ。 |
バックアップポート | BP – Backup Port BPDUを透過する非STP機器(リピータハブ等)と接続する場合に選出されるポート。指定ポートのリンクダウン時に即座に役割を引き継ぐ。 |
ポートの状態
RSTPでは下記3つのポートの状態があります。
状態 | 説明 |
---|---|
ディスカーディング(DIS) | BPDUの送受信を行うが、MACアドレスの学習は行わず、データフレームは転送されない。 もしくは、ポートがシャットダウンされ、STPに参加しない状態。 |
ラーニング(LRN) | BPDUの送受信を行い、MACアドレスの学習を始める状態。データフレームは転送されない。 |
フォワーディング(FWD) | ルートポート・指定ポートとなり、データフレームの転送が可能な状態。 |
RSTPのコンバージェンス確認
STPイベントのデバッグ有効化
各スイッチではSTPイベントのデバッグを有効化しておきます。
debug spanning-tree events
スイッチ間のリンク確立
スイッチ間が接続されているポートを同時にリンクアップさせ、RSTPのコンバージェンス状況を確認します。
interface range Gi0/0 - 1
no shut
複数スイッチで同時にコマンドを投入する方法は下記を参照してください。
BPDU(プロポーザル)送信
スイッチ間のリンクが確立すると、各スイッチは自身のポートを非指定ポート(ディスカーディング状態)とします。そして、「自身がルートスイッチであり、自身のポートを指定ポートする」という、プロポーザルBPDUを送信します。
デバッグログ確認
07:00:03.740: RSTP(1): initializing port Gi0/0
07:00:03.740: RSTP(1): Gi0/0 is now designated
07:00:03.748: RSTP(1): transmitting a proposal on Gi0/0
07:00:04.086: RSTP(1): initializing port Gi0/1
07:00:04.087: RSTP(1): Gi0/1 is now designated
07:00:04.092: RSTP(1): transmitting a proposal on Gi0/1
07:00:03.573: RSTP(1): initializing port Gi0/0
07:00:03.573: RSTP(1): Gi0/0 is now designated
07:00:03.636: RSTP(1): transmitting a proposal on Gi0/0
07:00:03.887: RSTP(1): initializing port Gi0/1
07:00:03.888: RSTP(1): Gi0/1 is now designated
07:00:03.907: RSTP(1): transmitting a proposal on Gi0/1
07:00:03.491: RSTP(1): initializing port Gi0/0
07:00:03.492: RSTP(1): Gi0/0 is now designated
07:00:03.492: RSTP(1): initializing port Gi0/1
07:00:03.493: RSTP(1): Gi0/1 is now designated
07:00:03.499: RSTP(1): transmitting a proposal on Gi0/0
07:00:03.500: RSTP(1): transmitting a proposal on Gi0/1
07:00:03.655: RSTP(1): initializing port Gi0/0
07:00:03.656: RSTP(1): Gi0/0 is now designated
07:00:03.659: RSTP(1): initializing port Gi0/1
07:00:03.660: RSTP(1): Gi0/1 is now designated
07:00:03.730: RSTP(1): transmitting a proposal on Gi0/0
07:00:03.731: RSTP(1): transmitting a proposal on Gi0/1
キャプチャ確認
L2SW-AとL2SW-Bから送信されたBPDU(プロポーザル)パケット
BPDU(アグリーメント)の送信
受信したプロポーザルBPDUのブリッジIDとルートパスコストを確認し、自身より優先順位が高い場合は、相手をルートブリッジとして認識します。そして、相手のポートを指定ポートと認めるアグリーメントBPDUを送信します。同時に自身のポートはルートポートとして、フォワーディング状態に遷移します。
デバッグログ確認
07:00:04.872: RSTP(1): updt roles, received superior bpdu on Gi0/0
07:00:04.872: RSTP(1): Gi0/0 is now root port
07:00:04.881: RSTP(1): transmitting an agreement on Gi0/0 as a response to a proposal
07:00:04.061: RSTP(1): updt roles, received superior bpdu on Gi0/1
07:00:04.061: RSTP(1): Gi0/1 is now root port
07:00:04.076: RSTP(1): transmitting an agreement on Gi0/1 as a response to a proposal
キャプチャ確認
L2SW-BとL2SW-Cから送信されたBPDU(アグリーメント)パケット
代替ポートの選出
L2SW-Dに関しては、BPDU(プロポーザル)を受信し、両ポートが一度ルートポートになります。その後すぐに、Gi0/0をブロック状態に変更し、代替ポートに選出されます。
デバッグログ確認
07:00:03.906: RSTP(1): updt roles, received superior bpdu on Gi0/0
07:00:03.907: RSTP(1): Gi0/0 is now root port
07:00:03.921: RSTP(1): transmitting an agreement on Gi0/0 as a response to a proposal
07:00:05.239: RSTP(1): updt roles, received superior bpdu on Gi0/1
07:00:05.239: RSTP(1): Gi0/1 is now root port
07:00:05.239: RSTP(1): Gi0/0 blocked by re-root
07:00:05.240: RSTP(1): Gi0/0 is now alternate
07:00:05.244: RSTP(1): transmitting an agreement on Gi0/1 as a response to a proposal
BPDU(アグリーメント)の受信
アグリーメントBPDUを受信したスイッチも、すぐにフォワーディング状態に遷移し、データフレームの転送を開始します。
デバッグログ確認
07:00:04.724: RSTP(1): received an agreement on Gi0/1
07:00:05.137: RSTP(1): received an agreement on Gi0/0
07:00:05.387: RSTP(1): received an agreement on Gi0/1
07:00:04.082: RSTP(1): received an agreement on Gi0/0
各スイッチのSTPステータス
各スイッチで下記のコマンドを実行し、最終的なSTPのステータスを確認します。上記のとおり、ポートの役割が決定していることが分かります。
show spanning-tree
L2SW-A#show spanning-tree
VLAN0001
Spanning tree enabled protocol rstp
Root ID Priority 32769
Address 5254.000f.0d54
This bridge is the root
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 5254.000f.0d54
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/0 Desg FWD 4 128.1 P2p
Gi0/1 Desg FWD 4 128.2 P2p
Gi0/2 Desg FWD 4 128.3 P2p Edge
L2SW-B#show spanning-tree
VLAN0001
Spanning tree enabled protocol rstp
Root ID Priority 32769
Address 5254.000f.0d54
Cost 4
Port 1 (GigabitEthernet0/0)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 5254.000f.cf83
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/0 Root FWD 4 128.1 P2p
Gi0/1 Desg FWD 4 128.2 P2p
L2SW-C#show spanning-tree
VLAN0001
Spanning tree enabled protocol rstp
Root ID Priority 32769
Address 5254.000f.0d54
Cost 4
Port 2 (GigabitEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 5254.001b.ef10
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/0 Desg FWD 4 128.1 P2p
Gi0/1 Root FWD 4 128.2 P2p
L2SW-D#show spanning-tree
VLAN0001
Spanning tree enabled protocol rstp
Root ID Priority 32769
Address 5254.000f.0d54
Cost 8
Port 2 (GigabitEthernet0/1)
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Bridge ID Priority 32769 (priority 32768 sys-id-ext 1)
Address 5254.001c.ff7a
Hello Time 2 sec Max Age 20 sec Forward Delay 15 sec
Aging Time 300 sec
Interface Role Sts Cost Prio.Nbr Type
------------------- ---- --- --------- -------- --------------------------------
Gi0/0 Altn BLK 4 128.1 P2p
Gi0/1 Root FWD 4 128.2 P2p
Gi0/2 Desg FWD 4 128.3 P2p Edge
このように、BPDUに”プロポーザル”と”アグリーメント”という『ハンドシェイク』の仕組みを導入することにより、ルートブリッジ選出・ポート役割の選出・ポート状態遷移を同時に行い、高速コンバージェンスを実現しています。
以上で、RSTP(ラピッドスパニングツリープロトコル)の状態遷移の説明は完了です!