HSRP

目次

HSRPとは

HSRP(Hot Standby Router Protocol)は、Cisco が独自に開発したゲートウェイ冗長化プロトコルです。通常、PC などの端末は「デフォルトゲートウェイ」と呼ばれるルータにパケットを渡して外部と通信します。しかし、そのルータがダウンしてしまうと通信が止まってしまいます。そこで HSRP を導入すると、複数のルータをまとめて「1 台の仮想ルータ」として見せることができ、障害時でも自動的にバックアップ側へ切り替わる仕組みを作ることができます。

たとえば R1 と R2 の 2 台のルータで HSRP を組んだ場合、ホストが設定するデフォルトゲートウェイは実際の R1 や R2 の IP ではなく「仮想 IP アドレス(VIP)」です。この仮想 IP を実際に処理しているのは「アクティブルータ」と呼ばれる機器で、通常時は R1、障害時は自動的に R2 が引き継ぐといった動作をします。

HSRPで使われる用語

  • 仮想IPアドレス:ホストがデフォルトゲートウェイとして設定するアドレス。アクティブルータが保持する。
  • 仮想MACアドレス:アクティブルータが ARP 応答時に返す MAC アドレス。ホストの ARP テーブルに登録される。
  • 仮想ルータ:仮想 IP と仮想 MAC を持ち、実際のルータから見れば論理的に 1 台に見える存在。
  • アクティブルータ:実際にパケットを処理するルータ。Hello パケットを定期的に送信する。
  • スタンバイルータ:待機状態のルータ。アクティブルータのダウンを検知すると役割を引き継ぐ。
  • HSRPグループ:同じセグメント内で仮想ルータを共有するルータの集合。セグメントごとに作成される。
  • HSRPプライオリティ:どのルータがアクティブになるかを決める指標。数値が大きい方が優先される。
  • Helloパケット:マルチキャスト(224.0.0.2 / UDP 1985)で送られる HSRP 情報交換用パケット。

試験対策:「アクティブルータがダウンした際にどのようにスタンバイへ切り替わるか」や「VIP と仮想 MAC の役割」などが問われやすいので要注意です。

HSRPの動作例

例えば、R1 と R2 をグループ 1 の HSRP に参加させ、R1 のプライオリティを高く設定すると R1 がアクティブ、R2 がスタンバイになります。ホストが 172.16.1.254 をゲートウェイに設定した場合、ARP で応答するのはアクティブルータの R1 です。

もし R1 がダウンすれば、R2 が Hello パケットの受信をやめ、holdtime(デフォルトは 10 秒)を経過した時点でアクティブに昇格します。その間は一時的に通信が途絶えますが、収束後は引き続き仮想 IP を利用できるため、ホスト側の設定変更は不要です。

仮想MACアドレスの構造

HSRP では、仮想 MAC アドレスの形式が決まっています。

  • HSRP v1 の場合:
    0000.0c07.acXX(XX = グループ番号の 16 進数)
    例:グループ 1 → 0000.0c07.ac01、グループ 10 → 0000.0c07.ac0a
  • HSRP v2 の場合:
    0000.0c9f.fXXX(XXX = グループ番号の 16 進数)

この規則性は試験でもよく出題されるので暗記必須です。

HSRP version 1 と version 2 の違い

デフォルトでは HSRP v1 が有効ですが、グループ数を 256 以上使いたい場合や新しい機種(Nexus など)では v2 を利用します。

比較項目HSRP v1HSRP v2
グループ番号0 ~ 2550 ~ 4095
仮想MACアドレス0000.0c07.acXX0000.0c9f.fXXX
Hello 宛先アドレス224.0.0.2224.0.0.102

HSRPのステータス遷移

