HSRPとは
HSRP(Hot Standby Router Protocol)はPCやサーバなどからみたデフォルトゲートウェイを冗長化するためのプロトコルです。 Cisco独自プロトコルになります。そのため、Cisco機器同士しか動作しません。マルチベンダー環境でのデフォルトゲートウェイ冗長化はVRRPを利用します。HSRPはデフォルトゲートウェイの役割を行う複数のルータに同じ仮想アドレスを持たせることによって冗長化を行います。その仮想IPアドレスをHSRPが動作しているセグメント内に参加しているノードがゲートウェイとして設定することによってゲートウェイの冗長化が実現します。
VRRPとの違い
HSRPと同じくデフォルトゲートウェイの冗長化を行うプロトコルあるVRRPもありますが前述のとおり、VRRPはIETFによってRFC3768で標準化されているためマルチベンダー環境に適用できます。また、HSRPではできませんがVRRPでは物理IPアドレスを仮想IPアドレスとして設定することが可能です。
HSRPの実装
HSRPは同一セグメント内で動作します。そのため同一セグメント内にVRRPを動作させるルータを複数台設置します。冗長化したいルータにHSRPグループIDを同じにした値を設定することで同じグループだと互いに認識します。また、優先度を設定するpriorityやアクティブルータがダウンした場合に引き継ぐpreemtなどを合わせ設定しましょう。フラッピング時の影響軽減のためにマスタールータ側にpreemt delayを設定しておくのも良いと思います。
CiscoルータでのHSRPコマンド
R1
Interface Gigabitethernet0
ip address 192.168.0.252
standby 1 ip 192.168.0.254
standby 1 priority 200
standby 1 preempt delay minimum 300
R2
Interface Gigabitethernet0
ip address 192.168.0.253
standby 1 ip 192.168.0.254
standby 1 priority 150
standby 1 preempt
パケットフォーマット
Version
Versionには0がセットされます。
Opcode
HSRPメッセージの種類を表すコードが入ります。
Hello:0
Coup:1
Resign:2
Advertisement:3
State
ステータスを表すコードが入ります。
Init
Learn
Listen
Speak
Standby
Active
Hellotime
HSRPルータがHelloメッセージを送信する間隔値がセットされます。
デフォルトは3秒になります。
Holdtime
対向のHSRPルータから最後に受け取ったHelloメッセージを何秒間保持するか値がセットされます。Holdtimeが満了すると対象の対向HSRPルータはダウンしたと判断されます。
Priority
HSRPの優先度であるプライオリティ値がセットされます。
Group
設定されたグループIDが入ります。
Reserved
予約用で未使用フィールドになります。
Authentication Data
認証機能を有効にした場合の認証情報が入ります。
Virtual IP Address
設定された仮想IPアドレスの情報が入ります。