[index] CentreCOM 8948XL コマンドリファレンス 2.9

# VRRP/概要・基本設定

      - プロトコル概要
      - 基本設定
      - OSPFと組み合わせた設定
      - トリガー

VRRP（Virtual Router Redundancy Protocol）は、複数のルーター（レイヤー3スイッチ。本章では以下適宜「ルーター」とします）をグループ化し、あたかも1台のルーターであるかのように見せかけることで、IPネットワークに冗長性を与えるプロトコルです。

> Note - マルチホーミングとVRRPは併用できません。

> Note - プロキシーARPとVRRPは併用できません。

> Note - ポート認証（Authenticator）とVRRPは併用できません。

> Note - ポートセキュリティーとVRRPの併用は可能ですが、VRRPパケットを送受信するポートではポートセキュリティーを有効にしないでください。有効にすると、VRRPが正しく動作しないことがあります。

プロトコル概要

VRRPの基本的な考え方は次のとおりです。

- 同一ネットワーク上にある複数のルーターをグループ化し、1台のように見せかける。このグループ全体をバーチャルルーター（VR = Virtual Router）と呼ぶ。
- バーチャルルーターを構成する各ルーターは次のものを共有し、互いに連携して動作する。
  - VRID: バーチャルルーターを識別するための番号（1〜255）。
  - バーチャルMACアドレス: バーチャルルーターへのARP要求に対して返されるMACアドレス。VRIDから導出される。
  - バーチャルIPアドレス（プライマリーIPアドレス）: バーチャルルーターのIPアドレス。クライアントホストには、このIPアドレスをデフォルトゲートウェイとして設定する。
- バーチャルルーターを構成する各ルーターは、1〜255の優先度を持つ。バーチャルIPアドレスと物理インターフェースのIPアドレスが一致している場合、そのルーターの優先度は自動的に最高値の255となる（preferred master）。それ以外のルーターには、1〜254の優先度を設定する（デフォルトは100）。
- バーチャルルーターは、マスタールーター1台と、バックアップルーター1台以上から構成される。バーチャルルーター内でもっとも高い優先度を持つルーターがマスタールーターとなる。
- マスタールーターは、バーチャルIPアドレスとバーチャルMACアドレスを使い、実際にルーターとしての動作を行う。また、VRRP Advertisementパケットをマルチキャストグループアドレス224.0.0.18宛てに定期的に送信し、自らの健在をバックアップルーターに知らせる。また、自分より高い優先度を持つAdvertisementパケットを受信した場合は、バックアップルーターに移行する。
- バックアップルーターは、ルーターとしての動作は行わずに、Advertisementパケットを監視している。バックアップルーターは、Advertisementパケットが途絶えるとマスタールーターに障害が発生したものと見なし、新しいマスタールーターの選出プロセスに入る。

基本設定

次に、実際に2台のルーター（スイッチ）を用いてIPネットワークに冗長性を持たせるための設定方法を示します。ここでは、次のようなネットワーク構成を例に解説します。

この例では通常スイッチAが使用されますが、スイッチAが故障すると、同スイッチが定期的に送信しているVRRP AdvertisementパケットをスイッチBが受信できなくなります。この場合、スイッチBはスイッチAがダウンしたものと見なしてバックアップルーターからマスタールーターに移行し、両方のセグメントに対するデフォルトゲートウェイアドレスを引き継ぎます。スイッチAが復旧すると、スイッチBは元のバックアップルーターに戻ります。
以下の例では、VLANの設定までは完了しているものとします。
スイッチAの設定

1. IPモジュールを有効にし、各VLANインターフェースにIPアドレスを割り当てます。

   `ENABLE IP ↓
   ADD IP INT=vlan-red IP=192.168.10.100 ↓
   ADD IP INT=vlan-green IP=192.168.20.100 ↓
   `
2. VRRPを有効にします。

   `ENABLE VRRP ↓`
3. VLAN-redにVRID=10を割り当てます。バーチャルIPアドレスは192.168.10.1とします。こちらをデフォルトのマスタールーターにするため、優先度をデフォルトの 100 よりも高い 101 に設定します。

   `CREATE VRRP=10 OVER=vlan-red IP=192.168.10.1 PRIORITY=101 ↓`
