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

# VRRP/概要・基本設定

      - プロトコル概要
      - 基本設定
      - トリガー

VRRP（Virtual Router Redundancy Protocol）は、複数のルーターをグループ化し、あたかも1台のルーターであるかのように見せかけることで、IPネットワークに冗長性を与えるプロトコルです。

プロトコル概要

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

- 同一ネットワーク上にある複数のルーターをグループ化し、1台のように見せかける。このグループ全体をバーチャルルーター（VR = Virtual Router）と呼ぶ。
- バーチャルルーターを構成する各ルーターは次のものを共有し、互いに連携して動作する。
  - VRID: バーチャルルーターを識別するための番号（0〜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は元のバックアップルーターに戻ります。
ルーターAの設定

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

   `ENABLE IP ↓
   ADD IP INT=eth0 IP=192.168.1.100 ↓
   ADD IP INT=vlan1 IP=192.168.2.100 ↓
   `
2. VRRPを有効にします。

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

   `CREATE VRRP=1 OVER=eth0 IP=192.168.1.1 PRIORITY=101 ↓`
4. vlan1にVRID=2を割り当てます。バーチャルIPアドレスは192.168.2.1とします。こちらをデフォルトのマスタールーターにするため、優先度をデフォルトの 100 よりも高い 101 に設定します。

   `CREATE VRRP=2 OVER=vlan1 IP=192.168.2.1 PRIORITY=101 ↓`
5. vlan1がダウンした場合に eth0側（VRID=1）の優先度を 99 に下げ、ルーターBがマスタールーターになるよう設定します。

   `ADD VRRP=1 MONITOREDINTERFACE=vlan1 NEWPRIORITY=99 ↓`
6. eth0がダウンした場合に vlan1側（VRID=2）の優先度を 99 に下げ、ルーターBがマスタールーターになるよう設定します。

   `ADD VRRP=2 MONITOREDINTERFACE=eth0 NEWPRIORITY=99 ↓`

ルーターBの設定

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

   `ENABLE IP ↓
   ADD IP INT=eth0 IP=192.168.1.2 ↓
   ADD IP INT=vlan1 IP=192.168.2.2 ↓
   `
2. VRRPを有効にします。

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

   `CREATE VRRP=1 OVER=eth0 IP=192.168.1.1 ↓`
4. vlan1にVRID=2を割り当てます。バーチャルIPアドレスは192.168.2.1とします。優先度はデフォルト値の 100 とします。

   `CREATE VRRP=2 OVER=vlan1 IP=192.168.2.1 ↓`

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

トリガー

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) 2005-2012 アライドテレシスホールディングス株式会社

PN: J613-M0710-03 Rev.H