【図解】VRRPの仕組みと構成、切り替わり時間(プリエンプト)

VRRP とは

VRRPとは、Virtual Router Redundancy Protocol の略で、クライアント PC 側で 1 つしか設定できないデフォルトゲートウェイ (ファーストホップルータ: FHR) を冗長化する技術です。

具体的には、VRRP 対応ルータ (L3 スイッチでも可) を 2 台以上同じセグメントに併設し、それぞれ異なる IP アドレスを設定し、それらを 1 つのVIP (Virtual IP) アドレスでグループ化します。

VIP は、正常時に Master としたいルータの物理 IP アドレスと同じにすることが基本です。VIP と同じ物理 IP アドレスを持つルータIP Address Owner と呼びます。

IP Addres Owner は Priority が 255 となり、Preempt は無効化できません。HSRP のように VIP を物理 IP アドレスとは異なる IP にした場合はこれらの制約が無くなります。

この VRRP により、クライアント PC からはルータが 1 台であるように見せかけます

ルータが1台故障した際もスタンバイしているルータがVIPアドレスを引き継ぎ、通信を継続させることができます。

VRRPの動作概要

VRRP では VIP に対する仮想 MAC アドレスは "00:00:5E:00:01:[VRID] という形式になります。

VRID (Cisco では HSRP に倣いグループと呼びます) はルータへの設定時に指定する必要があります。

先程の図の例では、VRID は "30" に設定しており、これを 16 進数に直すと "1E" となるので、仮想 MAC アドレスは "00:00:5E:00:01:1E" となります。

PC はデフォルトゲートウェイへ送信するためにデフォルトゲートウェイである "10.1.12.1" の MAC アドレスを ARP で調べます。

これは VIP ですので、Master ルータはその VIP に対する仮想 MAC アドレスを ARP 応答で返します

すると PC はその仮想 MAC アドレスへ向けてフレームを送信します。

上記の流れは、R2 が Master ルータが切り替わっても同じ動作になります。

R1 の障害時には、Backup ルータである R2 は、R1 から定期的に受信していた Advertisement を 10 秒間まったく受信しなくなると、R1 に障害があったと判断し、自身が Master に昇格します。

その際、Gratuitous ARP により VIP に対する MACアドレス更新を同セグメント全員にブロードキャストします。これにより、素早い切り替えが可能になります。

VRRPとHSRPはどちらがよい?

VRRP は HSRP を基に策定されましたが、VRRPと比較し、異なる特徴は以下の通りです。

  • VIPアドレスと同じIPアドレスを持つルータはIP address ownerと呼ばれ、Priorityが255になり、かつPreemptも必ず有効化される
  • IPヘッダのTTL は HSRP は必ず1なのに対し、VRRP は必ず255でなければならない
  • HSRP は UDP上で動作するが、VRRP は IP上で動作する
  • HSRP のメッセージのタイプは [Hello, Coup, Resign, Advertisement]の4種類あるが、VRRP では Advertisement の1種類のみ(Cisco では HSRP での慣例から Hello とも呼んでいる)
  • HSRP では Hello の送信間隔はデフォルトで3秒だが VRRP では Advertisement の送信間隔はデフォルトで1秒
  • VRRP では安定時では Master ルータのみがパケットを送信するが、HSRP では全てのルータがパケットを送信する
  • VRRP では State(状態)は [Init(初期), Backup, Master] の3種類だが、HSRP では[Init, Learn, Listen, Speak, Standby, Active] の6種類ある

なお、TTL が 255 である理由はセキュリティの観点で、他のセグメントから流れ込んできたものを受け入れないため、と RFC2338 の 10 章に記載されています。

他のセグメントからルーティングされて来たとしたら TTL が差し引かれるため、最大値の 255 で到達することはあり得ない、という発想です。

それで、『VRRP と HSRP のどちらがより良いプロトコルなのか』という話になると思いますが、この結論はこちらに記載していますのでご参照下さい

VRRPの切り替わり時間と切り替わりのトリガー

VRRP では Master ルータのみが1秒間隔で Advertisement を送信しますが、Backup ルータは、3秒間この Advertisement を受信できないと、Master ルータに昇格します。

つまり、VRRP の切り替わり時間は3秒で、切り替わりのトリガーはMasterルータのAdvertisement が受信できなくなることです。

VRRPの歴史

もともと Cisco が独自開発した HSRP を、他メーカ間でも使えるように1998年に RFC2338 で規定(2004年に RFC3768 で若干修正)されました。

