HSRPの障害時・復旧時の動作について、パケットキャプチャとデバッグを実施し検証します。
【前回】HSRPのパケットキャプチャ&デバッグ(障害時・復旧時①) ※Activeルータがリンクダウンしない場合
ネットワーク構成と各機器の設定
CMLで下記のネットワークを構築します。
各機器の設定
障害ポイントとキャプチャポイント
Router1の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 _'
Router1のGi0/0を”shutdown”します。
interface Gi0/0
shut
Router1が、インターフェースのshutdown直前に、自身がActiveルーターでは無くなるという意味の”Resign”メッセージを送信します。
20:23:41.118 HSRP: Gi0/0 Interface going DOWN
20:23:41.119 HSRP: Gi0/0 Grp 254 Resign out 192.168.1.253 Active pri 110 vIP 192.168.1.254
その後、インターフェースがダウンし、”Init”ステータスになります。
20:23:41.140 HSRP: Gi0/0 Interface DOWN
20:23:41.140 HSRP: Gi0/0 Grp 254 Active router is unknown, was local
20:23:41.140 HSRP: Gi0/0 Grp 254 Active -> Init
Router2が、Router1からResignメッセージを受け取り、”Active”ステータスになります。
20:23:41.684: HSRP: Gi0/0 Grp 254 Resign in 192.168.1.253 Active pri 110 vIP 192.168.1.254
20:23:41.685: HSRP: Gi0/0 Grp 254 Active router is local, was 192.168.1.253
20:23:41.687: HSRP: Gi0/0 Grp 254 Standby router is unknown, was local
20:23:41.687: HSRP: Gi0/0 Grp 254 Standby -> Active
Router2はActiveになると、GratuitousARP(GARP)を送信し、周辺機器のMACアドレステーブルを更新します。
※HSRPの仮想MACアドレス(0000.0c07.acfe)を自身が保持していることを知らせます。
ServerのPingの状況を確認すると、通信断は発生していないことが分かります。
cisco@Server:~$ ping 192.168.1.254 | xargs -I_ date +'%c _'
20:23:37 2021 64 bytes from 192.168.1.254: seq=0 ttl=255 time=17.033 ms
20:23:38 2021 64 bytes from 192.168.1.254: seq=1 ttl=255 time=35.577 ms
20:23:39 2021 64 bytes from 192.168.1.254: seq=2 ttl=255 time=21.936 ms
20:23:40 2021 64 bytes from 192.168.1.254: seq=3 ttl=255 time=30.306 ms
20:23:41 2021 64 bytes from 192.168.1.254: seq=4 ttl=255 time=28.449 ms
20:23:42 2021 64 bytes from 192.168.1.254: seq=5 ttl=255 time=17.756 ms
20:23:43 2021 64 bytes from 192.168.1.254: seq=6 ttl=255 time=123.694 ms
20:23:45 2021 64 bytes from 192.168.1.254: seq=7 ttl=255 time=357.507 ms
20:23:45 2021 64 bytes from 192.168.1.254: seq=8 ttl=255 time=82.340 ms
20:23:46 2021 64 bytes from 192.168.1.254: seq=9 ttl=255 time=25.668 ms
20:23:47 2021 64 bytes from 192.168.1.254: seq=10 ttl=255 time=25.824 ms
20:23:48 2021 64 bytes from 192.168.1.254: seq=11 ttl=255 time=25.762 ms
20:23:49 2021 64 bytes from 192.168.1.254: seq=12 ttl=255 time=27.005 ms
20:23:50 2021 64 bytes from 192.168.1.254: seq=13 ttl=255 time=24.511 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 Init unknown 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
復旧時の動作
Router1のGi0/0を”no shutdown”します。
interface Gi0/0
no shut
Router1が、インターフェースのリンクアップ後、1秒間の待機時間の後に”Listen”ステータスになります。
20:38:46.122: HSRP: Gi0/0 Interface UP
20:38:46.122: HSRP: Gi0/0 Starting minimum intf delay (1 secs) - uptime 10912
20:38:47.120: HSRP: Gi0/0 Intf min delay expired - uptime 10913
20:38:47.120: HSRP: Gi0/0 Grp 254 Init: a/HSRP enabled
20:38:47.120: HSRP: Gi0/0 Grp 254 Init -> Listen
Router1が、Router2から「自身より低いプライオリティのアクティブルーターである」というHelloメッセージを受け取り、delayタイマーをスタートさせます。
20:38:47.128: HSRP: Gi0/0 Grp 254 Listen: h/Hello rcvd from lower pri Active router (105/192.168.1.252)
20:38:47.128: HSRP: Gi0/0 Grp 254 Starting minimum preempt delay (60 secs) - uptime 10913
Router1が、10秒のホールドタイム(Hold Time)が経過した後、”Speak”ステータスになり、Helloメッセージの送出を始めます。
20:38:57.302: HSRP: Gi0/0 Grp 254 Listen: d/Standby timer expired (unknown)
20:38:57.304: HSRP: Gi0/0 Grp 254 Listen -> Speak
Router1が、さらに10秒のホールドタイム(Hold Time)が経過した後、”Standby”ステータスになります。
20:39:08.911: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
20:39:08.911: HSRP: Gi0/0 Grp 254 Standby router is local
20:39:08.912: HSRP: Gi0/0 Grp 254 Speak -> Standby
Router2は、Router1がStandbyルーターになったことを認識します。
20:39:08.444: HSRP: Gi0/0 Grp 254 Standby router is 192.168.1.253
Router1が、60秒のdelayタイマーが経過した後、自身がActiveルーターになるという意味の”Coup”メッセージを送信し、”Active”ステータスになります。
20:39:48.110: HSRP: Gi0/0 Grp 254 Minimum preempt delay expired - uptime 10974
20:39:48.110: HSRP: Gi0/0 Grp 254 Active router is local, was 192.168.1.252
20:39:48.113: HSRP: Gi0/0 Grp 254 Standby router is unknown, was local
20:39:48.115: HSRP: Gi0/0 Grp 254 Coup out 192.168.1.253 Standby pri 110 vIP 192.168.1.254
20:39:48.116: HSRP: Gi0/0 Grp 254 Standby -> Active
Router1はActiveになると、GratuitousARP(GARP)を送信し、周辺機器のMACアドレステーブルを更新します。
※HSRPの仮想MACアドレス(0000.0c07.acfe)を自身が保持していることを知らせます。
Router2が、Router1からCoupメッセージを受け取り、”Speak”ステータスになります。
20:39:47.422: HSRP: Gi0/0 Grp 254 Coup in 192.168.1.253 Standby pri 110 vIP 192.168.1.254
20:39:47.423: HSRP: Gi0/0 Grp 254 Active: j/Coup rcvd from higher pri router (110/192.168.1.253)
20:39:47.423: HSRP: Gi0/0 Grp 254 Active router is 192.168.1.253, was local
20:39:47.423: HSRP: Gi0/0 Grp 254 Standby router is unknown, was 192.168.1.253
20:39:47.423: HSRP: Gi0/0 Grp 254 Active -> Speak
Router2が、ホールドタイムが切れ、”Standby”ステータスになります。
20:39:58.763: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
20:39:58.763: HSRP: Gi0/0 Grp 254 Standby router is local
20:39:58.763: HSRP: Gi0/0 Grp 254 Speak -> Standby
Router1は、Router2がStandbyルーターになったことを認識します。
20:39:59.351: HSRP: Gi0/0 Grp 254 Standby router is 192.168.1.252
ServerのPingの状況を確認すると、通信断は発生していないことが分かります。
cisco@Server:~$ ping 192.168.1.254 | xargs -I_ date +'%c _'
20:38:40 2021 64 bytes from 192.168.1.254: seq=0 ttl=255 time=14.943 ms
20:38:41 2021 64 bytes from 192.168.1.254: seq=1 ttl=255 time=29.294 ms
20:38:42 2021 64 bytes from 192.168.1.254: seq=2 ttl=255 time=22.645 ms
20:38:43 2021 64 bytes from 192.168.1.254: seq=3 ttl=255 time=25.632 ms
20:38:44 2021 64 bytes from 192.168.1.254: seq=4 ttl=255 time=29.068 ms
〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜 中略 〜・〜・〜・〜・〜・〜・〜・〜・〜・〜・〜
※この辺りで、Activeルーターの切り替わり
20:39:46 2021 64 bytes from 192.168.1.254: seq=66 ttl=255 time=22.378 ms
20:39:47 2021 64 bytes from 192.168.1.254: seq=67 ttl=255 time=17.976 ms
20:39:48 2021 64 bytes from 192.168.1.254: seq=68 ttl=255 time=38.025 ms
20:39:49 2021 64 bytes from 192.168.1.254: seq=69 ttl=255 time=16.176 ms
20:39:50 2021 64 bytes from 192.168.1.254: seq=70 ttl=255 time=21.265 ms
20:39:51 2021 64 bytes from 192.168.1.254: seq=71 ttl=255 time=19.479 ms
20:39:52 2021 64 bytes from 192.168.1.254: seq=72 ttl=255 time=48.578 ms
20:39:53 2021 64 bytes from 192.168.1.254: seq=73 ttl=255 time=17.137 ms
20:39:54 2021 64 bytes from 192.168.1.254: seq=74 ttl=255 time=24.195 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のパケットキャプチャ&デバッグ(障害時・復旧時①) ※Activeルータがリンクダウンしない場合