サーバ冗長化のため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

