在线上部署keepalived的时候遇到了问题总结下:


2台服务器

eth0为内网卡

eth2为外网卡

在主备切换的时候没有收到vrrp广播包

刚开始部署的时候copy的网上的配置文件,所以中招了

错误日志信息:/var/log/message

Oct 9 07:57:35 test4 Keepalived_vrrp[22495]: Sync instance needed on eth2 !!!
Oct 9 07:57:35 test4 Keepalived_vrrp[22495]: VRRP_Instance(VI_10) Dropping received VRRP packet...
Oct 9 07:57:37 test4 Keepalived_vrrp[22495]: advertissement interval mismatch mine=1000000 rcved=2
Oct 9 07:57:37 test4 Keepalived_vrrp[22495]: Sync instance needed on eth2 !!!
Oct 9 07:57:37 test4 Keepalived_vrrp[22495]: VRRP_Instance(VI_10) Dropping received VRRP packet...
Oct 9 07:57:39 test4 Keepalived_vrrp[22495]: advertissement interval mismatch mine=1000000 rcved=2
Oct 9 07:57:39 test4 Keepalived_vrrp[22495]: Sync instance needed on eth2 !!!
Oct 9 07:57:39 test4 Keepalived_vrrp[22495]: VRRP_Instance(VI_10) Dropping received VRRP packet...
Oct 9 07:57:41 test4 Keepalived_vrrp[22495]: advertissement interval mismatch mine=1000000 rcved=2
Oct 9 07:57:41 test4 Keepalived_vrrp[22495]: Sync instance needed on eth2 !!!
Oct 9 07:57:41 test4 Keepalived_vrrp[22495]: VRRP_Instance(VI_10) Dropping received VRRP packet...
Oct 9 07:57:43 test4 Keepalived_vrrp[22495]: advertissement interval mismatch mine=1000000 rcved=2
Oct 9 07:57:43 test4 Keepalived_vrrp[22495]: Sync instance needed on eth2 !!!
Oct 9 07:57:43 test4 Keepalived_vrrp[22495]: VRRP_Instance(VI_10) Dropping received VRRP packet..


解决方法:

vrrp_instance VI_10 {
state BACKUP
interface eth0 注意:eth0是内网网卡,这个选项是定义接受vrrp广播包的网卡,而不是有的博客说的虚拟ip绑定的网卡,这里被网上配置文件给坑了。
virtual_router_id 111
mcast_src_ip 10.28.163.89
priority 100
nopreempt

authentication {
auth_type PASS
auth_pass HAmysql
}

track_script {
check_mysqld
}

virtual_ipaddress {
1.1.1.1/29 dev eth2 scope global 这里才是定义vip绑定的网卡为eth2
}
}