In OpenStack Juno release, L3 high availability in Neutron is implemented using Keepalived, which internally uses the VRRP protocol. It is an active/passive solution where a Keepalived instance is spawned in every router namespace and the instances communicate via a dedicated high-availability network, creating one per tenant.
The IP addresses that are used in the setup (e.g., qg, qr, floating IPs) would all be virtual IP addresses and would be assigned by the Keepalived daemon to the appropriate interfaces on the master high-availability router. In an IPv4 network, after a failover, the standby router sends a gratuitous ARP to have the switches update the port info. While this is required in an IPv4 network, the same is not necessary in an IPv6 network, thanks to IPv6 router advertisements.
In this presentation, we will share our observations on how to make L3 high availability (with Keepalived) work with IPv6 networks. The talk will include:
- A brief introduction to Keepalived.
- Why and what changes are required for IPv6.
- Current status in Neutron.
- Pending/open issues like TCP conntrack, monitoring the external link, etc.