Keepalived

LinuxでVRRPを喋る時に利用するプログラム。
非常に細かい制御が可能で、特定プロセスのトラッキング、ユニキャストVRRPも実装出来る。
また、VRRPv3に対応しているので、実行プロトコルを変更すればIPv6でVRRPも可能。
 
単独で利用する事は少なく、ロードバランサー(HAProxy、UltraMonkey)と組み合わせたり、
リバースプロキシ自体の冗長化として使う場合が多い。


インストール

上記のオフィシャルにソースコードが置いてあるので、
Linuxにダウンロードして通常通りにビルドする。

# tar zxvf keepalived-1.3.5.tar.gz
# cd keepalived-1.3.5
# ./configure --prefix=/usr/local/keepalived-1.3.5
# make && make install
# cd /usr/local
# ln -s /usr/local/keepalived-1.3.5 keepalived

 
また、面倒な場合はパッケージ管理で導入する事も可能。

# yum install keepalived


設定

今回は下記構成例を作成する。
前述した通り、中身はVRRPなので詳細はVRRPのRFCを見れば大体わかる。
今回は敢えてNICを分割し、それぞれでVRRPv2とVRRPv3を喋る構成だが、
デュアルスタックなどの場合はVRRPv3で設定を一纏めにする事も可能。
 
・IPアドレス、NIC情報

NICVRID仮想IPサーバ1(Backup)サーバ2(Master)
eth01010.0.0.25410.0.0.110.0.0.2
eth180fe80::10:0:0:254fe80::10:0:0:1fe80::10:0:0:2

 
・オプション定義

  1. HAProxyのプロセスをtrack対象とする
  2. 平文でVRRPの認証を行う
  3. VRRP切り替え時のメール送信は行わない
  4. 自動切り戻し(preempt)を有効にする
  5. パケット効率化の為にユニキャストVRRPを利用する
  6. プライオリティは「サーバ1:1/サーバ2:2」とする

 
・実コンフィグ

 サーバ1(Backup)
 サーバ2(Master)