IP / VRRP
VRRP(Virtual Router Redundancy Protocol)は、複数のルーターをグループ化し、あたかも1台のルーターであるかのように見せかけることで、デフォルトゲートウェイを冗長化し、IPネットワークに冗長性を与えるプロトコルです。本製品は、IPv4/IPv6両対応のVRRPv3をサポートしています。
プロトコル概要
VRRPの基本的な考え方は次のとおりです。- 同一ネットワーク上にある複数のルーターをグループ化し、1台のように見せかける。このグループ全体をバーチャルルーター(VR = Virtual Router)と呼ぶ。
- バーチャルルーターを構成する各ルーターは次のものを共有し、互いに連携して動作する。
- VRID: バーチャルルーターを識別するための番号(1~255)。
- バーチャルMACアドレス: バーチャルルーターへのARP要求に対して返されるMACアドレス。VRIDから導出される。
- バーチャルIP/IPv6アドレス: バーチャルルーターのIPv4/IPv6アドレス。クライアントホストには、このアドレスをデフォルトゲートウェイとして設定する(IPv6ではリンクローカルアドレスを使います)。
- VRID: バーチャルルーターを識別するための番号(1~255)。
- バーチャルルーターを構成する各ルーターは、1~255の優先度を持つ。バーチャルIP/IPv6アドレスとインターフェースの実アドレスが一致している場合、そのルーターの優先度は自動的に最高値の255となる(preferred master)。それ以外のルーターには、1~254の優先度を設定する(初期値は100)。
- バーチャルルーターは、マスタールーター1台と、バックアップルーター1台以上から構成される。バーチャルルーター内でもっとも高い優先度を持つルーターがマスタールーターとなる。
- マスタールーターは、バーチャルIP/IPv6アドレスとバーチャルMACアドレスを使い、実際にルーターとしての動作を行う。また、VRRP Advertisementパケットをマルチキャストグループアドレス224.0.0.18(IPv4)、ff02::12(IPv6)宛てに定期的に送信し、自らの健在をバックアップルーターに知らせる。また、自分より高い優先度を持つAdvertisementパケットを受信した場合は、バックアップルーターに移行する。
- バックアップルーターは、ルーターとしての動作は行わずに、Advertisementパケットを監視している。バックアップルーターは、Advertisementパケットが途絶えるとマスタールーターに障害が発生したものと見なし、新しいマスタールーターの選出プロセスに入る。
基本設定
次に、実際に2台のルーターを用いてIPv4/IPv6のデフォルトゲートウェイを冗長化するための設定方法を示します。IPv4用の設定とIPv6用の設定は下記の箇所を除いて同一です。
- バーチャルルーターの作成コマンドがIPv4とIPv6で異なる
- IPv4では、router vrrpコマンドを使う
- IPv6では、router ipv6 vrrpコマンドを使う
- IPv4では、router vrrpコマンドを使う
- バーチャルIP/IPv6アドレスの指定コマンドがIPv4とIPv6で異なる
- IPv4では、virtual-ipコマンドを使う
- IPv6では、virtual-ipv6コマンドを使う。IPv6ではリンクローカルアドレスを指定する必要があることに注意
- IPv4では、virtual-ipコマンドを使う
IPv4
ここでは、次のようなネットワーク構成を例にIPv4用のVRRP設定手順を示します。
この例では通常ルーターAが使用されますが、ルーターAが故障すると、同ルーターが定期的に送信しているVRRP AdvertisementパケットをルーターBが受信できなくなります。この場合、ルーターBはルーターAがダウンしたものと見なしてバックアップルーターからマスタールーターに移行し、両方のセグメントに対するデフォルトゲートウェイアドレスを引き継ぎます。ルーターAが復旧すると、ルーターBは元のバックアップルーターに戻ります。
なお、以下の各例では、VLANの作成とIPアドレスの設定は完了しているものとします。VLANの設定については、「L2スイッチング」の「バーチャルLAN」をご覧ください。IPアドレスの設定については、「IP」の「IPインターフェース」をご覧ください。
ルーターA
- VRRPの動作に必要なVRRPサービスを有効にします。これにはservice vrrpコマンドを使います。
RouterA(config)# service vrrp
- router vrrpコマンドを実行して、vlan100インターフェース上にVRID=100のバーチャルルーター(以下、VR100)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterA(config)# router vrrp 100 vlan100
- virtual-ipコマンドでVR100のバーチャルIPアドレスを設定します。ここではバーチャルIPアドレス10.100.100.32がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterA(config-router)# virtual-ip 10.100.100.32 backup
- priorityコマンドでVR100における優先度を設定します。こちらをデフォルトのマスタールーターにするため、優先度を初期値の100よりも高い101に設定します。
RouterA(config-router)# priority 101
- circuit-failoverコマンドを用いて、vlan200(VR200)がダウンした場合にvlan100側(VRID=100)の優先度を引き下げ、ルーターBがマスタールーターになるよう設定します。
RouterA(config-router)# circuit-failover vlan200 2
- enableコマンドを実行してVR100の動作を有効化します。これでVR100の設定は完了です。exitコマンドでグローバルコンフィグモードに戻り、次にVR200の設定に移ります。
RouterA(config-router)# enable RouterA(config-router)# exit
- router vrrpコマンドを実行して、vlan200インターフェース上にVRID=200のバーチャルルーター(以下、VR200)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterA(config)# router vrrp 200 vlan200
- virtual-ipコマンドでVR200のバーチャルIPアドレスを設定します。ここではバーチャルIPアドレス10.100.200.32がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterA(config-router)# virtual-ip 10.100.200.32 backup
- priorityコマンドでVR200における優先度を設定します。こちらをデフォルトのマスタールーターにするため、優先度を初期値の100よりも高い101に設定します。
RouterA(config-router)# priority 101
- circuit-failoverコマンドを用いて、vlan100(VR100)がダウンした場合にvlan200側(VR200)の優先度を引き下げ、ルーターBがマスタールーターになるよう設定します。
RouterA(config-router)# circuit-failover vlan100 2
- enableコマンドを実行してVR200の動作を有効化します。
RouterA(config-router)# enable
ルーターB
- VRRPの動作に必要なVRRPサービスを有効にします。これにはservice vrrpコマンドを使います。
RouterB(config)# service vrrp
- router vrrpコマンドを実行して、vlan100インターフェース上にVRID=100のバーチャルルーター(以下、VR100)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterB(config)# router vrrp 100 vlan100
- virtual-ipコマンドでVR100のバーチャルIPアドレスを設定します。ここではバーチャルIPアドレス10.100.100.32がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterB(config-router)# virtual-ip 10.100.100.32 backup
- priorityコマンドでVR100における優先度を設定します。こちらをデフォルトのバックアップルーターにするため、優先度は初期値100のままとします。
RouterB(config-router)# priority 100
- enableコマンドを実行してVR100の動作を有効化します。これでVR100の設定は完了です。exitコマンドでグローバルコンフィグモードに戻り、次にVR200の設定に移ります。
RouterB(config-router)# enable RouterB(config-router)# exit
- router vrrpコマンドを実行して、vlan200インターフェース上にVRID=200のバーチャルルーター(以下、VR200)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterB(config)# router vrrp 200 vlan200
- virtual-ipコマンドでVR200のバーチャルIPアドレスを設定します。ここではバーチャルIPアドレス10.100.200.32がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterB(config-router)# virtual-ip 10.100.200.32 backup
- priorityコマンドでVR200における優先度を設定します。こちらをデフォルトのバックアップルーターにするため、優先度は初期値100のままとします。
RouterB(config-router)# priority 100
- enableコマンドを実行してVR200の動作を有効化します。
RouterB(config-router)# enable
基本設定は以上です。
LAN上の各IPv4ホストには、デフォルトゲートウェイとして、バーチャルルーターのIPアドレス(バーチャルIPアドレス)を設定します。通常時には、ルーターAがマスタールーターとして機能し、VLAN間のトラフィックを転送します。ルーターAのインターフェースのどちらか(vlan100、vlan200)がリンクダウンした場合は、ルーターBがマスタールーターとなりバーチャルルーターとしての役割を引き継ぎます。このとき、バーチャルルーターのIPアドレスとMACアドレスは変化しないため、LAN上のホストがルーターの切り替えを意識することはありません。
IPv6
ここでは、次のようなネットワーク構成を例にIPv6用のVRRP設定手順を示します。
この例では通常ルーターAが使用されますが、ルーターAが故障すると、同ルーターが定期的に送信しているVRRP AdvertisementパケットをルーターBが受信できなくなります。この場合、ルーターBはルーターAがダウンしたものと見なしてバックアップルーターからマスタールーターに移行し、両方のセグメントに対するデフォルトゲートウェイアドレスを引き継ぎます。ルーターAが復旧すると、ルーターBは元のバックアップルーターに戻ります。
なお、以下の各例では、VLANの作成とIPv6アドレスの設定は完了しているものとします。VLANの設定については、「L2スイッチング」の「バーチャルLAN」をご覧ください。IPv6アドレスの設定については、「IPv6」の「IPv6インターフェース」をご覧ください。
ルーターA
- VRRPの動作に必要なVRRPサービスを有効にします。これにはservice vrrpコマンドを使います。
RouterA(config)# service vrrp
- router ipv6 vrrpコマンドを実行して、vlan100インターフェース上にVRID=100のバーチャルルーター(以下、VR100)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterA(config)# router ipv6 vrrp 100 vlan100
- virtual-ipv6コマンドでVR100のバーチャルIPv6アドレスを設定します。ここではバーチャルIPv6アドレス fe80::1 がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterA(config-router)# virtual-ipv6 fe80::1 backup
- priorityコマンドでVR100における優先度を設定します。こちらをデフォルトのマスタールーターにするため、優先度を初期値の100よりも高い101に設定します。
RouterA(config-router)# priority 101
- circuit-failoverコマンドを用いて、vlan200(VR200)がダウンした場合にvlan100側(VRID=100)の優先度を引き下げ、ルーターBがマスタールーターになるよう設定します。
RouterA(config-router)# circuit-failover vlan200 2
- enableコマンドを実行してVR100の動作を有効化します。これでVR100の設定は完了です。exitコマンドでグローバルコンフィグモードに戻り、次にVR200の設定に移ります。
RouterA(config-router)# enable RouterA(config-router)# exit
- router ipv6 vrrpコマンドを実行して、vlan200インターフェース上にVRID=200のバーチャルルーター(以下、VR200)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterA(config)# router ipv6 vrrp 200 vlan200
- virtual-ipv6コマンドでVR200のバーチャルIPv6アドレスを設定します。ここではバーチャルIPアドレス fe80::1 がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterA(config-router)# virtual-ipv6 fe80::1 backup
- priorityコマンドでVR200における優先度を設定します。こちらをデフォルトのマスタールーターにするため、優先度を初期値の100よりも高い101に設定します。
RouterA(config-router)# priority 101
- circuit-failoverコマンドを用いて、vlan100(VR100)がダウンした場合にvlan200側(VR200)の優先度を引き下げ、ルーターBがマスタールーターになるよう設定します。
RouterA(config-router)# circuit-failover vlan100 2
- enableコマンドを実行してVR200の動作を有効化します。
RouterA(config-router)# enable
ルーターB
- VRRPの動作に必要なVRRPサービスを有効にします。これにはservice vrrpコマンドを使います。
RouterB(config)# service vrrp
- router ipv6 vrrpコマンドを実行して、vlan100インターフェース上にVRID=100のバーチャルルーター(以下、VR100)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterB(config)# router ipv6 vrrp 100 vlan100
- virtual-ipv6コマンドでVR100のバーチャルIPv6アドレスを設定します。ここではバーチャルIPv6アドレス fe80::1 がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterB(config-router)# virtual-ipv6 fe80::1 backup
- priorityコマンドでVR100における優先度を設定します。こちらをデフォルトのバックアップルーターにするため、優先度は初期値100のままとします。
RouterB(config-router)# priority 100
- enableコマンドを実行してVR100の動作を有効化します。これでVR100の設定は完了です。exitコマンドでグローバルコンフィグモードに戻り、次にVR200の設定に移ります。
RouterB(config-router)# enable RouterB(config-router)# exit
- router ipv6 vrrpコマンドを実行して、vlan200インターフェース上にVRID=200のバーチャルルーター(以下、VR200)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterB(config)# router ipv6 vrrp 200 vlan200
- virtual-ipv6コマンドでVR200のバーチャルIPv6アドレスを設定します。ここではバーチャルIPv6アドレス fe80::1 がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterB(config-router)# virtual-ipv6 fe80::1 backup
- priorityコマンドでVR200における優先度を設定します。こちらをデフォルトのバックアップルーターにするため、優先度は初期値100のままとします。
RouterB(config-router)# priority 100
- enableコマンドを実行してVR200の動作を有効化します。
RouterB(config-router)# enable
基本設定は以上です。
LAN上の各IPv6ホストには、デフォルトゲートウェイとして、バーチャルルーターのIPv6リンクローカルアドレス(バーチャルIPv6アドレス)を設定します。通常時には、ルーターAがマスタールーターとして機能し、VLAN間のトラフィックを転送します。ルーターAのインターフェースのどちらか(vlan100、vlan200)がリンクダウンした場合は、ルーターBがマスタールーターとなりバーチャルルーターとしての役割を引き継ぎます。このとき、バーチャルルーターのIPv6リンクローカルアドレスとMACアドレスは変化しないため、LAN上のホストがルーターの切り替えを意識することはありません。
バイパスポートを利用した冗長構成(HAモードVRRP)
AT-AR4050S、AT-AR3050Sは、2つのWANポート(10/100/1000BASE-T)のそれぞれに対して、1系統ずつバイパスポートを備えています。バイパスポートを利用した冗長構成を組むには、VRRPの設定を行い、HA(High Availability)モードを有効にする必要があります。
以下、実現可能な冗長構成と設定方法を説明します。
1本のWAN回線を2台のルーターで冗長化
ここでは、次のようなネットワーク構成を例にHAモードVRRPの基本的設定手順を示します。- ルーターA:WAN回線に直接接続している。自身のバイパスポートの制御を行い、必要に応じてWAN接続をルーターBにリレーする
- ルーターB:ルーターAのバイパスポート経由で間接的にWAN回線に接続している。自身のバイパスポートの制御は行わない

