HSRP 仕様書
46 / 46 items
InfraLab Reference Series
Category: HSRP
Updated: 2026-05-12
infralab.jp
hsrp
46 items
HSRP 仕様書
Abstract
Cisco Hot Standby Router Protocol (RFC 2281) の電文・MAC・ステート遷移・タイマー・認証仕様、VRRP との差分、Cisco IOS の HSRPv2 設定例、トラブルシュート。
Table of Contents
1. 概要
1.1. HSRP とは
Hot Standby Router Protocol。Cisco 独自のデフォルトゲートウェイ冗長化プロトコル。Active-Standby 型。
Cisco 独自 / RFC 2281 (informational) / Active-Standby1.2. バージョン
v1 (既定) と v2 がある。v2 はサブ秒タイマー、拡張グループ ID、IPv6 対応。新規構築は v2 推奨。
v1: legacy / v2: msec timer・group 0-4095・IPv61.3. 用途
Cisco 同士の閉じた環境でのデフォルト GW 冗長。マルチベンダなら VRRP を選ぶ。
Cisco 系 L3 SW / 閉じたキャンパス LAN2. プロトコル仕様
2.1. HSRPv1 Hello メッセージ
RFC 2281 の HSRPv1 Hello/Coup/Resign 共通フォーマット。Hello は Op Code 0。
RFC 2281 HSRP packet format ASCII 図:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Version | Op Code | State | Hellotime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Holdtime | Priority | Group | Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Authentication Data |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual IP Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+2.2. HSRPv2 Hello メッセージ
Cisco HSRPv2 の Group State TLV。TLV 形式で 6B Identifier と msec timer を含む。
Cisco HSRPv2 Group State TLV / Wireshark dissector ASCII 図:
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=1 | Length=40 | Version | Opcode |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| State | IP Version | Group Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identifier | Priority |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Priority | Hello Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hello Time | Hold Time |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Hold Time | Virtual IP |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual IP Address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual IP Address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual IP Address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Virtual IP Address ... |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+2.3. トランスポート
HSRP は UDP 上に乗る。VRRP のように IP プロトコル直載せではない。
UDP/19852.4. マルチキャストアドレス
v1 と v2 で宛先アドレスが違う。v1/v2 を混在させると相互疎通しない。
v1: 224.0.0.2 / v2: 224.0.0.102 / v2 IPv6: FF02::662.5. 仮想 MAC アドレス
Cisco OUI 00:00:0C。v1 と v2 で形式が異なる。v2 はグループ ID が拡張されたため MAC も拡張形式。
v1: 00:00:0C:07:AC:<gid> / v2: 00:00:0C:9F:F<gid>2.6. グループ ID 範囲
v1 と v2 で上限が違う。VLAN 数が多い環境では v2 必須。
v1: 0 - 255 / v2: 0 - 40952.7. プライオリティ
Active 選出の優先度。値が大きいほど優先度が高く Active になる。VRRP と違って 0 は単なる低優先で、退避通知ではない。255 は手動設定のみ。
範囲 0 - 255 / 値が大きいほど優先 (高=Active) / 既定 100 / IP Owner 概念なし2.8. 認証
平文と MD5 をサポート。両機で完全一致が必要。不一致時は両機 Active 化する。
plain text / MD5 (key-string or key-chain)2.9. メッセージ種別
Hello / Coup / Resign の 3 種。Coup は強制的に Active を奪取、Resign は退避通知。
Hello / Coup (奪取) / Resign (退避)3. ステート遷移
3.1. Initial
起動直後 / IF Down 時。
起動時 / IF Down3.2. Learn
仮想 IP を学習中。仮想 IP を設定していない機が Hello から取得する待機状態。
仮想 IP 学習中 (no standby N ip 設定時)3.3. Listen
仮想 IP は分かっているが Active/Standby ではない状態。
仮想 IP 確定 / Active でも Standby でもない3.4. Speak
Hello を送り出して Standby/Active を狙う状態。
Hello 送出開始 / 選出中3.5. Standby
Active 候補。Active が落ちたら即昇格。
次の Active / Active 監視中3.6. Active
仮想 IP/MAC で実際にトラフィックを転送する状態。Hello を生成する。
仮想 IP/MAC 応答 / Hello 送出 / 転送中4. タイマー
4.1. Hello
Hello メッセージの送出間隔。既定 3 秒。v2 では msec 単位指定可。
既定 3s / v2: msec 単位4.2. Hold
Active Down と判定するまでの時間。既定 10 秒、慣例的に Hello × 3 + 余裕。
既定 10s / 推奨 3 × Hello4.3. preempt
HSRP は既定 OFF。明示しない限り高 priority 機が復活しても切替が起きない。
既定 OFF / standby <gid> preempt で有効化4.4. preempt delay
起動直後のフラッピング回避。指定秒数だけ Active 化を遅延。
standby N preempt delay minimum 604.5. サブ秒構成例
v2 で msec 単位を使うことで 250ms / 750ms 等の高速 FHRP を実現。
standby 10 timers msec 250 msec 7505. トラッキング
5.1. オブジェクトトラッキング
track オブジェクトと連動。Up/Down で priority を decrement。
standby <gid> track <id> decrement <val>5.2. decrement 既定値
decrement を省略した場合の既定。
省略時: 105.3. インタフェース track
上流 IF の line-protocol を監視。
track 1 interface Gi0/0 line-protocol5.4. ルート track
特定の到達可能性を監視。BGP/OSPF と組み合わせる。
track 2 ip route 10.0.0.0/8 reachability6. vs VRRP 差分
6.1. 標準性
HSRP は Cisco 独自。マルチベンダ環境では使えない。
HSRP: Cisco 独自 / VRRP: IETF 標準6.2. トランスポート
HSRP は UDP、VRRP は IP プロト直載せ。
HSRP: UDP 1985 / VRRP: IP proto 1126.3. 仮想 MAC OUI
Cisco OUI と IANA OUI で見分けやすい。
HSRP: 00:00:0C:07:AC / VRRP: 00:00:5E:00:016.4. preempt 既定
HSRP は OFF が既定で安全寄り。VRRP は ON で挙動が異なる。
HSRP: 既定 OFF / VRRP: 既定 ON6.5. 既定 Hello/Dead
HSRP の方が大きい既定。検知は遅いがチャタリングしにくい。
HSRP: 3s / 10s / VRRP: 1s / ≈3s6.6. 認証
HSRP は MD5 サポート、VRRPv3 は認証廃止。要件で HSRP を選ぶ場面あり。
HSRP: 平文・MD5 / VRRPv3: 認証なし6.7. グループ数上限
HSRPv2 で 4096、VRRP は 256。膨大な VLAN を持つ環境では HSRPv2 が有利。
HSRPv2: 0-4095 / VRRP: 1-2556.8. IP Owner 概念
HSRP には IP Owner 概念が無いため設計が単純。
HSRP: 概念なし / VRRP: Owner 自動 priority 2557. Cisco IOS 設定例
7.1. HSRPv2 基本設定
SVI に standby version 2 + IP + priority + preempt を設定するのが定型。
interface Vlan10
standby version 2
standby 10 ip 10.0.10.1
standby 10 priority 110
standby 10 preempt7.2. 高速 FHRP (msec timer)
サブ秒で切替を狙う場合の指定。
standby 10 timers msec 250 msec 7507.3. 認証 (MD5 key-string)
MD5 鍵で改ざん防止。両機で完全一致が必要。
standby 10 authentication md5 key-string s3cret7.4. 認証 (MD5 key-chain)
key-chain で鍵ローテーションに対応。
key chain HSRP
key 1
key-string s3cret
standby 10 authentication md5 key-chain HSRP7.5. object tracking
上流 IF が落ちたら priority -30 → 対向機が Active 化。
track 1 interface Gi0/0 line-protocol
standby 10 track 1 decrement 307.6. preempt delay
ルーティング収束前の Active 化を防ぐ。
standby 10 preempt delay minimum 608. 確認・トラブルシュート
8.1. 状態確認
Active/Standby、priority、preempt、track 状態を一覧。
show standby brief / show standby Vlan108.2. track 状態確認
track の Up/Down と参照元を確認。
show track / show track 18.3. 認証不一致
片側だけ key-string を変えると Hello が捨てられ両機 Active 化する。
log: %HSRP-4-BADAUTH8.4. 両機 Active (split-brain)
Hello が届かないと両機が Active 化。L2 経路 / VLAN / 認証 / STP を確認。
症状: 両機 Active / 原因: L2 不通・認証差8.5. パケットキャプチャ
UDP/1985 を直接観測。
tcpdump -i eth0 udp port 19859. References
- HSRP
- HSRPv2
- RFC 2281
- FHRP
- Active
- Standby
- preempt
- デフォルトゲートウェイ冗長
- Cisco