HSRP が有効化されると、ルータは以下のステートを順番に経て動作します。

  • Init(イニシャル):初期状態。設定直後やリンクダウン直後に入る。
  • Learn(ラーン):まだ仮想 IP を知らず、Hello も受信していない状態。
  • Listen(リスニング):Hello を受信中。Holdtime の間維持。
  • Speak(スピーク):自分も Hello を送信し、アクティブ/スタンバイ選定に参加。
  • Standby(スタンバイ):待機状態。定期的に Hello を送り、次のアクティブ候補として待機。
  • Active(アクティブ):仮想 IP と MAC 宛のトラフィックを実際に処理する役割。

特に Speak → Standby → Active への流れは CCNA 試験での頻出知識なので、ステート名と役割を確実に押さえておきましょう。

HSRP の基本設定

HSRP を利用する際は、対象となる L3 インターフェース(SVI やルーテッドポート、ルータの物理インターフェース)に対して設定を行います。まずは HSRP グループ番号と仮想 IP アドレスを割り当てることで、ホストが利用できる「仮想デフォルトゲートウェイ」を作成します。

HSRP 有効化の基本コマンド

(config)# interface interface-id
(config-if)# standby group-number ip address

ここで指定する group-number は HSRP グループを識別する番号です。Version 1 では 0~255、Version 2 では 0~4095 まで設定可能です。address にはホストがデフォルトゲートウェイとして利用する仮想 IP アドレスを指定します。

例:VLAN 10 で HSRP グループ 10 を利用し、仮想 IP を 192.168.10.254 に設定する場合

(config)# interface vlan 10
(config-if)# standby 10 ip 192.168.10.254

これで、PC などの端末から見ると 192.168.10.254 がデフォルトゲートウェイとなります。

プライオリティの設定

どのルータがアクティブルータになるかは プライオリティ値 で決まります。デフォルト値は 100 で、値が大きい方が優先されます。

(config-if)# standby group-number priority priority

例:グループ 10 のプライオリティを 105 に設定する場合

(config-if)# standby 10 priority 105

同じプライオリティ値だった場合は、ルータ自身のインターフェース IP アドレスが比較され、より大きい IP アドレスを持つルータがアクティブになります。

プリエンプト機能

通常、すでにアクティブルータが存在すると、後から優先度の高いルータが参加しても自動では切り替わりません。これを解決するのが プリエンプト(preempt) 機能です。

(config-if)# standby group-number preempt

この設定を入れることで「常にプライオリティ値が高いルータがアクティブになる」動作が保証されます。アクティブルータにだけ設定しても構いませんが、両方に入れても問題はありません。

設定例

SW1(アクティブになるルータ)

SW1(config)# interface vlan 5
SW1(config-if)# ip address 172.16.5.1 255.255.255.0
SW1(config-if)# standby 5 ip 172.16.5.254
SW1(config-if)# standby 5 priority 105
SW1(config-if)# standby 5 preempt

SW2(スタンバイになるルータ)

SW2(config)# interface vlan 5
SW2(config-if)# ip address 172.16.5.2 255.255.255.0
SW2(config-if)# standby 5 ip 172.16.5.254
SW2(config-if)# standby 5 priority 100

※ SW2 のプライオリティ 100 はデフォルト値のため、実際の running-config には表示されません。

設定後は次のコマンドで状態を確認できます。

# show standby brief

各インターフェースのグループ番号、仮想 IP、アクティブ/スタンバイの関係が一覧で確認できます。

HSRP のデフォルト値まとめ

項目デフォルト
HSRP バージョンVersion 1
HSRP グループ番号未設定
スタンバイグループ番号0
仮想 MAC アドレス0000.0c07.acXX
プライオリティ値100
スタンバイ遅延0(遅延なし)
インターフェイス追跡値10
Hello タイマー3 秒
Hold タイマー10 秒

試験対策:「プライオリティのデフォルト値」や「タイマーの標準値」、さらに「preempt を設定しない場合の挙動」などがよく出題されるため、この表は暗記しておくと安心です。

HSRPのHelloタイマーとHoldタイマー

HSRPでは、ルータ同士が定期的に「Helloパケット」を送り合うことで生存確認をしています。
デフォルトではHelloが3秒おき、Holdが10秒に設定されており、もしHold時間内にHelloが届かなければ、相手がダウンしたとみなして切り替えが行われます。