4. VLAN-greenにVRID=20を割り当てます。バーチャルIPアドレスは192.168.20.1とします。こちらをデフォルトのマスタールーターにするため、優先度をデフォルトの 100 よりも高い 101 に設定します。

   `CREATE VRRP=20 OVER=vlan-green IP=192.168.20.1 PRIORITY=101 ↓`
5. VLAN-greenがダウンした場合に VLAN-red側（VRID=10）の優先度を 99 に下げ、スイッチBがマスタールーターになるよう設定します。

   `ADD VRRP=10 MONITOREDINTERFACE=VLAN-green NEWPRIORITY=99 ↓`
6. VLAN-redがダウンした場合に VLAN-green側（VRID=20）の優先度を 99 に下げ、スイッチBがマスタールーターになるよう設定します。

   `ADD VRRP=20 MONITOREDINTERFACE=vlan-red NEWPRIORITY=99 ↓`

スイッチBの設定

1. IPモジュールを有効にし、各VLANインターフェースにIPアドレスを割り当てます。

   `ENABLE IP ↓
   ADD IP INT=vlan-red IP=192.168.10.2 ↓
   ADD IP INT=vlan-green IP=192.168.20.2 ↓
   `
2. VRRPを有効にします。

   `ENABLE VRRP ↓`
3. VLAN-redにVRID=10を割り当てます。バーチャルIPアドレスは192.168.10.1とします。優先度はデフォルト値の 100 とします。

   `CREATE VRRP=10 OVER=vlan-red IP=192.168.10.1 ↓`
4. VLAN-greenにVRID=20を割り当てます。バーチャルIPアドレスは192.168.20.1とします。優先度はデフォルト値の 100 とします。

   `CREATE VRRP=20 OVER=vlan-green IP=192.168.20.1 ↓`

基本設定は以上です。
LAN上の各ホストには、デフォルトゲートウェイとして、バーチャルルーターのIPアドレスを設定します。通常時には、スイッチAがマスタールーターとして機能し、VLAN間のトラフィックを転送します。スイッチAのインターフェースのどちらか（VLAN-red、VLAN-green）がリンクダウンした場合は、スイッチBがマスタールーターとなりバーチャルルーターとしての役割を引き継ぎます。このとき、バーチャルルーターのIPアドレスとMACアドレスは変化しないため、LAN上のホストがルーターの切り替えを意識することはありません。

> Note - VLANインターフェースは、所属ポートがすべてリンクダウンして初めて「リンクダウン」状態になります。一方、VLAN所属ポートが1ポートでもリンクアップすれば、該当VLANインターフェースは「リンクアップ」状態になります。VRRPでは、VLANインターフェースのリンクアップ、リンクダウンを検出してマスタールーターを切り替えるため、VLAN所属ポートの設定に注意してください。上図のように、マスター、スレーブともVLAN所属ポートを1ポートのみとし、レイヤー2スイッチを介してクライアントや他のルーターと接続すると、確実にリンクダウンを検出させることができます。

OSPFと組み合わせた設定

次に、OSPFとVRRPを組み合わせてIPネットワークに冗長性を持たせるための設定方法を示します。

ここでは、スイッチAとスイッチBのVLAN-green側インターフェースでVRRPを使用することにより、VLAN-green（192.168.10.0/24）上のIPホストに対し、デフォルトゲートウェイの冗長構成を提供します。
スイッチAの優先度をスイッチBよりも高く設定しておくことにより、通常はスイッチAがマスタールーターとしてVLAN-greenからVLAN-bboneへのルーティングを担当します。
万一スイッチAが故障するか、スイッチAのVLAN-green側インターフェースがリンクダウンした場合は、同スイッチが定期的に送信しているVRRP AdvertisementパケットをスイッチBが受信できなくなります。この場合、スイッチBはスイッチAがダウンしたものと見なしてバックアップルーターからマスタールーターに移行し、VLAN-green上のデフォルトゲートウェイとしての役割を引き継ぎます。スイッチAが復旧すると、スイッチBは元のバックアップルーターに戻ります。
また、スイッチAのVLAN-bbone側インターフェースに障害が発生した場合は、スイッチAが自分のVRRP優先度を引き下げ、スイッチBがVLAN-green上のマスタールーターになるようにします（インターフェース監視機能）。
なお、VLAN-bbone（192.168.5.0/24）にはルーター（スイッチ）だけが接続されているものとし、各ルーターはOSPFを使って経路情報を動的に交換しているものと仮定します。VLAN-bbone上での経路の冗長化は、ダイナミックルーティングプロトコル（OSPF）によって実現しているものとします。
以下の例では、VLANの設定までは完了しているものとします。
スイッチAの設定

