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