VRRP のバージョン1についてはRFCのサイトにも情報は無く、一般的にバージョン2が使われています。また、2010年にはバージョン3が RFC5798 で規定され、IPv6 への対応が為されています。

VRRPのパケットフォーマット

前述の通り、VRRPはTCP/UDPは使わないのでポート番号がありません。その代わり、IPヘッダにプロトコル番号112が入ります。

VRRPのパケットフォーマットを下記に示します。

Version

常に2が入ります。上記はバージョン2のフォーマットです。

Type

常に1が入ります。1は Advertisementパケットであることを示します。

Virtual Router ID (VRID)

設定値に従い、セットされます。Cisco はこの VRID のことを「グループ」と呼んでいます。

Priority

設定値に従い、セットされます。Priorityが一番高いルータがMasterになります。物理IPが VIP と同じルータ(IP address owner)は必ず255になり、正常時は必ず Master になります。Master ルータに障害が起きたとき、BackupルータのうちPriorityが一番高いルータが Masterに昇格します。このとき、Priority は 255になることは無く、設定時の通りの値が入ります。

Count IP Addrs

同一セグメント内で、同一 VRID が設定された Virtual Router のIPアドレスの個数が入ります。これは設定が正しい場合は必ず1になります。このフィールド、および、IP Address(n)は設定ミス時のトラブルシュート用のフィールドです。

Auth Type

認証のタイプです。0 のときは認証無し、1のときは plain text によるパスワードフレーズ認証となっています。なお、RFC では定義されていませんが、Cisco では md5ハッシュによる認証として 254 を利用しています。

Advertise Interval

Advertisementを送信する間隔です。Advertisement は Master ルータのみが送信します。デフォルトでは1秒となっており、この Advertisement を3回分(つまりデフォルトでは3秒間)受信しないと、Backup ルータがMasterルータの選定をし始めます。

IP Address (n)

Count IP Addrs で記載した個数分のVIPが並びます。前述の通り、設定が正しい場合は正しいVIPが1つだけ入ります。設定ミス時のトラブルシュート用のフィールドです。

Authentication Data

AuthType で示された形式の認証データが入ります。

VRRPのPreemptについて

VRRP はデフォルトで Preempt が有効になっています。つまり、優先度が一番高いルータが常に Master ルータになります。前述の通り、パケットフォーマットには Preempt を示すフィールドはありません。なのでルータ単体で動作することになります。

また、前述の通り、VIPと同じIPアドレスを持つルータ(IP address owner)はPreemptが無効化できません

Preempt が無効になっている Backup ルータは、Master ルータが Advertisement を送信し続けている限りは自ら Advertisement を発信しません。Preempt が有効になっている場合は、受信した Advertisement に含まれる Priority が自身の Priority より低い場合は Advertisement を送信します。

Master ルータは、Preempt が有効無効に関わらず、Advertisement を受信し、かつそのPriority が自身の Priority より高い場合は、Backup に降格することになっています。

VRRPの状態遷移

まず、一番最初に VRRP を起動したルータがMasterになります。二番目以降に VRRP を起動したルータは、デフォルトの通り Preemption が有効になっていて、かつ Priority が高ければ、Masterになります。

VRRP では [ Init , Backup , Master ] の3つの状態があります。以下の規則に従い状態遷移します。

① VRRP 起動時

Initに遷移

② Init 状態において

もしそのルータが IP Address Owner であれば、Master に遷移し、Advertisement の送出を開始する

もしそれ以外のルータであればまず Backup に遷移し、もし自身の Priority より高いAdvertisement を検知できなければ、Master に遷移し、Advertisement の送出を開始する

③ Master 状態において

自身より高い Priority の Advertisement を検知したら、Backup に遷移し、Advertisementの送出を停止する

④ Backup 状態において

Preepmtion が有効化されており、かつ自身より低い Priority の Advertisement を検知したら、Master に遷移し、Advertisement の送出を開始する

IT/インフラエンジニアの地位とスキル向上のために

関連記事

IT 技術の進化はとどまることを知りません。矢継ぎ早に新たな技術が出てきたり、数年前の技術が時代遅れになったりと、IT エンジニアは勉強し続ける運命のようです。 それをどう思うかはあなた次第。 ビジネスの基本は『付加価値を与える[…]

IMG
関連記事

nesuke の考える NW エンジニアの2つの道 ネットワークエンジニアには 2 つの道があります。 1 つはネットワーク構築一筋で、L4 までをひたすらきっちりと構築していく道。 もう 1 つはネットワークを軸として深堀し[…]

IMG