1. IPモジュールを有効にし、各VLANインターフェースにIPアドレスを割り当てます。

   `ENABLE IP ↓
   ADD IP INT=vlan-bbone IP=192.168.5.1 ↓
   ADD IP INT=vlan-green IP=192.168.10.100 ↓
   `
2. VRRPを有効にします。

   `ENABLE VRRP ↓`
3. VLAN-greenにVRID=10を割り当てます。バーチャルIPアドレスは192.168.10.1とします。こちらをデフォルトのマスタールーターにするため、優先度をデフォルトの 100 よりも高い 101 に設定します。

   `CREATE VRRP=10 OVER=vlan-green IP=192.168.10.1 PRIORITY=101 ↓`
4. VLAN-bboneがダウンした場合に VLAN-green側（VRID=10）の優先度を 99 に下げ、スイッチBがマスタールーターになるよう設定します。

   `ADD VRRP=10 MONITOREDINTERFACE=VLAN-bbone NEWPRIORITY=99 ↓`
5. 以下はVLAN-bbone側におけるOSPFの設定です。詳細は「IP」/「経路制御（OSPF）」をご覧ください。
   - OSPFのルーターIDを設定します。

     `SET OSPF ROUTERID=0.0.0.1 ↓`
   - バックボーンエリア（0.0.0.0）を作成します。

     `ADD OSPF AREA=0.0.0.0 ↓`
   - バックボーンエリアに所属するIPアドレスの範囲を設定します。ここでは直接接続されているネットワークの範囲だけを指定します。

     `ADD OSPF RANGE=192.168.5.0 MASK=255.255.255.0 AREA=0.0.0.0 ↓
     ADD OSPF RANGE=192.168.10.0 MASK=255.255.255.0 AREA=0.0.0.0 ↓
     `
   - OSPFを動作させるIPインターフェース（VLAN）を指定します。

     `ADD OSPF INTERFACE=VLAN-bbone AREA=0.0.0.0 ↓
     ADD OSPF INTERFACE=VLAN-green AREA=0.0.0.0 ↓
     `
   - OSPFを有効にします。

     `ENABLE OSPF ↓`

スイッチBの設定

1. IPモジュールを有効にし、各VLANインターフェースにIPアドレスを割り当てます。

   `ENABLE IP ↓
   ADD IP INT=vlan-bbone IP=192.168.5.2 ↓
   ADD IP INT=vlan-green IP=192.168.10.2 ↓
   `
2. VRRPを有効にします。

   `ENABLE VRRP ↓`
3. VLAN-greenにVRID=10を割り当てます。バーチャルIPアドレスは192.168.10.1とします。優先度はデフォルト値の 100 とします。

   `CREATE VRRP=10 OVER=vlan-green IP=192.168.10.1 ↓`
4. 以下はVLAN-bbone側におけるOSPFの設定です。詳細は「IP」/「経路制御（OSPF）」をご覧ください。
   - OSPFのルーターIDを設定します。

     `SET OSPF ROUTERID=0.0.0.2 ↓`
   - バックボーンエリア（0.0.0.0）を作成します。

     `ADD OSPF AREA=0.0.0.0 ↓`
   - バックボーンエリアに所属するIPアドレスの範囲を設定します。ここでは直接接続されているネットワークの範囲だけを指定します。

     `ADD OSPF RANGE=192.168.5.0 MASK=255.255.255.0 AREA=0.0.0.0 ↓
     ADD OSPF RANGE=192.168.10.0 MASK=255.255.255.0 AREA=0.0.0.0 ↓
     `
   - OSPFを動作させるIPインターフェース（VLAN）を指定します。

     `ADD OSPF INTERFACE=VLAN-bbone AREA=0.0.0.0 ↓
     ADD OSPF INTERFACE=VLAN-green AREA=0.0.0.0 ↓
     `
   - OSPFを有効にします。

     `ENABLE OSPF ↓`

