RSTP(ラピッドスパニングツリープロトコル)の障害時動作

RSTP(ラピッドスパニングツリープロトコル)の障害時動作

障害発生時のRSTPの動作について、CMLで環境を構築し説明します。

目次

ネットワーク構成

CMLで下記の環境を構築します。全スイッチでRSTP設定を有効化します。(Server1とPC1が接続されているポートはportfastの設定を入れています。)

初期構築時のRSTPの収束に関しては、下記を参照してください。

ネットワーク構成
L2SW-A
hostname L2SW-A

spanning-tree mode rapid-pvst

interface GigabitEthernet0/2
 spanning-tree portfast edge
L2SW-B
hostname L2SW-B

spanning-tree mode rapid-pvst
L2SW-C
hostname L2SW-C

spanning-tree mode rapid-pvst
L2SW-D
hostname L2SW-D

spanning-tree mode rapid-pvst

interface GigabitEthernet0/2
 spanning-tree portfast edge
Server1
hostname Server1
ifconfig eth0 192.168.100.1 netmask 255.255.255.0 up
route add -net 0.0.0.0/0 dev eth0
PC1
hostname PC1
ifconfig eth0 192.168.100.100 netmask 255.255.255.0 up
route add -net 0.0.0.0/0 dev eth0

正常時の通信経路

PC1とServer1間の正常時の通信経路は下記の通りです。

正常時の通信経路

障害時の動作(パターン1)

L2SW-BとL2SW-Dの間のリンク障害を想定し、障害時のSTPの動作を確認します。

L2SW-BとL2SW-Dの間のリンク障害

PC1からServer1へ連続Pingを実施し、通信断時間を測定します。

PC1
ping 192.168.1.1
PC1:~$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: seq=0 ttl=42 time=20.089 ms
64 bytes from 192.168.100.1: seq=1 ttl=42 time=14.472 ms
64 bytes from 192.168.100.1: seq=2 ttl=42 time=30.604 ms

障害発生

L2SW-BとL2SW-Dの双方で下記コマンドを実行します。※CMLの場合、対向機器のインターフェースをシャットダウンしても、自機器のインターフェースのダウンを検知しないため、双方で”shutdown”コマンドを実施します。

L2SW-B/L2SW-D
interface GigabitEthernet0/1
 shutdown

RSTPの収束

Gi0/1がダウンすると、代替ポートであるGi0/0がすぐにルートポートに選出され、データフレームの転送を開始します。

RSTPの収束

デバッグログの確認

L2SW-D
07:00:00.123: RSTP(1): updt roles, root port Gi0/1 going down
07:00:00.123: RSTP(1): Gi0/0 is now root port

通信断時間の確認

PC1で実施していた連続Pingを確認すると、通信断は発生していないことが分かります。(断時間無しで、高速で収束しているということになります。)

PC1
PC1:~$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: seq=0 ttl=42 time=20.089 ms
64 bytes from 192.168.100.1: seq=1 ttl=42 time=14.472 ms
64 bytes from 192.168.100.1: seq=2 ttl=42 time=30.604 ms
64 bytes from 192.168.100.1: seq=3 ttl=42 time=16.690 ms
64 bytes from 192.168.100.1: seq=4 ttl=42 time=16.347 ms
64 bytes from 192.168.100.1: seq=5 ttl=42 time=15.160 ms
64 bytes from 192.168.100.1: seq=6 ttl=42 time=16.089 ms
64 bytes from 192.168.100.1: seq=7 ttl=42 time=31.115 ms
64 bytes from 192.168.100.1: seq=8 ttl=42 time=21.137 ms
64 bytes from 192.168.100.1: seq=9 ttl=42 time=13.791 ms
64 bytes from 192.168.100.1: seq=10 ttl=42 time=22.462 ms
64 bytes from 192.168.100.1: seq=11 ttl=42 time=23.208 ms
64 bytes from 192.168.100.1: seq=12 ttl=42 time=60.705 ms
64 bytes from 192.168.100.1: seq=13 ttl=42 time=17.790 ms
64 bytes from 192.168.100.1: seq=14 ttl=42 time=27.346 ms
64 bytes from 192.168.100.1: seq=15 ttl=42 time=33.553 ms
^C
--- 192.168.100.1 ping statistics ---
16 packets transmitted, 16 packets received, 0% packet loss
round-trip min/avg/max = 13.791/23.784/60.705 ms

障害時の動作(パターン2)

