デフォルトゲートウェイが1台だけの構成では、そのルータが障害でダウンした瞬間にネットワーク全体の通信が止まってしまいます。この問題を解決するのがHSRP(Hot Standby Router Protocol)です。
HSRPはCisco独自プロトコルで、2台以上のL3機器で仮想IPアドレスを共有することでデフォルトゲートウェイの冗長化を実現します。本記事では、HSRPの仕組み・設定例・フェイルオーバー検証・インターフェーストラッキング・HSRPv1とv2の違いまで体系的に解説します。
以前、L3スイッチを1台構成で運用している現場で、そのスイッチのソフトウェア更新作業のためにリブートした際、フロア全体が数分間インターネットに接続できなくなる事態になりました。
その後の設計見直しでHSRPを導入し、同じリブート作業をした際は切り替え時間が数秒でStandby機器がActiveに昇格し、業務への影響はほぼゼロでした。HSRPを設定しているかどうかで、メンテナンス作業の敷居が大きく変わることを実感しました。
HSRPの仕組み
HSRPでは、グループ内の複数のL3機器が1つの仮想IPアドレスを共有します。クライアントはその仮想IPをデフォルトゲートウェイとして設定するため、Active機器が切り替わっても設定変更は不要です。
仮想MACアドレスについて
HSRPでは仮想IPだけでなく、仮想MACアドレスも使用します。クライアントのARPテーブルには仮想MACが登録されるため、Active機器が切り替わった際もクライアントがARP更新なしに通信を継続できます。
| バージョン | 仮想MACアドレス形式 | マルチキャストアドレス | グループ番号範囲 |
|---|---|---|---|
| HSRPv1 | 0000.0C07.ACxx(xxがグループ番号) | 224.0.0.2 | 0〜255 |
| HSRPv2 | 0000.0C9F.Fxxx(xxxがグループ番号) | 224.0.0.102 | 0〜4095 |
standbyの代わりにvrrpコマンドを使います。基本設定例
VLAN 10において2台のL3スイッチ(SW1・SW2)でHSRPグループ1を構成します。仮想IPは192.168.10.1、SW1をActiveに設定します。
| 機器 | 実IP(SVI) | 仮想IP | Priority | 役割 |
|---|---|---|---|---|
| SW1 | 192.168.10.2 | 192.168.10.1 | 110 | Active |
| SW2 | 192.168.10.3 | 192.168.10.1 | 100 | Standby |
SW1(Active側)の設定
SW1# configure terminal
SW1(config)# interface Vlan10
SW1(config-if)# ip address 192.168.10.2 255.255.255.0
SW1(config-if)# standby 1 ip 192.168.10.1 ← 仮想IP(クライアントのGWに設定)
SW1(config-if)# standby 1 priority 110 ← デフォルト100より高い → Active
SW1(config-if)# standby 1 preempt ← 復旧後にActiveへ自動で戻る
SW1(config-if)# no shutdownSW2(Standby側)の設定
SW2# configure terminal
SW2(config)# interface Vlan10
SW2(config-if)# ip address 192.168.10.3 255.255.255.0
SW2(config-if)# standby 1 ip 192.168.10.1 ← 仮想IPは同じ
SW2(config-if)# standby 1 priority 100 ← デフォルト値(Activeに勝てない)
SW2(config-if)# standby 1 preempt ← 将来的にpriorityを上げた場合に備えて設定
SW2(config-if)# no shutdownpreemptはpriority が高い機器が復旧した際に自動でActiveに昇格するための設定です。preemptを設定していないと、Activeが復旧してもStandbyのままになります。本番環境では必ずActive側にpreemptを設定し、意図したとおりの役割に戻ることを確認してください。状態確認コマンド
SW1# show standby brief(SW1の正常時出力)
P indicates configured to preempt.
|
Interface Grp Pri P State Active Standby Virtual IP
Vl10 1 110 P Active local 192.168.10.3 192.168.10.1
↑ ↑ ↑
preempt設定 自分がActive 相手のIPが表示
(SW1がダウンしてSW2がActiveに昇格した後のSW2の出力)
Interface Grp Pri P State Active Standby Virtual IP
Vl10 1 100 P Active local unknown 192.168.10.1
↑
Standbyがなくなった状態| 確認コマンド | 確認できること |
|---|---|
| show standby brief | Active/Standbyの状態・仮想IP・相手のIP一覧 |
| show standby Vlan10 | 特定インターフェースの詳細状態(タイマー・仮想MAC等) |
| show standby Vlan10 detail | Hello/Deadタイマーの値・preempt設定・トラッキング状態 |
| debug standby events | フェイルオーバー発生時のイベントをリアルタイムで確認(テスト時のみ) |
インターフェーストラッキング(standby track)
HSRPの基本設定だけでは、Active機器のアップリンク(上位ルータ等への接続)が断絶しても切り替えが発生しない場合があります。この問題を解決するのがインターフェーストラッキングです。
指定したインターフェースがダウンした場合に自動でpriorityを下げ、Standby機器が自動でActiveに昇格する仕組みです。
SW1:priority 110 → Active
GigEth0/1(上位): UP
クライアント → 仮想IP → SW1 → インターネット
SW1:priority 110 – 20 = 90 → Standbyに降格
SW2:priority 100 → Activeに昇格
クライアント → 仮想IP → SW2 → インターネット
! SW1の追加設定:アップリンクポートをトラッキング
SW1(config)# interface Vlan10
SW1(config-if)# standby 1 track GigabitEthernet0/1 20
! ↑ ↑
! 監視するIF ダウン時にpriorityを下げる値
!
! GigEth0/1がダウン → priority 110 - 20 = 90 < SW2の100 → SW2がActiveに昇格フェイルオーバー検証手順
本番導入前にフェイルオーバーが正常に動作するかを検証します。
タイマーのカスタマイズ
HSRPのデフォルトタイマーはHello間隔3秒・Dead(Hold)タイム10秒です。切り替えを速くしたい場合は短縮できます。
! タイマーをHello 1秒・Hold 3秒に短縮(両端で合わせること)
SW1(config-if)# standby 1 timers 1 3
! ミリ秒単位の設定(さらに高速な切り替えが必要な場合)
SW1(config-if)# standby 1 timers msec 200 msec 700
! 現在のタイマー設定を確認
SW1# show standby Vlan10 detail | include timersHSRPv1とv2の違いと設定
HSRPにはバージョン1と2があります。両端で必ず同じバージョンに統一してください。異なるバージョンでは通信できません。
! HSRPv2を使用する場合(グループ番号が0〜4095に拡張)
SW1(config-if)# standby version 2
SW1(config-if)# standby 1 ip 192.168.10.1
SW1(config-if)# standby 1 priority 110
SW1(config-if)# standby 1 preempt運用上の注意点
| 注意点 | 内容 |
|---|---|
| 仮想IPをクライアントのGWに設定 | クライアントのデフォルトゲートウェイは仮想IP(192.168.10.1)に設定する。実IP(.2/.3)を直接設定すると冗長化の意味がなくなる |
| HSRPバージョンを統一 | v1とv2では仮想MAC・マルチキャストアドレスが異なる。両端で必ず同じバージョンに揃える |
| アップリンクもトラッキングする | Active機器のアップリンクが断絶してもHSRP自体は切り替わらない。standby trackでアップリンクも監視する |
| タイマーは両端で統一 | Hello/Holdタイマーが不一致だと意図しない切り替えが発生する |
| 定期的なフェイルオーバー試験 | 設定後は少なくとも年1回はフェイルオーバー試験を実施し、切り替えが正常に動作することを確認する |
まとめ
HSRPを活用すれば、L3スイッチやルータ間でのゲートウェイ冗長化が容易に実現できます。
- 仮想IPをクライアントのGWに設定することで、障害時もクライアント設定変更不要
standby priorityでActive/Standbyの役割を決め、preemptで復旧後に元の役割に自動で戻るstandby trackでアップリンクを監視し、上位リンク断でも自動でフェイルオーバーさせる- HSRPバージョン・タイマーは両端で必ず統一する
- マルチベンダー環境では業界標準のVRRPを検討する
- 設定後は
show standby briefで状態確認し、定期的にフェイルオーバー試験を実施する
優先度・preempt・トラッキングを適切に設定し、定期的なフェイルオーバー試験を行うことで高い可用性を維持できます。



