kskmori/resource-agents — pull request #2 by dfwarden (2012-07-11 16:02:19+00:00)
Title: IPaddr2 Dualstack LVS IPv6 Deprecated Source Address

It looks like your pull request to ClusterLabs/resource-agents for dual ipv4/v6 support in IPaddr2 will is what is going to be accepted and it works great in my test environment with one exception: When I use it to add a routable ipv6 address to be used for LVS load balancing with ldirectord managing the LVS routing table, the health checks to the realservers fail. This is because (at least in RHEL 6.2), the network stack will pick the most recently added ipv6 address as the source address for all ipv6 traffic leaving that interface. Since that address exists on loopback on the realservers, they don't know where to send the response to the health checks.

The fix is to add the ipv6 address as deprecated (preferred_lft 0) so the health checks use a different IPv6 address as the source address for traffic. I added a new parameter to IPaddr2 to control this. If someone tries to enable it in ipv4 it will give a config error, and if someone enables it on an ipv6 address it will add "preferred_lft 0" to the end of the ip addr command.

I was a little tempted to piggyback on lvs_support but I thought giving that different behaviors for ipv4 or ipv6 would be too confusing.