L2SW-AとL2SW-Bの間のリンク障害を想定し、障害時のSTPの動作を確認します。

L2SW-AとL2SW-Bの間のリンク障害

PC1からServer1へ連続Pingを実施し、通信断時間を測定します。

PC1
ping 192.168.1.1
PC1:~$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: seq=0 ttl=42 time=29.249 ms
64 bytes from 192.168.100.1: seq=1 ttl=42 time=31.311 ms
64 bytes from 192.168.100.1: seq=2 ttl=42 time=23.499 ms

障害発生

L2SW-AとL2SW-Bの双方で下記コマンドを実行します。※CMLの場合、対向機器のインターフェースをシャットダウンしても、自機器のインターフェースのダウンを検知しないため、双方で”shutdown”コマンドを実施します。

L2SW-A/L2SW-B
interface GigabitEthernet0/0
 shutdown

RSTPの収束

各スイッチががトポロジーチェンジのBPDUを送信/転送します。

トポロジーチェンジのBPDUを送信

L2SW-DがトポロジーチェンジのBPDUを受け取り、Gi0/0をルートポートに変更し、データフレームの転送を開始します。

RSTPの収束

デバッグログの確認

L2SW-B

Gi0/0がダウンした後、Gi0/1からBPDUを受け取り、アグリーメントBPDUを返しています。

07:00:06.475: RSTP(1): updt roles, root port Gi0/0 going down
07:00:06.485: RSTP(1): updt roles, received superior bpdu on Gi0/1
07:00:06.485: RSTP(1): Gi0/1 is now root port
07:00:06.487: RSTP(1): transmitting an agreement on Gi0/1 as a response to a proposal
L2SW-D

Gi0/1からBPDUを受け取り、Gi0/0をルートポートに変更します。その後、Gi0/1を指定ポートとして、L2SW-BとBPDUのやりとりを行なっています。

07:00:06.606: RSTP(1): updt roles, received superior bpdu on Gi0/1
07:00:06.606: RSTP(1): Gi0/0 is now root port
07:00:06.606: RSTP(1): Gi0/1 blocked by re-root
07:00:06.606: RSTP(1): Gi0/1 is now designated
07:00:06.610: RSTP(1): transmitting a proposal on Gi0/1
07:00:06.612: RSTP(1): received an agreement on Gi0/1

通信断時間の確認

PC1で実施していた連続Pingを確認すると、通信断は発生していないことが分かります。(断時間無しで、高速で収束しているということになります。)

PC1
PC1:~$ ping 192.168.100.1
PING 192.168.100.1 (192.168.100.1): 56 data bytes
64 bytes from 192.168.100.1: seq=0 ttl=42 time=29.249 ms
64 bytes from 192.168.100.1: seq=1 ttl=42 time=31.311 ms
64 bytes from 192.168.100.1: seq=2 ttl=42 time=23.499 ms
64 bytes from 192.168.100.1: seq=3 ttl=42 time=17.640 ms
64 bytes from 192.168.100.1: seq=4 ttl=42 time=13.438 ms
64 bytes from 192.168.100.1: seq=5 ttl=42 time=52.984 ms
64 bytes from 192.168.100.1: seq=6 ttl=42 time=20.134 ms
64 bytes from 192.168.100.1: seq=7 ttl=42 time=24.682 ms
64 bytes from 192.168.100.1: seq=8 ttl=42 time=29.362 ms
64 bytes from 192.168.100.1: seq=9 ttl=42 time=27.219 ms
64 bytes from 192.168.100.1: seq=10 ttl=42 time=24.986 ms
64 bytes from 192.168.100.1: seq=11 ttl=42 time=22.877 ms
64 bytes from 192.168.100.1: seq=12 ttl=42 time=18.016 ms
64 bytes from 192.168.100.1: seq=13 ttl=42 time=32.573 ms
64 bytes from 192.168.100.1: seq=14 ttl=42 time=23.935 ms
64 bytes from 192.168.100.1: seq=15 ttl=42 time=18.397 ms
64 bytes from 192.168.100.1: seq=16 ttl=42 time=20.007 ms
^C
--- 192.168.100.1 ping statistics ---
17 packets transmitted, 17 packets received, 0% packet loss
round-trip min/avg/max = 13.438/25.312/52.984 ms

以上で、RSTP(ラピッドスパニングツリープロトコル)の障害時動作の説明は完了です!

  • URLをコピーしました!
  • URLをコピーしました!
目次