VIP不会从备份keepalived下降

我可能不知道这应该如何工作,但我无法弄清楚为什么具有这个基本的vrrp_instance的BACKUP系统正在过渡到主,并且似乎永远不会优先考虑。

为什么虚拟IP地址在健康和联机状态下都不会丢失备份系统?

看起来两个系统都在广播vrrp广告。 从备份系统上的tcpdump

vrrp.mcast.net vrrp.mcast.net vrrp.mcast.net vrrpv2广告vrid 51 prio 150 authtype简单intvl 1s长度20 addrs虚拟应用程序.fakecorp.com auth“password” 15:52:24.541637 IP(tos 0xc0,ttl 255,id 1611,offset 0,flags [none],proto VRRP(112),length 40)

vrrp.mcast.net:vrrp betaproxyslc02.fakecorp.com> vrrp.mcast.net:VRRPv2,广告, vrid 51 prio 100, authtype simple,intvl 1s,length 20,> addrs:virtual-app .fakecorp.com auth“password” 15:52:25.410073 IP(tos 0xc0,ttl 255,id 1779,offset 0,flags [none],proto VRRP(112),length 40)

但是虚拟IP地址通过ip addr命令显示在两台主机上。

这是configuration:

 global_defs { notification_email { [email protected] } notification_email_from keepalived@betaproxyslc01.fakecorp.com smtp_server mysmtpserver.fakecorp.com smtp_connect_timeout 30 router_id BETAPROXYSLC01 } vrrp_script chk_haproxy{ script "killall -0 haproxy" interval 2 # check every 2 seconds weight 2 # add 2 points of prio if OK } vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 51 priority 150 advert_int 1 notify /usr/local/bin/notify.sh authentication { auth_type PASS auth_pass keep0ut! } virtual_ipaddress { 10.10.0.40 } track_script{ chk_haproxy } } 

在BACKUP服务器上,router_id不同,状态为BACKUP,优先级为100.其他设置相同。

这是在CentOS 7上安装的,具有3.10.0-123.8.1.el7.x86_64内核的Keepalived v1.2.10(06 / 10,2014)是一个Hyper-V访客虚拟机。

路由器之间的VRRP通信使用组播IP地址224.0.0.18 [1]和IP协议号112 [2]

因此,您只需要允许具有这些特定参数的传入和传出通信就能使VRRP正常工作。 通常提到的防火墙规则是冗余的,不必要的广泛制定。

我build议你使用这些防火墙规则:

 firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT firewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --out-interface eth0 --destination 224.0.0.18 --protocol vrrp -j ACCEPT firewall-cmd --reload 

[1] http://tools.ietf.org/html/rfc5798#section-5.1.1.2
[2] http://tools.ietf.org/html/rfc5798#section-5.1.1.4

在本页末尾引用防火墙信息我可以通过以下方式打开防火墙:

 firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -i eth0 -d 224.0.0.0/8 -j ACCEPT firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -i eth0 -d 224.0.0.0/8 -j ACCEPT firewall-cmd --direct --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT firewall-cmd --direct --perm --add-rule ipv4 filter INPUT 0 -p vrrp -i eth0 -j ACCEPT firewall-cmd --direct --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT firewall-cmd --direct --perm --add-rule ipv4 filter OUTPUT 0 -p vrrp -o eth0 -j ACCEPT 

只有前两个选项似乎是必要的。 一旦我将规则设置为接受到组播地址的stream量,备份系统就会注意到vrrpstream量,恢复到备份模式,并撤消VIP。 我想我很困惑的是,我可以看到在两个系统上使用tcpdump的两个系统的多播stream量。