Hi Alexandre,
Hmm... oh yes.... currently keepalived doesn t handle netlink ip check
before sending advert. The netlink call to set VRRP VIP is done during
bootstrap, then during checkers stats.
I see. Nasty ;)
So the answer is.... It is a "bug" well, a lake of time from my side to add
^^^^^^^^^^^^
:) so you have time
that strong integrity check....
The VRRP part need to be enhanced... I am currenlty working on this with
netlink. The VIP presence check is needed for checkers because currenlty if
you run both healthcheck & failover, keepalived perform healthcheck even if
VIP is not owned by the BACKUP director... So the extension here is :
"perform healthcheck if VRRP VIP or IP is owned and correctly set".
What happens in case of failback?
I have been very busy with my job so I had to delayed a little my work. But
will be back to strong work :)
Currenlty the keepalived framework is cleaner than it was. Healthchecker
can be developed much more quickly... This work done, I need to spend more
time on netlink & VRRP....
No need to hurry, you've really done an excellent work so far.
VRRP framework need to be enhanced on the sending advert proc : checking
IFF_UP flags, netlink stats, probably MII register if NIC offer it, ....
If someone has some kind of code here, it will help me... Like : "before
sending something to the world, check if we can send it using the NIC :
need to test IFF stats, netlink, ..."
Stupid guess: if (ifr->ifr_flags==IFF_UP) ...
But this might also want to check the routes.
How is the best way to handle this.... Any comments will be welcome.
This is more Julian's field I guess. If I was in your situation I'd have
a look at the iproute2 source code for the part of:
ip route get <IP> ...
And derive stuff from there.
HTH and best regards,
Roberto Nibali, ratz
|