ITの教科書検索
入門・発展ページ読了 約12分

FHRPとは ― HSRP・VRRPによるデフォルトゲートウェイの冗長化

FHRPとは、デフォルトゲートウェイを複数のルータで冗長化する規格の総称です。仮想IP・仮想MACの構造と、HSRP・VRRPの仕組みと違いを図で解説します。

目次
  1. FHRPとは
  2. 仮想IPアドレスと仮想MACアドレス
  3. アクティブ/スタンバイとアクティブ/バックアップ
  4. 優先度とプリエンプト
  5. 動かして確かめる:優先度とアクティブの関係
  6. 正常時と故障時の切り替わり
  7. HSRPとVRRPの違い
  8. GLBP:複数台で同時に転送する方式
  9. 練習問題

FHRPとは、デフォルトゲートウェイを複数のルータで冗長化する規格の総称

FHRPとは、デフォルトゲートウェイを複数のルータで冗長化するための規格の総称です。PCに設定できるデフォルトゲートウェイは1つだけなので、そのルータが止まると、PCは外向けの通信を預ける相手を失います。

FHRPは、First Hop Redundancy Protocolの略です。HSRP・VRRP・GLBPが、この総称に含まれます。デフォルトゲートウェイそのものの働きは、デフォルトゲートウェイの記事で説明しています。

1台の故障で通信が止まる箇所を、単一障害点と呼びます。ロードバランサの記事にも出てくる言葉です。デフォルトゲートウェイも、1台だけで運用すると単一障害点になります。

FHRPは、複数のルータを1台の仮想的なルータに見せることで、この単一障害点を解消します。PCからは1台のルータに見えたまま、裏側の実際のルータが入れ替わります。故障に備えて装置を複数並べる考え方は、フォールトトレラントとフェールセーフの記事で、ほかの設計と比べています。

仮想IPアドレスと仮想MACアドレスで、1台のルータに見せる

FHRPを構成する各ルータには、もともとの実IPアドレスと実MACアドレスがあります。それに加えて、グループの全ルータが同じ仮想IPアドレスと仮想MACアドレスを持ちます。仮想IPアドレスは、管理者が設定します。仮想MACアドレスは、グループの番号から自動で決まります。

PCのデフォルトゲートウェイには、この仮想IPアドレスだけを設定します。実際のルータのIPアドレスを、PCが知る必要はありません。

PCが仮想IPアドレス宛にARPで問い合わせると、答えが返ってくるのは仮想MACアドレスです。ARPの仕組みは、ARPの記事にあります。このとき応答するのは、グループの中でいま転送を担当しているルータだけです。

仮想MACアドレスの形式は、プロトコルごとに決まっています。HSRPのバージョン1は、0000.0c07.acに続けて、グループ番号を16進数2桁で表します。グループ1なら0000.0c07.ac01です。HSRPのバージョン2では、グループ番号を0〜4095まで使えます。そのため形式が変わり、0000.0c9f.fに続けて、グループ番号を16進数3桁で表します。グループ1なら0000.0c9f.f001です。

VRRPでは、グループを表す番号をVRIDと呼びます。仮想MACアドレスは、00:00:5e:00:01に続けて、VRIDを16進数で表します。VRIDが1なら00:00:5e:00:01:01です(IPv4の場合。RFC 9568 7.3節)。

PC192.168.10.25ARPで仮想IP宛に問い合わせ仮想ルータ仮想IP 192.168.10.1仮想MAC(HSRPv1)0000.0c07.ac01(VRRPなら 00:00:5e:00:01:01)応答中待機R1実IP 192.168.10.2実MAC ac:de:48:11:11:11アクティブR2実IP 192.168.10.3実MAC ac:de:48:22:22:22スタンバイ
PCは、仮想IPアドレスと仮想MACアドレスだけを見て通信します。実体は実IP・実MACを持つ2台のルータで、両方に同じ仮想IP・仮想MACが設定されています。いまはR1が仮想MACアドレスで応答してアクティブになっており、R2は待機しています。

