HSRPの障害時・復旧時の動作について、パケットキャプチャとデバッグを実施し検証します。
【前回】HSRPのパケットキャプチャ&デバッグ(起動時)
【次回】HSRPのパケットキャプチャ&デバッグ(障害時・復旧時②) ※Activeルータがリンクダウンする場合
ネットワーク構成と各機器の設定
CMLで下記のネットワークを構築します。
各機器の設定
障害ポイントとキャプチャポイント
Switch3のGi0/0をshutdownし、Router1が直接リンクダウンしないリンク障害を発生させます。キャプチャポイントは、Switch2とSwitch3の間としています。
HSRPのデバッグコマンド
HSRPのデバッグコマンドは、下記の種類があります。
Router#debug standby ?
errors HSRP errors
events HSRP events
packets HSRP packets
terse Display limited range of HSRP errors, events and packets
<cr> <cr>
“debug standby terse”を実行すると、必要最低限のHSRPデバッグが有効になります。
Router#debug standby terse
HSRP:
HSRP Errors debugging is on
HSRP Events debugging is on
(protocol, neighbor, redundancy, track, arp, interface)
HSRP Packets debugging is on
(Coup, Resign)
Router#show debug
HSRP:
HSRP Errors debugging is on
HSRP Events debugging is on
(protocol, neighbor, redundancy, track, arp, interface)
HSRP Packets debugging is on
(Coup, Resign)
障害時の動作
Serverから連続PingをHSRP-IP宛に実施し、HSRPの切り替わりによる通信断時間を測定します。
下記のコマンドを実施すると、タイムスタンプが付与されます。
ping 192.168.1.254 | xargs -I_ date +'%c _'
Switch3のGi0/0を”shutdown”します。
interface Gi0/0
shut
Switch3のGi0/0がリンクダウンしたことを確認します。
20:47:08.116: %LINK-5-CHANGED: Interface GigabitEthernet0/0, changed state to administratively down
20:47:09.118: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to down
Router2が、Router1からHelloメッセージを受け取れなくなったため、ホールドタイムが切れた後に”Active”ステータスになります。
20:47:15.711: HSRP: Gi0/0 Grp 254 Standby: c/Active timer expired (192.168.1.253)
20:47:15.711: HSRP: Gi0/0 Grp 254 Active router is local, was 192.168.1.253
20:47:15.711: HSRP: Gi0/0 Grp 254 Standby router is unknown, was local
20:47:15.711: HSRP: Gi0/0 Grp 254 Standby -> Active
Router1も、Router2からHelloメッセージを受け取れなくなったため、Standbyルーターをunknownに変更します。
20:47:16.164: HSRP: Gi0/0 Grp 254 Standby router is unknown, was 192.168.1.252
Router2はActiveになると、GratuitousARP(GARP)を送信し、周辺機器のMACアドレステーブルを更新します。
※HSRPの仮想MACアドレス(0000.0c07.acfe)を自身が保持していることを知らせます。
ServerのPingの状況を確認すると、12秒程度の通信断が発生した後に、Pingが復旧していることが分かります。
cisco@Server:~$ ping 192.168.1.254 | xargs -I_ date +'%c _'
20:47:00 64 bytes from 192.168.1.254: seq=1 ttl=255 time=47.439 ms
20:47:01 64 bytes from 192.168.1.254: seq=2 ttl=255 time=29.279 ms
20:47:02 64 bytes from 192.168.1.254: seq=3 ttl=255 time=24.984 ms
20:47:03 64 bytes from 192.168.1.254: seq=4 ttl=255 time=21.449 ms
20:47:04 64 bytes from 192.168.1.254: seq=5 ttl=255 time=20.293 ms
〜〜〜〜〜〜〜〜〜〜〜 ここで12秒程度の通信断 〜〜〜〜〜〜〜〜〜〜〜
20:47:16 64 bytes from 192.168.1.254: seq=17 ttl=255 time=21.106 ms
20:47:17 64 bytes from 192.168.1.254: seq=18 ttl=255 time=22.603 ms
20:47:18 64 bytes from 192.168.1.254: seq=19 ttl=255 time=22.032 ms
20:47:19 64 bytes from 192.168.1.254: seq=20 ttl=255 time=19.868 ms
20:47:20 64 bytes from 192.168.1.254: seq=21 ttl=255 time=21.765 ms
Router1/Router2のHSRPのステータスは下記となります。
Router1#show standby brief
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
Gi0/0 254 110 P Active local unknown 192.168.1.254
Router2#show standby brief
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
Gi0/0 254 105 P Active local unknown 192.168.1.254
復旧時の動作
Switch3のGi0/0を”no shutdown”します。
interface Gi0/0
no shut
Switch3のGi0/0がリンクアップしたことを確認します。
21:05:35.115: %LINK-3-UPDOWN: Interface GigabitEthernet0/0, changed state to up
21:05:36.115: %LINEPROTO-5-UPDOWN: Line protocol on Interface GigabitEthernet0/0, changed state to up
Router2は、Router1から「自身より高いプライオリティでActiveルーターである」というHelloメッセージを受け取り、”Speak”ステータスになります。
21:05:34.376: HSRP: Gi0/0 Grp 254 Hello in 192.168.1.253 Active pri 110 vIP 192.168.1.254
21:05:34.378: HSRP: Gi0/0 Grp 254 Active: g/Hello rcvd from higher pri Active router (110/192.168.1.253)
21:05:34.379: HSRP: Gi0/0 Grp 254 Active -> Speak
Router2は、自身がActiveルーターでは無くなるという意味の”Resign”メッセージを送信します。
Router1が、自身がActiveルーターになるという意味の”Coup”メッセージを送信します。
21:05:33.981: HSRP: Gi0/0 Grp 254 Resign in 192.168.1.252 Speak pri 105 vIP 192.168.1.254
21:05:33.981: HSRP: Gi0/0 Grp 254 Coup out 192.168.1.253 Active pri 110 vIP 192.168.1.254
Router1はActiveになると、GratuitousARP(GARP)を送信し、周辺機器のMACアドレステーブルを更新します。
※HSRPの仮想MACアドレス(0000.0c07.acfe)を自身が保持していることを知らせます。
Router2が、ホールドタイムが切れ、”Standby”ステータスになります。
21:05:46.167: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
21:05:46.168: HSRP: Gi0/0 Grp 254 Speak -> Standby
ServerのPingの状況を確認すると、通信断は発生していないことが分かります。
cisco@Server:~$ ping 192.168.1.254 | xargs -I_ date +'%c _'
21:05:30 64 bytes from 192.168.1.254: seq=6 ttl=255 time=20.622 ms
21:05:31 64 bytes from 192.168.1.254: seq=7 ttl=255 time=36.876 ms
21:05:32 64 bytes from 192.168.1.254: seq=8 ttl=255 time=46.996 ms
21:05:33 64 bytes from 192.168.1.254: seq=9 ttl=255 time=24.216 ms
21:05:34 64 bytes from 192.168.1.254: seq=10 ttl=255 time=20.414 ms
21:05:35 64 bytes from 192.168.1.254: seq=11 ttl=255 time=27.021 ms
21:05:36 64 bytes from 192.168.1.254: seq=12 ttl=255 time=17.165 ms
21:05:37 64 bytes from 192.168.1.254: seq=13 ttl=255 time=19.152 ms
21:05:38 64 bytes from 192.168.1.254: seq=14 ttl=255 time=23.316 ms
21:05:39 64 bytes from 192.168.1.254: seq=15 ttl=255 time=22.311 ms
21:05:40 64 bytes from 192.168.1.254: seq=16 ttl=255 time=19.345 ms
21:05:41 64 bytes from 192.168.1.254: seq=17 ttl=255 time=12.674 ms
21:05:42 64 bytes from 192.168.1.254: seq=18 ttl=255 time=17.168 ms
21:05:43 64 bytes from 192.168.1.254: seq=19 ttl=255 time=74.909 ms
21:05:44 64 bytes from 192.168.1.254: seq=20 ttl=255 time=13.560 ms
21:05:45 64 bytes from 192.168.1.254: seq=21 ttl=255 time=15.548 ms
21:05:46 64 bytes from 192.168.1.254: seq=22 ttl=255 time=14.045 ms
〜〜〜〜〜〜〜〜〜〜〜 通信断発生なし 〜〜〜〜〜〜〜〜〜〜〜
Router1/Router2のHSRPのステータスは下記となります。
Router1#show standby brief
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
Gi0/0 254 110 P Active local 192.168.1.252 192.168.1.254
Router2#show standby brief
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
Gi0/0 254 105 P Standby 192.168.1.253 local 192.168.1.254
これで、HSRPのパケットキャプチャ&デバッグ(障害時・復旧時①)の説明は完了です!
【前回】HSRPのパケットキャプチャ&デバッグ(起動時)
【次回】HSRPのパケットキャプチャ&デバッグ(障害時・復旧時②) ※Activeルータがリンクダウンする場合