ホットワード |
VRRP(vrrpd)でルータの冗長化 †AdsVRRPとは? †VRRP とはルータを冗長化するためのプロトコルでその詳細は RFC2338 で定義されています。 複数台のルータで、仮想IP*1を使いまわすことによってルータのダウンタイムを限りなく小さくします。 通常はマスタールータが仮想IPを持っていて、そのルータがなんらかの理由で死んでしまった時には他のルータがそれを検知して仮想IPを自分に付けることにより 全体としては落ちることなく動作し続けるように見えるということを実現するためのプロトコルです。 障害時に利用する経路を切り替えるといったことは OSPF のようなルーティングプロトコルを利用することで可能ですが、 VRRP を利用する場合は動的経路制御ができない環境*2でも冗長構成にすることが出来ます。 高級なハードウェアルータは VRRP 機能を持っているものがあります。 そして Linux や BSD でも VRRP が利用できるようです。 VRRP利用のポイント †基本的には以下の必須3点が決まればどのルータでも設定は簡単に出来るはず。
上記以外にオプショナルな設定として、以下の設定ができる。
これ以外に、ルータによっては、あるネットワークが落ちたとかPINGタイムアウトの検出等をトリガーとして積極的にマスターからバックアップに移行するということが出来たりもする。 これらの詳細を突っ込もうと思ったら各ルータのマニュアルを参照するべし。 RTシリーズやCentreCOM AR300/AR700 シリーズでは上述のようにトリガーを設定してマスターとバックアップを切り替えたりメールを送ったりすることが出来るみたい。 Linux VRRPd ではそういったことは出来ないようなのでやろうと思ったらスクリプト等を駆使して実現するしかなさそうです。 実践 †感想から言うと、VRRPってのは、どのプラットフォームでも驚くほどシンプルな設定で簡単に使えてしまうということが分かった。 以下、試してみたもののメモ。 とりあえずシンプルな使い方のみを書いておきます。 YAMAHA、RTシリーズ †ip コマンドで VRRP の設定を行う。
参考:http://www.rtpro.yamaha.co.jp/RT/docs/vrrp/vrrp.html Allied Telesis、CentreCOM AR300/AR700 シリーズ †ENABLE VRRP とCREATE VRRP コマンドで VRRP の設定が出来る。
Linux VRRPd †vrrpd は以下のURLから入手できます。 https://sourceforge.net/projects/vrrpd/ インストールは、make して出来た vrrpd を自分で /usr/sbin 等にコピーするだけです*5
仮想MACアドレスなんて一見魅力的な(?)機能があるにも関わらず、それを使わないことには理由があります。 Linux vrrpd では仮想MACを使わないようにしておかないと、default route が消えたり、いきなり通信が切れたりということが起きるようなので、 初めて vrrpd を試してみるときには -n を付けておいた方が無難です。 仮想MACなんて使わなくても VRRP のテストは問題なく行うことが出来るので、仮想MACアドレスを用いることの影響がちゃんと分かっている場合のみ利用したほうが良いと思います。 ところで vrrpd は完全にユーザランド(カーネル関係なし)で動くようなので、 vrrpd が動いているどのマシンで ifconfig してもそれらしいインターフェイスが見当たらず、パッと見、今誰が仮想IPを持っているか分かりません。 それを判断するには同じネットワーク上から、vrrpd が動いている全マシンの実IP全てと仮想IPに対して ping 等を打ち続け arp コマンドで仮想IPと同じMACアドレスを持つIPを確認する方法が考えられます。しかし当然仮想MACを使ってたらこの方法では分かりません。 Linux keepalived †最近は keepalived でVRRPするのが素敵らしい。 keepalived でググれば情報は沢山見つかるので詳細はそちら参照。 Freevrrpd †僕自身は BSD は使ったことは無いのですが、BSD にも VRRP の実装があるようなのでポインタだけメモ。 コメント † |
|