Eu tenho três clusters de servidores keepalived, duas instâncias em cada cluster, cada cluster com um VIP exclusivo e ID de roteador. Dois deles estão funcionando bem usando anúncios VRRP unicast, mas um deles ... não é.
Então, vamos dizer, em nome desta questão, que as duas instâncias agrupadas são machine1.domain
e machine2.domain
. Aqui está a configuração keepalived para machine1.domain
:
vrrp_instance VI_1 {
state MASTER
notify /usr/local/bin/keepalived-notify.sh
virtual_router_id 55
interface eth0
unicast_src_ip 192.168.0.12
unicast_peer {
192.168.0.13
}
priority 255
authentication {
...
}
virtual_ipaddress {
192.168.0.14
}
track_script {
chk_haproxy
}
}
Apenas para declarar explicitamente, machine1.domain
tem um IP atribuído de 192.168.0.12
e machine2.domain
tem 192.168.0.13
com um VIP de 192.168.0.14
.
Quando executo tcpdump -i eth0 | grep "vrid 55"
, é isso que recebo:
sudo tcpdump -i eth0 | grep "vrid 55"
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes
14:09:03.386420 IP machine1.domain > machine2.domain: VRRPv2, Advertisement, vrid 55, prio 255, authtype simple, intvl 1s, length 20
14:09:03.738807 IP VIP.domain > vrrp.mcast.net: VRRPv2, Advertisement, vrid 55, prio 100, authtype none, intvl 1s, length 20
14:09:04.387364 IP machine1.domain > machine2.domain: VRRPv2, Advertisement, vrid 55, prio 255, authtype simple, intvl 1s, length 20
14:09:04.740211 IP VIP.domain > vrrp.mcast.net: VRRPv2, Advertisement, vrid 55, prio 100, authtype none, intvl 1s, length 20
14:09:05.388325 IP machine1.domain > machine2.domain: VRRPv2, Advertisement, vrid 55, prio 255, authtype simple, intvl 1s, length 20
14:09:05.740435 IP VIP.domain > vrrp.mcast.net: VRRPv2, Advertisement, vrid 55, prio 100, authtype none, intvl 1s, length 20
Portanto, o keepalived está enviando mensagens multicast nas mensagens VIP e unicast no IP da instância de machine1.domain
. Eu reiniciei o serviço keepalived, recarreguei, parei, reiniciei a instância, etc. Ele sempre volta a transmitir em unicast e multicast.
Além disso, todas as instâncias de todos os três clusters são configuradas por meio do chef. Todos eles têm configurações idênticas, basta substituir os três IPs e o ID do roteador na configuração keep-alive.
Obrigado por qualquer ajuda que você possa dar. Eu não tenho ideia do que causou isso, alguma idéia?