もし障害検知をもっと早めたい場合には、これらのタイマーを短く設定することが可能です。例えばHelloを1秒、Holdを3秒にすると切り替わりは素早くなります。ただし、Helloパケットがより頻繁に送られるため、ルータに少しだけ負荷がかかり、トラフィックも増える点は頭に入れておきましょう。

また、HoldタイマーはHelloタイマーの3倍以上でなければならないという制約があるため、設定の際は注意が必要です。

(config-if)# standby 1 timers 1 3

この例ではグループ1に対して、Helloを1秒、Holdを3秒に設定しています。

ここは試験でも問われやすく、「HelloとHoldの関係性」を正しく覚えておくことが重要です。

HSRPのプリエンプトディレイ

HSRPには「preempt(プリエンプト)」という仕組みがあり、優先度の高いルータが復旧すると、自動的にアクティブルータの役割を取り戻します。
しかし、復旧直後はOSPFやEIGRPなどのルーティング収束がまだ終わっていないことがあり、その状態で切り替わるとパケットロスを引き起こす危険があります。

この問題を防ぐために「preempt delay」を設定すると、復旧後すぐにではなく、一定時間経過してからアクティブルータに戻るようにできます。

(config-if)# standby 1 preempt delay minimum 60

この例では、復旧後60秒待ってからアクティブルータに戻るように設定しています。

delayには「minimum」「reload」「sync」という3種類がありますが、実務や試験では「minimum」を使うケースが一般的です。

HSRPの認証設定

HSRPを使うネットワークでは、意図しないルータが勝手にグループに参加することを防ぐために認証を設定することができます。
認証には「平文認証」と「MD5認証」があり、試験ではこの違いを押さえておくと安心です。

  • 平文認証:パスワードがそのまま送信される
  • MD5認証:パスワードが暗号化されて送信される

平文認証の例

(config-if)# standby 1 authentication text mypass

MD5認証の例(キー文字列)

(config-if)# standby 1 authentication md5 key-string mypass

MD5認証の例(キーチェーン利用)

(config)# key chain HSRP-KEY
(config-keychain)# key 1
(config-keychain-key)# key-string mypass

(config)# interface g0/0
(config-if)# standby 1 authentication md5 key-chain HSRP-KEY

実務ではセキュリティを考慮してMD5認証が推奨されます。試験でもMD5の設定例が出題されやすいので要チェックです。

HSRPのバージョン変更

HSRPには「Version 1」と「Version 2」が存在し、デフォルトはVersion 1です。両者の違いを表で整理すると理解しやすくなります。

比較項目HSRP Version 1HSRP Version 2
グループ番号0 ~ 2550 ~ 4095
仮想MACアドレス0000.0c07.acXX0000.0c9f.fXXX
Helloの宛先アドレス224.0.0.2224.0.0.102

もしグループを256以上作りたい場合や、IPv6対応を意識する場合はVersion 2を使う必要があります。

(config-if)# standby version 2

試験対策:「バージョン1と2の違い」や「宛先マルチキャストアドレス」を問われることが多いため、表ごと暗記しておくと安心です。

HSRPのインターフェーストラッキング

HSRPでは、通常LAN側のインターフェースに対してHSRPを有効にします。しかし、もしそのルータのWAN側インターフェースがダウンしてしまうと、LAN側ではまだアクティブとして動作しているのに、実際には外部と通信できない状態になってしまいます。
こうした状況を防ぐために使われるのが「インターフェーストラッキング」です。

インターフェーストラッキングを設定すると、追跡対象のインターフェースがダウンした時にHSRPのプライオリティを減算し、結果として別のルータへアクティブの役割を切り替えることができます。
これは、ちょうど車の片方のタイヤがパンクしたら、すぐに予備の車へ乗り換えるようなイメージです。

(config-if)# standby 1 track GigabitEthernet0/0