図のR1とR2は、どちらも実IP・実MACを持つ別々のルータです。両方に同じ仮想IP・仮想MACが設定されていて、いまはR1だけがその仮想MACアドレスで応答しています。このように応答している1台を、アクティブと呼びます。

アクティブ/スタンバイ(HSRP)、アクティブ/バックアップ(VRRP)で役割を分ける

FHRPのグループでは、1台だけが転送を担当し、残りは待機します。HSRPでは、転送を担当する側をアクティブ、待機する側をスタンバイと呼びます。

VRRPでも、呼び方はほぼ同じです。転送を担当する側はアクティブ、待機する側はバックアップと呼びます。

VRRPは以前の版(RFC 5798以前)では、転送を担当する側を「マスター」と呼んでいました。最新のRFC 9568(2024年4月)で、「アクティブルータ」に変更されました。IETFの定める包摂的な言葉づかいに合わせるためです。ネット上の解説記事には、まだ「マスター」と書いているものが多くあります。

待機している側は、アクティブが生きているかを、一定間隔で届く合図で確かめています。この合図を、HSRPではHello、VRRPではAdvertisementと呼びます。HSRPでは、アクティブとスタンバイの両方がHelloを送ります。VRRPでは、Advertisementを送るのはアクティブだけです。アクティブからの合図が一定時間届かないと、待機している側はアクティブが止まったと判断します。そして、自分がアクティブに切り替わります。

HSRPの既定では、Helloを3秒ごとに送り、10秒届かないと切り替わります(Cisco IOSのコマンドリファレンスによる既定値)。VRRPの既定では、Advertisementを1秒ごとに送ります。異常と判断するまでの時間は優先度によって変わり、優先度が既定の100なら約3.6秒です(RFC 9568 6.1節の計算式による)。

優先度の数値が高いほうがアクティブになる

どのルータがアクティブになるかは、優先度という数値で決めます。数値が高いルータが、アクティブに選ばれます。

HSRPの優先度は1〜255で、既定値は100です。VRRPの優先度は1〜254で、既定値はやはり100です(255は、仮想IPを自分の実IPとして持つ特別なルータ専用です)。優先度が同じ場合は、実IPアドレスの大きいほうがアクティブになります。この決め方は、HSRP・VRRPのどちらにもあります。ただし、これは複数のルータが同時にアクティブを決めるときの決め方です。すでにアクティブのルータがいるところへ後から加わったルータが入れ替わるかどうかは、次のプリエンプトで決まります。

アクティブが止まると、スタンバイ(バックアップ)側が代わってアクティブになります。止まっていたルータが復旧したとき、優先度の高いほうが自動でアクティブに戻るかどうかを決める設定がプリエンプトです。

プリエンプトの既定値は、HSRPとVRRPで違います。HSRPは既定でプリエンプトが無効です。優先度の高いルータが後から復旧しても、自動ではアクティブに戻りません。後から起動したルータも同じで、優先度が高くても、いまのアクティブから役割を奪いません。VRRPは既定でプリエンプトが有効です(RFC 9568 6.1節)。優先度の高いルータが復旧すると、自動的にアクティブを取り戻します。

動かして確かめる:優先度を変えると、アクティブはどう変わるか

登場するのは、実IP 192.168.10.2 のR1と、実IP 192.168.10.3 のR2です。2台の優先度を変えて、どちらがアクティブになるかを確かめます。3つの組み合わせは、どれも2台を同時に動かし始めて、アクティブを決める場合です。

R1 192.168.10.2
優先度 100
スタンバイ
R2 192.168.10.3
優先度 100
アクティブ
優先度が同じなので、実IPアドレスの大小で決まります。192.168.10.3のR2の方が192.168.10.2のR1より大きいので、R2がアクティブになります。

正常時と故障時で、アクティブが切り替わる流れ

R1の優先度を150、R2の優先度を100に設定した例で、正常時と故障時を比べます。優先度の高いR1が、はじめからアクティブです。図の時間は、HSRPの既定値です。

