keepalivedとハードウェアルータでVRRPを構成する
VRRPはデフォルトゲートウェイの冗長化で多く使われています。LinuxのクラスタミドルであるkeepalivedもVRRPに対応しており、ハードウェアルータと組み合わせることができます。
今回はkeepalivedとIX2015でVRRPを構成してみました。といっても特殊な使い方をしているので、ネットワーク構成は参考にならないと思いますw
正常時はLinux Routerをデフォルトゲートウェイにします。Linux Routerに障害が発生した場合はIX2015がデフォルトゲートウェイになります。
本来はIX2015にルートをまとめる方が運用が簡単です。Gigabitでないことや内部トラフィックをIX2015に流さないことが理由でLinux Routerを経由させています。行き帰りのルートが違う時点でダメダメなんですが、今の持ち駒ではこれ以上難しい。。。余剰のノートPCをL3スイッチ代わりにしようかなー。
VRRPの仕組み
生きているルータのうち優先度の最も高いルータが仮想IPを持つようにします。仮想IPは大雑把にいうとNICにもう1つIPを振っているだけです。つまり、正常時はマスタルータのNICに仮想IPに振っておき、障害が発生した時はバックアップルータのNICに仮想IPを振り直すことになります。
ルータ間の死活確認にはマルチキャストを使います。
keepalived
Gentoo Linuxの場合は emerge sys-cluster/keepalived でインストールします。/etc/keepalived/keepalived.conf で設定します。
vrrp_instance VI_1 { state BACKUP interface bond0 virtual_router_id 1 priority 101 advert_int 1 authentication { auth_type PASS auth_pass ******** } virtual_ipaddress { 172.16.3.254/24 } }
IX2015
インタフェースに対してvrrpコマンドを適用します。
VRRPでバックアップルータになっている間もDHCPサーバは有効のままです。DHCPで通知するデフォルトゲートウェイやDNSサーバは仮想IPを指定しておきます。
ip dhcp profile homeNetwork assignable-range 172.16.3.180 172.16.3.199 domain-name *** default-gateway 172.16.3.254 dns-server 172.16.3.254 ! interface FastEthernet1/0:1.0 ip address 172.16.3.251/24 ip dhcp binding homeNetwork vrrp 1 ip 172.16.3.254 vrrp 1 ip virtual-host vrrp 1 authentication ******** vrrp 1 priority 100 no shutdown ! vrrp enable