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