この構成における、バーチャルルーターVRID=10(vlan10)の初期状態は次のとおりです。
このとき、ルーターAのHA LEDは橙色に点灯、ルーターBのHA LEDは緑色に点灯します。
- ルーターA = バックアップ(優先度100)
バイパスポート経由でルーターBにWAN接続をリレーする。vlan10のデフォルトゲートウェイとしては動作しない
- ルーターB = マスター(優先度101)
バイパスポート経由でWAN接続し、vlan10のデフォルトゲートウェイとして動作する。
circuit-failoverによりバイパスポートと接続されているWANポートを監視し、同ポートがリンクダウンした場合は優先度を引き下げる
この状態から各種障害が発生した場合の動作は次のとおりです。
- ルーターBのLAN側の接続に障害が発生した場合
ルーターAは、ルーターBからVRRP Advertisementパケットを受信できなくなったことで障害を検知し、マスタールーターに移行して、WANへの接続性を維持します。
同時に、WANポートとバイパスポートのリレーを無効化します。これによりルーターBはWANポートのリンクダウンを検出して自身の優先度をルーターAよりも引き下げます。
この場合、ルーターA のHA LEDは緑色に点灯、ルーターBのHA LEDは橙色に点滅します。
ルーターBのLAN接続が復旧した場合、優先度がルーターAよりも低くなっているルーターBはバックアップルーターとして復帰します。
- ルーターBに障害が発生した場合
再起動、リセット、電源オフなどによってルーターBの機能が停止した場合、ルーターBのLAN側の接続に障害が発生したときと同様に、ルーターAはマスタールーターに移行して、WANへの接続性を維持します。
同時に、WANポートとバイパスポートのリレーを無効化します。
ルーターBは機能回復にともないWANポートのリンクダウンを検出して自身の優先度をルーターAよりも引き下げるため、バックアップルーターとして復帰します。
- ルーターAのLAN側の接続に障害が発生した場合
ルーターAからルーターBへのWAN接続のバイパスは維持されます。
- ルーターAに障害が発生した場合
WANポートとバイパスポートがともに接続されている場合、リレーはデフォルトで有効になります。
再起動、リセット、電源オフなどによってルーターA自体の機能が停止しても、ルーターAからルーターBへのWAN接続のバイパスは維持されます。
ルーターAの機能が復旧した場合は、ルーターBに障害が発生していない限り、バックアップルーターとして待機状態に戻ります。
- WAN側の接続に障害が発生した場合
ルーターAのWANポートの接続に障害が発生した場合、この構成による冗長化はできません。
障害箇所がルーターBのWANポートとルーターAのバイパスポートの間にある場合は、circuit-failoverの設定によりマスタールーターをルーターBからルーターAに移行させることが可能です。ただし、移行にともないルーターBはWANポートのリンクダウンを検出して自身の優先度をルーターAよりも引き下げるため、障害箇所が復旧してもルーターBはバックアップルーターのままとなります。
以下の設定例では、VLANやIPアドレスの設定は完了しているものとします。VLANの設定については、「L2スイッチング」の「バーチャルLAN」をご覧ください。IPアドレスの設定については、「IP」の「IPインターフェース」をご覧ください。
ルーターA
- VRRPの動作に必要なVRRPサービスを有効にします。これにはservice vrrpコマンドを使います。
RouterA(config)# service vrrp
- router vrrpコマンドを実行して、vlan10インターフェース上にVRID=10のバーチャルルーター(以下、VR10)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterA(config)# router vrrp 10 vlan10
- virtual-ipコマンドでVR10のバーチャルIPアドレスを設定します。ここではバーチャルIPアドレス192.168.10.32がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterA(config-router)# virtual-ip 192.168.10.32 backup
- priorityコマンドでVR10における優先度を設定します。こちらをデフォルトのバックアップルーターにするため、優先度は初期値100のままとします。
RouterA(config-router)# priority 100
- ha associateコマンドでHAモードを有効にし、WANポート(eth1)に対応するバイパスポート「1」のリレー制御を有効にします。
RouterA(config-router)# ha associate wan-bypass 1
- enableコマンドを実行してVR10の動作を有効化します。これでVR10の設定は完了です。
RouterA(config-router)# enable
ルーターB
- VRRPの動作に必要なVRRPサービスを有効にします。これにはservice vrrpコマンドを使います。
RouterB(config)# service vrrp
- router vrrpコマンドを実行して、vlan10インターフェース上にVRID=10のバーチャルルーター(以下、VR10)を作成し、該当バーチャルルーターの設定を行うためのVRRPモードに移行します。
RouterB(config)# router vrrp 10 vlan10
- virtual-ipコマンドでVR10のバーチャルIPアドレスを設定します。ここではバーチャルIPアドレス192.168.10.32がインターフェースの実アドレスではないので、キーワードbackupを指定します。
RouterB(config-router)# virtual-ip 192.168.10.32 backup
- priorityコマンドでVR10における優先度を設定します。こちらをデフォルトのマスタールーターにするため、優先度を初期値の100よりも高い101に設定します。
RouterB(config-router)# priority 101
- ha associateコマンドでHAモードを有効にします。ルーターBではバイパスポートのリレー制御を行う必要がないため、wan-bypassパラメーターは不要です。
RouterB(config-router)# ha associate
- circuit-failoverコマンドを用いて、ルーターAのバイパスポート1と接続している自身のWANポート(eth1)がリンクダウンしたときにVR10の優先度を引き下げ、ルーターAがマスタールーターになるよう設定します。
RouterB(config-router)# circuit-failover eth1 2
- enableコマンドを実行してVR10の動作を有効化します。これでVR10の設定は完了です。
RouterB(config-router)# enable
基本設定は以上です。
2本のWAN回線を2台のルーターで冗長化(対称型)
WAN回線を2本用いた、より高度な冗長構成については、設定例集をご覧ください。バイパスポートのリレー状態
バイパスポートのリレーには、次の2つの状態があります。- リレーが有効 - WANポートとバイパスポートが接続された状態
- リレーが無効 - WANポートとバイパスポートが接続されていない状態
以下に、バイパスポートのリレーが有効・無効になる条件をまとめます。
- 電源オフ時と起動中(再起動中)は、設定内容にかかわらず、
→ 全バイパスポートのリレーが有効
- HAモードVRRPを設定していない場合
- wan-bypassコマンド未設定時
→ 該当バイパスポートのリレーが無効
- wan-bypassコマンド設定時
→ 該当バイパスポートのリレーが有効
- wan-bypassコマンド未設定時
- HAモードVRRPが有効でバイパスポート制御を有効にしていない場合(ha associateでwan-bypassを指定していない場合)
→ 全バイパスポートのリレーが無効
- HAモードVRRPが有効でバイパスポート制御を有効にしている場合(ha associateでwan-bypassを指定している場合)、
該当バイパスポートのリレーはVRRPの状態と連動する。
- マスタールーター時
→ 該当バイパスポートのリレーが無効
- 非マスタールーター時
→ 該当バイパスポートのリレーが有効
- マスタールーター時