この例では、GigabitEthernet0/0がダウンするとプライオリティが10減算され、優先順位が下がります。必要であれば減算値を明示的に指定することもできます。

設定例(SW1)

SW1(config)# interface vlan 5
SW1(config-if)# ip address 172.16.5.1 255.255.255.0
SW1(config-if)# standby 5 ip 172.16.5.254
SW1(config-if)# standby 5 priority 105
SW1(config-if)# standby 5 preempt
SW1(config-if)# standby 5 track GigabitEthernet0/0

設定例(SW2)

SW2(config)# interface vlan 5
SW2(config-if)# ip address 172.16.5.2 255.255.255.0
SW2(config-if)# standby 5 ip 172.16.5.254
SW2(config-if)# standby 5 priority 100
SW2(config-if)# standby 5 preempt

このように設定すると、もしSW1のWAN側がダウンした場合、自動的にSW2がアクティブルータに切り替わります。

ただし、現在ではこの「インターフェーストラッキング」よりも、より柔軟に監視できる「オブジェクトトラッキング」を使うのが一般的です。

HSRPのオブジェクトトラッキング

オブジェクトトラッキングでは、単純なインターフェースの状態だけでなく、ルーティングの状態や到達性の有無なども監視対象にできます。
つまり「線がつながっているか」だけでなく「実際に通信できるか」まで確認できるというわけです。

よく使われるトラッキング方法

  1. インターフェースの状態を監視
(config)# track 101 interface GigabitEthernet0/0 line-protocol

インターフェースのリンク状態(line protocol)を追跡します。

  1. IP SLAと組み合わせて到達性を監視
(config)# track 102 ip sla 1 reachability

IP SLAを利用して、特定の宛先に対してpingを行い、応答があれば到達可能と判断します。

HSRPへの適用

(config-if)# standby 5 track 101 decrement 10
(config-if)# standby 5 track 102 decrement 20

このように、オブジェクトをHSRPに関連付け、ダウン時にどれだけプライオリティを減算するかを指定します。

IP SLAと組み合わせた設定例(SW1)

SW1(config)# ip sla 1
SW1(config-ip-sla)# icmp-echo 192.168.1.1 source-interface vlan 5
SW1(config-ip-sla)# frequency 10
SW1(config)# ip sla schedule 1 life forever start-time now

SW1(config)# track 101 interface GigabitEthernet0/0 line-protocol
SW1(config)# track 102 ip sla 1 reachability

SW1(config)# interface vlan 5
SW1(config-if)# ip address 172.16.5.1 255.255.255.0
SW1(config-if)# standby 5 ip 172.16.5.254
SW1(config-if)# standby 5 priority 105
SW1(config-if)# standby 5 preempt
SW1(config-if)# standby 5 track 101
SW1(config-if)# standby 5 track 102

SW2の設定例

SW2(config)# interface vlan 5
SW2(config-if)# ip address 172.16.5.2 255.255.255.0
SW2(config-if)# standby 5 ip 172.16.5.254
SW2(config-if)# standby 5 priority 100
SW2(config-if)# standby 5 preempt

この例では、SW1がLAN側から見てアクティブであっても、WAN側の物理回線がダウンしていたり、あるいは192.168.1.1への到達性が失われていたら、自動的にプライオリティを減算してSW2に切り替わります。

試験対策:「インターフェーストラッキング」と「オブジェクトトラッキング」の違いを理解しておくことが重要です。特にオブジェクトトラッキングは、IP SLAとの組み合わせが頻出ポイントです。

MHSRP(Multiple HSRP)の仕組み

通常のHSRPでは1つのセグメントに対して1つのHSRPグループを作成し、1台がアクティブ、もう1台がスタンバイとして動作します。
一方、MHSRP(Multiple HSRP)では1つのセグメント上に複数のHSRPグループを作成することができます。

