keepalivedでIPアドレスの冗長化

Linux

サーバ冗長化のためkeepalivedを導入した。
iptablesのLinuxファイアウォール、SquidのProxyサーバを冗長化した。
サービス監視した細かい切り替え条件も設定できるみたいだけど、今回はシンプルなVRRPのみ。

iptablesでVRRPが通るように設定
sudo cp -a /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.$(date '+%Y%m%dH%M%S')
sudo vi /etc/keepalived/keepalived.conf
+++
-A INPUT -m state --state NEW -p vrrp -d 224.0.0.18 -j ACCEPT
-A OUTPUT -m state --state NEW -p vrrp -d 224.0.0.18 -j ACCEPT
+++
sudo systemctl restart iptables
keepalivedのインストール
sudo yum -y install keepalived
sudo cp -a /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.$(date '+%Y%m%d%H%M%S')
server101 アクティブ側
sudo tee /etc/keepalived/keepalived.conf << 'EOF'
 vrrp_instance VI_1 {
     state MASTER
     interface eth0
     virtual_router_id 51
     priority 255
     advert_int 1
     virtual_ipaddress {
         192.168.0.1/24
     }
 }
 EOF
server201 バックアップ側
sudo tee /etc/keepalived/keepalived.conf << 'EOF'
 vrrp_instance VI_1 {
     state BACKUP
     interface eth0
     virtual_router_id 51
     priority 254
     advert_int 1
     virtual_ipaddress {
         172.31.160.1/24
     }
 }
 EOF

priorityは高いほうが優先される。
MASTERを255、BACKUPを254(-1)にした。
virtual_router_idはserver101とserver201は同じにした。
virtual_router_idは衝突しないようにファイアウォールは51、Proxyは61に設定した。

keepalivedの開始
sudo systemctl start keepalived
sudo systemctl enable keepalived

server101にサブIPアドレスが割り当てられていること、server201にサブIPアドレスが割り当てられていないことを確認する。

ip addr show dev eth0

両方でサブIPアドレスが割り当てしまっている場合は、VRRPが通っていないのでiptablesなどをチェッすること。

sudo tcpdump -nn -i eth0 vrrp

タイトルとURLをコピーしました