基本設定は以上です。
VLAN-green上の各ホストには、デフォルトゲートウェイとして、バーチャルIPアドレス192.168.10.1を設定します。通常時には、スイッチAがマスタールーターとして機能し、VLAN-greenからVLAN-bboneへ向かうトラフィックを転送します。スイッチAのインターフェースのどちらか（VLAN-green、VLAN-bbone）がダウンした場合は、スイッチBがマスタールーターとなりバーチャルルーターとしての役割を引き継ぎます。このとき、バーチャルルーターのIPアドレスとMACアドレスは変化しないため、VLAN-green上のホストがルーターの切り替えを意識することはありません。

> Note - VLANインターフェースは、所属ポートがすべてリンクダウンして初めて「リンクダウン」状態になります。一方、VLAN所属ポートが1ポートでもリンクアップすれば、該当VLANインターフェースは「リンクアップ」状態になります。VRRPでは、VLANインターフェースのリンクアップ、リンクダウンを検出してマスタールーターを切り替えるため、VLAN所属ポートの設定に注意してください。上図のように、マスター、スレーブともVLAN所属ポートを1ポートのみとし、レイヤー2スイッチを介してクライアントや他のルーターと接続すると、確実にリンクダウンを検出させることができます。

トリガー

VRRPモジュールは、2つのトリガーイベントを発生させます。これらのイベントは、モジュールトリガーを利用して捕捉できます。
CREATE TRIGGER MODULEコマンド、SET TRIGGER MODULEコマンドに、VRRPモジュール固有のパラメーターを加えたコマンド構文は次のようになります。

`CREATE TRIGGER=trigger-id MODULE=VRRP EVENT={DOWNMASTER|UPMASTER} VRID=vr-identifier [AFTER=time] [BEFORE=time] [{DATE=date|DAYS=day-list}] [NAME=string] [REPEAT={YES|NO|ONCE|FOREVER|count}] [SCRIPT=filename...] [STATE={ENABLED|DISABLED}] [TEST={YES|NO|ON|OFF}]
`

`SET TRIGGER=trigger-id VRID=vr-identifier [AFTER=time] [BEFORE=time] [{DATE=date|DAYS=day-list}] [NAME=string] [REPEAT={YES|NO|ONCE|FOREVER|count}] [TEST={YES|NO|ON|OFF}]
`

VRIDパラメーターには対象となるバーチャルルーターのID（VRID）を、EVENTパラメーターにはDOWNMASTER（バックアップに降格）かUPMASTER（マスターに昇格）のいずれかを指定します。VRIDの有効範囲は1〜255です。
このトリガーは、VRIDパラメーターで指定したバーチャルルーターがバックアップからマスターに昇格するか（EVENT=UPMASTERのとき）、マスターからバックアップに降格するか（EVENT=DOWNMASTERのとき）したときに起動されます。
DOWNMASTERイベントは、優先度255を持つルーター（preferred router）上でバーチャルルーターが無効にされたか削除された場合に発生します。また、255以外の優先度を持つマスタールーターが他のルーターに取って代わられた場合（バックアップルーターに移行した場合）にも本イベントが発生します。
UPMASTERイベントは、優先度255を持つルーター（preferred router）上でバーチャルルーターが有効にされたか、優先度255を持つバーチャルルーターが作成された場合に発生します。また、255以外の優先度を持つルーターがマスタールーターに昇格した場合にも本イベントが発生します。
トリガーから実行されるスクリプトには、特殊な引数として%D（日付）、%T（時刻）、%N（システム名）、%S（シリアル番号）が渡されます。また、引数%1としてバーチャルルーターID（VRID）も渡されます。
次にトリガーの例を示します。
■ 本筐体がバーチャルルーター「10」のマスタールーターになったら、スクリプト「bemaster.scp」を実行するモジュールトリガー「1」を作成します。

`CREATE TRIGGER=1 MODULE=VRRP EVENT=UPMASTER VRID=10 SCRIPT=bemaster.scp ↓`

(C) 2004 - 2008 アライドテレシスホールディングス株式会社

PN: J613-M0021-12 Rev.L