VRRPとは
VRRP(Virtual Router Redundancy Protocol)は、デフォルトゲートウェイを冗長化するための標準プロトコルで、RFC3768で規定されています。Cisco独自のHSRPと違い、IETF標準であるためマルチベンダー環境でも利用できるのが大きな特徴です。
この仕組みでは、複数のルータで「仮想IPアドレス」と「仮想MACアドレス」を共有し、ホストからは1台のルータに見えるように動作します。実際にパケットを転送するのは「マスタールータ」と呼ばれる機器で、その他は「バックアップルータ」として待機します。ホストが設定するデフォルトゲートウェイは物理ルータのIPアドレスではなく仮想IPアドレスになります。
HSRPとの違い
VRRPの特徴的な違いは、仮想IPアドレスにルータの物理IPアドレスをそのまま指定できることです。この場合、そのルータは「仮想IPアドレスオーナー」と呼ばれ、自動的にマスタールータとなりプライオリティは255に固定されます。
さらに、HSRPではアクティブとスタンバイの両方がHelloをやり取りするのに対し、VRRPではマスタールータだけがアドバタイズメントを送信し、バックアップルータはそれを受信して待機するだけです。つまり、マスタールータは「誰がバックアップなのか」を把握しない仕様になっています。
VRRPの基本動作
マスタールータは1秒ごとにアドバタイズメントを送信します。バックアップルータはそれを3秒以内に受け取れなければ、マスタールータがダウンしたと判断し自分がマスタールータに昇格します。
プライオリティは0から255まで設定可能で、デフォルトは100です。値が高いルータがマスターとなり、同じ値ならインターフェースのIPアドレスが大きい方が選ばれます。
VRRPの用語整理
仮想IPアドレスはホストのデフォルトゲートウェイに設定するアドレスです。
仮想MACアドレスはARP応答で通知され、形式は常に「0000.5e00.01xx」となり、末尾のxxがグループ番号に対応します。
仮想ルータは仮想IPと仮想MACを持ち、複数のルータで構成されます。
マスタールータは実際にパケットを処理する機器、バックアップルータは待機していてマスターが故障すれば引き継ぎます。
アドバタイズメントはマルチキャスト(224.0.0.18、プロトコル番号112)で送られる制御情報です。
VRRPグループとは仮想ルータを構成する集合体で、セグメントごとに作成します。
VRRPの実装例
R1とR2を同じVRRPグループに設定し、R1のプライオリティを高くすればR1がマスター、R2がバックアップになります。ホストのデフォルトゲートウェイを172.16.1.254に設定すると、ARP応答はR1が返すため、実際のパケット転送もR1で処理されます。
また、VRRPの運用では、仮想IPにマスターにしたいルータの物理アドレスを設定することが多く、この場合そのルータが自動的にマスターとなります。Cisco機器ではこの時プライオリティは255に設定されます。
VRRPの仮想MACアドレス
VRRPで使用される仮想MACアドレスは以下の規則で決まります。
- グループ1の場合 → 0000.5e00.0101
- グループ5の場合 → 0000.5e00.0105
- グループ10の場合 → 0000.5e00.010a
この仮想MACがホストのARPテーブルに保存され、以降の通信で利用されます。
VRRPの基本設定
VRRPを導入する際には、グループに参加するすべてのルータに対して設定を行う必要があります。まず、VRRPを有効にしたいL3インターフェースを選び、グループ番号と仮想IPアドレスを指定します。インターフェースは、L3スイッチのSVIでも、ルータの物理インターフェースでも構いません。
VRRPの有効化
(config)# interface vlan 10
(config-if)# vrrp 10 ip 192.168.10.254
この例では、VLAN10に対してVRRPグループ10を設定し、仮想IPアドレス192.168.10.254を割り当てています。ホストはこのアドレスをデフォルトゲートウェイとして利用します。
プライオリティの設定
VRRPのマスタールータは、グループ内で最も高いプライオリティを持つルータになります。プライオリティは1から255まで指定可能で、デフォルトは100です。
もし複数のルータが同じプライオリティを持つ場合には、インターフェースに設定されているIPアドレスが大きいルータがマスターとして選ばれます。また、仮想IPアドレスに物理インターフェースのIPアドレスを指定したルータは「仮想IPアドレスオーナー」となり、自動的にプライオリティ255でマスタールータになります。
設定例
(config-if)# vrrp 10 priority 105
この設定により、グループ10でプライオリティ105を持つルータは、他のルータより優先してマスターになれます。
プリエンプトの設定
VRRPでは、デフォルトでプリエンプトが有効になっています。これは、より高いプライオリティを持つルータが復旧した際に、自動的にマスターの役割を取り戻す機能です。
もし手動で設定を確認したい場合は次のように記述します。
(config-if)# vrrp 10 preempt
設定例
SW1の設定
SW1(config)# interface vlan 5
SW1(config-if)# ip address 172.16.5.1 255.255.255.0
SW1(config-if)# vrrp 5 ip 172.16.5.1
SW2の設定
SW2(config)# interface vlan 5
SW2(config-if)# ip address 172.16.5.2 255.255.255.0
SW2(config-if)# vrrp 5 ip 172.16.5.1
この例では、仮想IPアドレスにSW1の物理IPアドレスを指定しています。そのためSW1が自動的にマスターとなり、SW2はバックアップとして待機します。シンプルで分かりやすい構成例です。
設定が完了したら、show vrrp brief コマンドを使って各グループの状態を確認できます。
VRRPのデフォルト値
| 機能 | デフォルト値 |
|---|---|
| VRRPグループ | 未設定 |
| 仮想MACアドレス | 0000.5e00.01XX |
| VRRPプライオリティ | 100 |
| スタンバイ遅延 | 0(遅延なし) |
| インターフェイス プライオリティの追跡 | 10 |
| VRRPアドバタイズ間隔(Helloタイマー) | 1秒 |
| VRRPマスタダウン間隔(Holdタイマー) | 3秒 |
| VRRPプリエンプト | 有効 |
VRRPのタイマー設定
VRRPでは、マスタールータが送信するアドバタイズメントの間隔と、マスタールータがダウンしたとみなすまでの時間をタイマーで制御します。デフォルト値は以下の通りです。
- アドバタイズメント間隔(Helloタイマー):1秒
- マスタダウン間隔(Holdタイマー):3秒
アドバタイズメント間隔を変更すると、マスタダウン間隔もその3倍に自動的に調整されます。そのため、設定できるのはアドバタイズメント間隔のみです。
設定例
(config-if)# vrrp 5 timers advertise 3
この設定では、グループ5のアドバタイズメント間隔を3秒に変更します。
また、バックアップルータはマスタールータから送られるタイマー値を学習することが可能です。
タイマー値の学習
(config-if)# vrrp 5 timers learn
ただし、VRRPはデフォルト値(Hello 1秒、Hold 3秒)が最も実用的であり、試験でもこの値が基本として問われます。実務でも通常は調整不要です。
プリエンプトディレイの設定
VRRPはデフォルトでプリエンプト機能が有効になっています。つまり、より高いプライオリティを持つルータが復旧すると、自動的にマスタールータに戻ります。
しかし、復旧直後はルーティングプロトコルがまだ収束していない可能性があり、その状態で切り替わるとパケットロスが発生します。そこで「プリエンプトディレイ」を設定することで、復旧後に一定時間待ってからマスタールータへ復帰させることができます。
設定例
(config-if)# vrrp 1 preempt delay minimum 60
この例では、マスタールータが復旧してもすぐには切り替わらず、60秒経過後に切り替えが行われます。
オブジェクトトラッキング
VRRPは、インターフェースの状態だけでなく、ルーティング状態や到達性を監視して切り替えを行うことも可能です。これを「オブジェクトトラッキング」と呼びます。
インターフェースの状態を監視
(config)# track 101 interface GigabitEthernet0/0 line-protocol
VRRPへの適用
(config-if)# vrrp 5 track 101 decrement 20
この例では、GigabitEthernet0/0がダウンした場合、プライオリティを20減算し、結果的に別のルータがマスタールータになる可能性が高くなります。
認証の設定
VRRPでは、不正なルータがグループに参加するのを防ぐために認証を設定することが可能です。認証方式は「平文」と「MD5」の2種類があります。
平文認証
(config-if)# vrrp 5 authentication text mypass
MD5認証(キー文字列を直接指定)
(config-if)# vrrp 5 authentication md5 key-string mypass
MD5認証(キーチェーンを使用)
(config)# key chain VRRP-KEY
(config-keychain)# key 1
(config-keychain-key)# key-string mypass
(config)# interface vlan 10
(config-if)# vrrp 5 authentication md5 key-chain VRRP-KEY
セキュリティを考慮すると、平文認証よりもMD5認証が推奨されます。試験でも「VRRPでの認証方式の違い」を問われることがあるため、両方の方法をしっかり押さえておく必要があります。
ICMPリダイレクトとは
ICMPリダイレクトは、ルータやL3スイッチといったL3デバイスが送信元ホストに対して「より適切なゲートウェイ」を通知するための仕組みです。これによりホストは効率的な経路を選び、無駄な転送を避けることができます。
この動作は、L3デバイスがパケットを受信したインターフェースと、転送先のインターフェースが同じである場合に発生します。その際、L3デバイスはパケットを転送すると同時に、送信元ホストにICMPリダイレクトメッセージを返します。ホストはその情報をもとにルーティングテーブルへ一時的な経路を追加します。
動作の流れ
ホストA(192.168.1.10)がホストB(172.16.2.10)に通信するケースを考えます。
- ホストAはデフォルトゲートウェイとしてSW1を利用し、宛先Bへのパケットを送信する。
- SW1のルーティングテーブルを見ると、宛先172.16.2.0/24の次ホップがSW2(192.168.1.2)である。
- SW1はパケットをSW2に転送すると同時に、ホストAへICMPリダイレクトを送信する。
- このメッセージには「172.16.2.0/24宛てはSW2に直接送るべき」との情報が含まれる。
- ホストAは一時的にその経路をルーティングテーブルに登録し、以降は直接SW2に送信するようになる。
Windowsの環境では、このリダイレクトルートは10分間保持されます。
注意点
WindowsのファイアウォールがICMPをブロックしている場合は、リダイレクトメッセージを受信できないため、この仕組みは動作しません。
また、HSRPが有効なインターフェースでICMPリダイレクトが動作すると、冗長構成が正しく機能しない場合があります。そのためCisco機器では、HSRPを有効化するとICMPリダイレクトが自動的に無効化されます。手動で設定する場合は次のように入力します。
(config-if)# no ip redirect
HSRPとVRRPの比較表
| 比較項目 | HSRP | VRRP |
|---|---|---|
| 規格 | シスコ独自 | RFC3768 |
| グループ構成 | アクティブ機 – 1台スタンバイ機 – その他全て | マスター機 – 1台バックアップ機 – その他全て |
| グループ最大数 | 255 | 255 |
| パケット転送 | アクティブルータ | マスタールータ |
| ARP要求の応答 | アクティブルータ | マスタールータ |
| 仮想IPアドレス | 未使用IPアドレス | 物理I/FのIP または 未使用IPアドレス |
| 仮想MACアドレス | 0000.0c07.acXXXX = グループ番号 | 0000.5e00.01XXXX = グループ番号 |
| 選出基準 | プライオリティ値が大きいルータがアクティブルータ | 仮想IPに物理I/FのIPを設定しているルータがマスタールータ |
| Helloパケットのマルチキャスト | 224.0.0.2 | 224.0.0.18 |
| デフォルトタイマー | Hello – 3秒Hold – 10秒 | Advertise – 1秒Master-down – 3秒 |
| 認証方式 | プレーンテキスト or MD5 | プレーンテキスト or MD5 |
| preemptのデフォルト | 無効 | 有効 |
| 動作するプロトコル | UDP上で動作IP/UDPでカプセル化 | IP上で動作IPでカプセル化 |
| メッセージ送信で使用するポート番号 | UDPポート番号:1985 | IPプロトコル番号:112 |
このように、HSRPはCisco独自実装であるのに対し、VRRPは標準化されているためマルチベンダー環境で利用できる点が大きな違いです。