ゲートウェイ(FHR)冗長化

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

コメント

タイトルとURLをコピーしました