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…