例えば、グループ1ではSW1をアクティブ、SW2をスタンバイとし、グループ2では逆にSW2をアクティブ、SW1をスタンバイとするような構成が可能です。
これにより、セグメント内で複数のデフォルトゲートウェイを用意して、クライアントごとに異なるゲートウェイを設定することで負荷分散が実現できます。

ただし、この方式ではクライアント側に「どのPCはどのゲートウェイを使うか」を個別に設定する必要があるため、運用面での手間が増えます。そのため、実際の企業ネットワークではあまり利用されず、代わりに「VLANごとにHSRPを設定して負荷分散を行う方法」が一般的です。

MHSRPの設定例

SW1の設定

SW1(config)# interface gigabitethernet1/0/1
SW1(config-if)# no switchport
SW1(config-if)# ip address 172.16.5.1 255.255.255.0
SW1(config-if)# standby 1 ip 172.16.5.253
SW1(config-if)# standby 1 priority 105
SW1(config-if)# standby 1 preempt
SW1(config-if)# standby 2 ip 172.16.5.254
SW1(config-if)# standby 2 preempt

SW2の設定

SW2(config)# interface gigabitethernet1/0/1
SW2(config-if)# no switchport
SW2(config-if)# ip address 172.16.5.2 255.255.255.0
SW2(config-if)# standby 1 ip 172.16.5.253
SW2(config-if)# standby 1 preempt
SW2(config-if)# standby 2 ip 172.16.5.254
SW2(config-if)# standby 2 priority 105
SW2(config-if)# standby 2 preempt

この例では、

  • SW1はグループ1でアクティブ、グループ2でスタンバイ
  • SW2はグループ1でスタンバイ、グループ2でアクティブ

という動作になります。

クライアント側では、

  • 172.16.5.10~120 はデフォルトゲートウェイを「172.16.5.253」に設定
  • 172.16.5.121~240 はデフォルトゲートウェイを「172.16.5.254」に設定

といった形で分散を行います。

VLANごとのHSRPによる負荷分散(実務で一般的な方法)

MHSRPよりも運用管理が容易な方法は「VLAN単位でアクティブルータを分ける」方式です。
例えば、VLAN1はSW1をアクティブ、VLAN2はSW2をアクティブとし、トラフィックを分散します。

また、スパニングツリープロトコル(STP)のルートブリッジをHSRPのアクティブルータに揃えるのが基本です。これにより、経路が最適化され無駄なトラフィック転送を防げます。

SW1の設定

SW1(config)# spanning-tree vlan 1 priority 0
SW1(config)# spanning-tree vlan 2 priority 4096

SW1(config)# interface vlan 1
SW1(config-if)# ip address 172.16.1.1 255.255.255.0
SW1(config-if)# standby 1 ip 172.16.1.254
SW1(config-if)# standby 1 priority 105
SW1(config-if)# standby 1 preempt

SW1(config)# interface vlan 2
SW1(config-if)# ip address 172.16.2.1 255.255.255.0
SW1(config-if)# standby 2 ip 172.16.2.254
SW1(config-if)# standby 2 preempt

SW2の設定

SW2(config)# spanning-tree vlan 1 priority 4096
SW2(config)# spanning-tree vlan 2 priority 0

SW2(config)# interface vlan 1
SW2(config-if)# ip address 172.16.1.2 255.255.255.0
SW2(config-if)# standby 1 ip 172.16.1.254
SW2(config-if)# standby 1 preempt

SW2(config)# interface vlan 2
SW2(config-if)# ip address 172.16.2.2 255.255.255.0
SW2(config-if)# standby 2 ip 172.16.2.254
SW2(config-if)# standby 2 priority 105
SW2(config-if)# standby 2 preempt

この設定により、

  • VLAN1ではSW1がアクティブ
  • VLAN2ではSW2がアクティブ

となり、ネットワーク全体で効率的にトラフィックを分散できます。

試験対策:MHSRPの仕組みそのものと、実務ではVLANごとのHSRPによる負荷分散が一般的である、という点を押さえておくことが重要です。

◆まとめスライド

目次