VRRPとは
VRRPとは、「Virtual Router Redundancy Protocol」の略で、ネットワーク上でルータの冗長化をサポートするプロトコルです。
仮想ルータ冗長プロトコルとも呼ばれ、同一サブネット内のデフォルトゲートウェイを可用生を高め冗長化することができます。RFC3768で定義され、ルータやレイヤ3スイッチなどでサポートされています。
まず、VRRPを使用しないネットワーク構成を見ていきます。
下の図のようにRouterAに障害が発生した場合、セグメントAに所属するPCは、この障害を回避できません。

デフォルトゲートウェイを失うと、そのデフォルトゲートウェイに接続しているセグメント上の機器は通信できなくなります。
このような障害を回避するための対策として、次のような対策があります。
- ダイナミックルーティングで迂回する方法
- VRRPを使う方法
- HSRP ※Cisco独自
ここでは、VRRPを使用した冗長化の例を説明していきます。
先ほどのネットワーク構成図に、ルータBを増設して、下図のようにネットワークを構成し直します。

セグメントAに所属するPCのデフォルトゲートウェイは、通常、1つしか設定することができません。ここでは、RouterAのセグメントA側のインタフェースに割り当てられているIPアドレスをセグメントAに所属するPCのデフォルトゲートウェイします。
しかし、図のようにRouterAのセグメントA側がダウンした時、VRRPを使用しない場合には、セグメントAに所属するPCのデフォルトゲートウェイをRouterBのセグメントB側のインタフェースに割り当てられているIPアドレスに変更しなければなりません。
たとえ、DHCPでTCP/IPの設定を払い出しをしてる環境であったとしても、DHCPサーバの払い出しの変更が必要となり、セグメントA側のPCは、IPアドレスを再取得させなければなりません。
このままでは、自動的にデフォルトゲートウェイを変更することができません。
ここで、2台のルータに同じIPアドレスを割り当てれば、うまくゆきそうな、感じもしますが、それは、「重複するIPアドレスが存在してはならない」というネットワークの掟を破ってしまうことになり、IPアドレスの競合が発生してしまいます。
この煩わしさを解消するのがVRRPです。
VRRPを使ってルータを冗長化する
VRRPを使用しない場合の冗長構成は、クライアント側でデフォルトゲートウェイを切り替える必要があり、シームレスな切り替えができないという煩わしさが問題となりました。
VRRPを使ってルータを冗長化させた場合は、クライアント側でデフォルトゲートウェイの設定を変更しなくても、自動的にRouterBを経由した通信が可能になります。
VRRPの仕組みは、下図のように複数のルータで1つのグループを構成し、仮想IPアドレスと仮想MACアドレスを持つ仮想ルータを作ります。仮想ルータは2台以上の物理ルータで構成されます。
仮想MACアドレスは、「00-00-5E-00-01-XX」というMACアドレスを使用します。

VRRPが動作している複数のルータのうち、通常、1台のルータがマスタになります。このルータをマスタルータと呼びます。このマスタールータが仮想ルータのIPアドレス、MACアドレス(マスタルータが代理でARP応答で答える)を利用して通信を行ないます。
他のルータはバックアップとして動作し、マスタルータ異常時に備えて待機しています。この、ルータをバックアップルータと呼びます。 マスタールータがダウンした場合、バックアップルータが速やかに、仮想IPアドレス、仮想MACアドレスを引き継いで仮想ルータを存続させ動作させます。
各物理ルータには優先度を割り当てます。マスタルータには、バックアップルータより優先度の高い数値(大きい値)を割り当てます。優先度は、1~254の間で割り当てます。
※255の値は、特別な意味を持っています。Ciscoルータの場合、インターフェイスのIPアドレスが仮想IPアドレスと等しいマスタールータの場合、優先度が最高である255になります。YAMAHAルータの場合は、プライオリティ値が255となり、常にプリエンプトモードで動作します。
ホストの設定は、物理ルータのIPアドレスをデフォルトゲートウェイとして設定するのではなく、仮想ルータのIPアドレスをデフォルトゲートウェイとして設定します。
上図では、仮想IPアドレスZを指定します。そうすることによって、マスタールータがダウンしてもバックアップルータを経由することで通信を継続させることができます。
プリエンプトモード
VRRPの動作モードに、プリエンプトモードがあります。プリエンプトモードであるかどうかによって、マスタールータの選出方法が変わってきます。
非プリエンプトモードでは、先に優先度の低いVRRPルータがマスタールータとなっていた場合には、後から優先度の高いVRRPルータが参加してもマスタールータの切り替わることはありません。
プリエンプトモードでは、優先度の高いVRRPルータが加わると必ずそちらにマスタールータが切り替わりま す。
通常は、プリエンプトモードで運用します。多くのルータで、プリエンプトモードがデフォルトの動作モードになっています。