搭建keepalived遇到的問題
主機192.168.100.10
備機192.168.100.20
VIP192.168.100.30
一.防火牆開啟后雙機都是master。
在搭建之后開啟防火牆發現雙機日志都是MASTER
1 Aug 29 12:58:17 localhost Keepalived_vrrp[18365]: VRRP_Instance(VI_1) Transition to MASTER STATE 2 Aug 29 12:58:18 localhost Keepalived_vrrp[18365]: VRRP_Instance(VI_1) Entering MASTER STATE 3 Aug 29 12:58:18 localhost Keepalived_vrrp[18365]: VRRP_Instance(VI_1) setting protocol VIPs. 4 Aug 29 12:58:18 localhost Keepalived_vrrp[18365]: VRRP_Instance(VI_1) Sending gratuitous ARPs on em1 for 192.168.100.30 5 Aug 29 12:58:18 localhost Keepalived_healthcheckers[18364]: Netlink reflector reports IP 192.168.100.30 added 6 Aug 29 12:58:23 localhost Keepalived_vrrp[18365]: VRRP_Instance(VI_1) Sending gratuitous ARPs on em1 for 192.168.100.30
通過查看VRRP通信原理發現VRRP基於報文實現的。master設置一定時間發送一個報文給backup如果backup沒有收到就自己成為master。可推出導致問題的原因是因為backup沒有收到文
所以自己成為了master。
VRRP控制報文只有一種:VRRP通告(advertisement)。它使用IP多播數據包進行封裝,組地址為224.0.0.18,發布范圍只限於同一局域網內。這保證了VRID在不同網絡中可以重復使用。為了減少網絡帶寬消耗只有主控路由器才可以周期性的發送VRRP通告報文。備份路由器在連續三個通告間隔內收不到VRRP或收到優先級為0的通告后啟動新的一輪VRRP選舉。
1 vrrp_instance VI_1 { 2 state BACKUP 3 interface em1 4 virtual_router_id 51 5 priority 50 6 advert_int 1 #VRRP報文的發送間隔 7 authentication { 8 auth_type PASS 9 auth_pass admin 10 } 11 virtual_ipaddress { 12 192.168.100.30 dev em1 13 }
在iptables上設置。
1 vim /etc/sysconfig/iptables
2 添加-A INPUT -p vrrp -j ACCEPT