正常時PC 192.168.10.25仮想IP 192.168.10.1転送R1優先度150192.168.10.2アクティブR2優先度100192.168.10.3スタンバイHelloを3秒ごとに送り合う故障時PC 192.168.10.25仮想IP 192.168.10.1転送R1優先度150192.168.10.2故障R2優先度100192.168.10.3アクティブ×Helloが10秒届かず切り替わる
HSRPの既定値での例です。R1とR2は、Helloを送り合って互いの生存を確認しています。正常時はR1がアクティブで仮想IP宛の通信を転送します。R1が故障してHelloが届かなくなると、保持時間が過ぎた後にR2がアクティブに切り替わり、仮想IP・仮想MACを引き継いで転送します。

正常時は、R1が仮想IP・仮想MAC宛の通信をすべて転送します。R2は、R1から届くHelloやAdvertisementで、R1が生きていることを確かめています。

R1が故障すると、このやり取りが止まります。R2は、一定時間合図が届かないことを検知すると、自分がアクティブに切り替わります。そして、仮想IP・仮想MACを引き継いで転送を始めます。PCは設定を変えていないので、何が起きたかを意識せずに通信を続けられます。

R1が復旧した後の動きは、プリエンプトの設定によって変わります。VRRPの既定(プリエンプト有効)なら、優先度150のR1が自動でアクティブを取り戻します。HSRPの既定(プリエンプト無効)なら、R1が復旧してもR2がアクティブのままです。

HSRPとVRRPの違い

ここまでの違いをまとめます。規格の策定元が違うだけでなく、送信間隔やプリエンプトの既定値も違います。

項目HSRPVRRP
規格Cisco独自IETFの標準規格(現在はRFC 9568)
ルータの役割名アクティブ・スタンバイアクティブ・バックアップ
IPv4マルチキャストアドレス224.0.0.2(v1)/224.0.0.102(v2)224.0.0.18
送受信UDP 1985番IPのプロトコル番号112
送信する側アクティブとスタンバイの両方アクティブだけ
既定の送信間隔3秒ごと(保持時間10秒)1秒ごと(優先度100なら約3.6秒で異常と判断)
プリエンプトの既定無効有効
仮想MACアドレスの形式0000.0c07.ac + グループ番号(v1)
0000.0c9f.f + グループ番号(v2)
00:00:5e:00:01 + VRID(IPv4)

表の送信間隔は既定値です。実際の運用では、どちらの規格でも送信間隔を変更できます。

GLBP:複数台のルータが同時に転送する方式

GLBPもCisco独自の規格で、HSRPと同じく複数のルータでデフォルトゲートウェイを冗長化します。HSRP・VRRPとの違いは、グループの1台だけが転送するのではなく、複数台が同時に転送を分担する点です。

グループの中で選ばれた1台をAVGと呼びます。AVGは、グループの各メンバーに別々の仮想MACアドレスを割り当てます。仮想MACアドレスを割り当てられたルータをAVFと呼びます。AVFは、自分に割り当てられた仮想MACアドレス宛の通信だけを転送します(Cisco「Configuring GLBP」設定ガイドによる)。

既定では、PCがARPで仮想IPアドレスに問い合わせるたびに、AVGは答える仮想MACアドレスを順番に変えます。その結果、PCごとに転送を担当するルータが分かれ、負荷が分散されます。HSRP・VRRPの1つのグループの中では、待機している側のルータは、障害が起きるまで転送に使われません。

練習問題(全5問)

Q1FHRPの説明として正しいものは?
Q2仮想IPアドレスと仮想MACアドレスの役割として正しいものは?
Q3HSRPとVRRPの違いとして正しいものは?
Q4HSRPで、優先度がどちらも既定値(100)の2台のルータを同時に動かし始めた場合、どちらがアクティブになる?
Q5プリエンプトの既定値について正しいものは?

選んでから「採点する」を押すと、解説つきで答え合わせができます。

関連記事

おすすめの本 PR

ネットワークを初めて学ぶ人向けの入門書です。

目的別の本の選び方を見る

ネットワークの記事を探す