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

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

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

フォローする

スポンサーリンク
スポンサーリンク