一.现象sql
安装有keepalived的两节点服务器10.11.4.186/187,主要作高可用,设定VIP10.11.4.185。vim
查看10.11.4.187的日志发现,其上keepalived服务刚启动后不久就进入master模式,得到VIP;同时查看10.11.4.186的日志,并无任何异常。服务器
初步判断是两边的协商机制出问题(vrrp),10.11.4.187 backup节点与10.11.4.186 主节点协商不成功,认为主节点故障,切换升主。tcp
# 采用tcpdump抓包定位问题,如下是在10.11.4.186 主节点的抓包结果 [root@psql_master ~]# tcpdump -i eth0 vrrp -n
# 如下是在10.11.4.187 备节点的抓包结果 [root@psql_standby ~]# tcpdump -i eth0 vrrp -n
# 配置iptables,容许vrrp流量,或者容许组播流量 [root@psql_standby ~]# vim /etc/sysconfig/iptables -A INPUT -p vrrp -j ACCEPT # 或者:-A INPUT -m pkttype --pkt-type multicast -j ACCEPT # 重启iptables: [root@psql_standby ~]# service iptables restart
放开iptables策略后,tcpdump抓包发现:备节点10.11.4.187收到更高级的通告,已再也不主动向外发vrrp通告。spa
# 若是两节点的上联交换机禁用了组播,则只能采用vrrp单播通告的方式 [root@psql_master ~]# vim /etc/keepalived/keepalived.conf priority 100 unicast_src_ip 10.11.4.186 ##source ip unicast_peer { 10.11.4.187 ##dest ip } [root@psql_standby ~]# vim /etc/keepalived/keepalived.conf priority 90 unicast_src_ip 10.11.4.187 ##source ip unicast_peer { 10.11.4.186 ##dest ip }