【図解】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 の送出を開始する

シェアする

  • このエントリーをはてなブックマークに追加

フォローする