HSRPの起動時の動作について、パケットキャプチャとデバッグを実施し検証します。
【次回】HSRPのパケットキャプチャ&デバッグ(障害時・復旧時①) ※Activeルーターがリンクダウンしない場合
ネットワーク構成と各機器の設定
CMLで下記のネットワークを構築します。
各機器の設定
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)
デバッグの出力確認
Router1とRouter2にHSRPを設定した後の動作を確認します。
デバッグの表示は下記の通りです。
07:31:24.182: HSRP: Gi0/0 Added 192.168.1.254 to hash table
07:31:24.182: HSRP: Gi0/0 Grp 254 Disabled: a/HSRP enabled
07:31:24.183: HSRP: Gi0/0 Grp 254 Disabled -> Listen
07:31:24.236: HSRP: Gi0/0 Grp 254 Priority 100 -> 110
07:31:34.254: HSRP: Gi0/0 Grp 254 Listen: d/Standby timer expired (unknown)
07:31:34.254: HSRP: Gi0/0 Grp 254 Listen -> Speak
07:31:46.072: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
07:31:46.073: HSRP: Gi0/0 Grp 254 Standby router is local
07:31:46.073: HSRP: Gi0/0 Grp 254 Speak -> Standby
07:31:47.032: HSRP: Gi0/0 Grp 254 Standby: c/Active timer expired (unknown)
07:31:47.032: HSRP: Gi0/0 Grp 254 Active router is local
07:31:47.032: HSRP: Gi0/0 Grp 254 Standby router is unknown, was local
07:31:47.032: HSRP: Gi0/0 Grp 254 Standby -> Active
07:31:47.034: HSRP: Gi0/0 Grp 254 Added 192.168.1.254 to ARP (0000.0c07.acfe)
07:32:08.431: HSRP: Gi0/0 Grp 254 Standby router is 192.168.1.252
07:32:08.431: HSRP: Gi0/0 Nbr 192.168.1.252 is no longer passive
07:32:08.432: HSRP: Gi0/0 Nbr 192.168.1.252 standby for group 254
07:31:30.150: HSRP: Gi0/0 Added 192.168.1.254 to hash table
07:31:30.152: HSRP: Gi0/0 Grp 254 Disabled -> Init
07:31:30.188: HSRP: Gi0/0 Grp 254 Priority 100 -> 105
07:31:31.224: HSRP: Gi0/0 Grp 254 Init: a/HSRP enabled
07:31:31.225: HSRP: Gi0/0 Grp 254 Init -> Listen
07:31:42.324: HSRP: Gi0/0 Grp 254 Listen: c/Active timer expired (unknown)
07:31:42.324: HSRP: Gi0/0 Grp 254 Listen -> Speak
07:31:43.939: HSRP: Gi0/0 Grp 254 Speak: f/Hello rcvd from higher pri Speak router (110/192.168.1.253)
07:31:43.940: HSRP: Gi0/0 Grp 254 Speak -> Listen
07:31:47.807: HSRP: Gi0/0 Grp 254 Standby router is 192.168.1.253
07:31:47.808: HSRP: Gi0/0 Nbr 192.168.1.253 created
07:31:47.809: HSRP: Gi0/0 Nbr 192.168.1.253 standby for group 254
07:31:48.713: HSRP: Gi0/0 Grp 254 Active router is 192.168.1.253
07:31:48.714: HSRP: Gi0/0 Nbr 192.168.1.253 active for group 254
07:31:48.716: HSRP: Gi0/0 Grp 254 Standby router is unknown, was 192.168.1.253
07:31:48.718: HSRP: Gi0/0 Nbr 192.168.1.253 no longer standby for group 254 (Listen)
07:31:59.587: HSRP: Gi0/0 Grp 254 Listen: d/Standby timer expired (unknown)
07:31:59.587: HSRP: Gi0/0 Grp 254 Listen -> Speak
07:32:09.846: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
07:32:09.846: HSRP: Gi0/0 Grp 254 Standby router is local
07:32:09.846: HSRP: Gi0/0 Grp 254 Speak -> Standby
順を追ってステータスの遷移を見ていきます。
Step1. HSRP起動
両ルーターともに設定直後に”Listen”ステータスになります。
07:31:24.183: HSRP: Gi0/0 Grp 254 Disabled -> Listen
07:31:31.225: HSRP: Gi0/0 Grp 254 Init -> Listen
Step2. 両ルーターがSpeakに遷移
10秒のホールドタイム(Hold Time)が経過した後、”Speak”ステータスになり、Helloメッセージの送出を始めます。
07:31:34.254: HSRP: Gi0/0 Grp 254 Listen: d/Standby timer expired (unknown)
07:31:34.254: HSRP: Gi0/0 Grp 254 Listen -> Speak
07:31:42.324: HSRP: Gi0/0 Grp 254 Listen: c/Active timer expired (unknown)
07:31:42.324: HSRP: Gi0/0 Grp 254 Listen -> Speak
Step3. Router2がListenに遷移
Router2が、自身よりも高いプライオリティのHelloメッセージを受け取ったため、”Listen”ステータスになります。
07:31:43.939: HSRP: Gi0/0 Grp 254 Speak: f/Hello rcvd from higher pri Speak router (110/192.168.1.253)
07:31:43.940: HSRP: Gi0/0 Grp 254 Speak -> Listen
Step4. Router1がActiveに遷移
Router1のホールドタイムが切れ、”Stanby”ステータスを経由し、”Active”ステータスになります。
07:31:46.072: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
07:31:46.073: HSRP: Gi0/0 Grp 254 Standby router is local
07:31:46.073: HSRP: Gi0/0 Grp 254 Speak -> Standby
07:31:47.032: HSRP: Gi0/0 Grp 254 Standby: c/Active timer expired (unknown)
07:31:47.032: HSRP: Gi0/0 Grp 254 Active router is local
07:31:47.032: HSRP: Gi0/0 Grp 254 Standby -> Active
Step5. Router1がHelloメッセージを送出
Router1が、自身が”Active”である情報を含むHelloメッセージを送ります。
Step6. Router1がGARPを送出
Router1はActiveになると、GratuitousARP(GARP)を送信し、周辺機器のMACアドレステーブルを更新します。
※HSRPの仮想MACアドレス(0000.0c07.acfe)を自身が保持していることを知らせます。
Step7. Router2がRouter1の状態を認識
Router2が、Router1が”Active”となったことを認識します。
07:31:48.713: HSRP: Gi0/0 Grp 254 Active router is 192.168.1.253
07:31:48.714: HSRP: Gi0/0 Nbr 192.168.1.253 active for group 254
Step8. Router2がStandbyに遷移
Router2が、10秒毎にホールドタイムが切れ、”Speak”ステータスを経由し、”Standby”ステータスになります。
07:31:59.587: HSRP: Gi0/0 Grp 254 Listen: d/Standby timer expired (unknown)
07:31:59.587: HSRP: Gi0/0 Grp 254 Listen -> Speak
07:32:09.846: HSRP: Gi0/0 Grp 254 Speak: d/Standby timer expired (unknown)
07:32:09.846: HSRP: Gi0/0 Grp 254 Standby router is local
07:32:09.846: HSRP: Gi0/0 Grp 254 Speak -> Standby
Step9. Router5がHelloメッセージを送出
Router2が、自身が”Standby”である情報を含むHelloメッセージを送ります。
Step10. Router1がRouter2の状態を認識
Router1が、Router2が”Standby”となったことを認識し、HSRPのステータス遷移が収束しました。
07:32:08.431: HSRP: Gi0/0 Grp 254 Standby router is 192.168.1.252
07:32:08.432: HSRP: Gi0/0 Nbr 192.168.1.252 standby for group 254
これで、HSRPのパケットキャプチャ&デバッグ(起動時)の説明は完了です!
【次回】HSRPのパケットキャプチャ&デバッグ(障害時・復旧時①) ※Activeルーターがリンクダウンしない場合