For reasons beyond my control, we have two real servers serving http
that will answer an arp erroneously when the core router sends the arp
request. At that point, all traffic goes directly to that one real
server. The fix is for me to ssh to the load balancer, and manually
run (obfuscated):
/usr/lib/heartbeat/send_arp -i 1010 -r 5 -p
/var/lib/heartbeat/rsctmp/send_arp/send_arp-xx.xx.xx.xx eth0 xx.xx.xx.xx auto
xx.xx.xx.xx ffffffffffff
This is the same command that heartbeat runs when it does a failover
and/or initially starts up. When I run this command manually, the
router and firewall properly replace the mac of the IP with the
loadbalancer's mac.
I would like to see a "noisy gratuitous arp" setting where you can tell
heartbeat to occassional resend the gratuitous arp. Something like:
noisy_arp 720 # 720 minutes = 12 hours
I can write a script to manually do this if I need to.
Yes, yes, I know that installing the proper kernel on the two real boxen
would be the ideal choice. We're talking legacy hardware/software
though, which ties my hands. I'm just curious if anybody thinks this is
a good idea, or if I need to go ahead and just script it myself.