neutron/neutron/tests/unit/agent
Assaf Muller a80999ea27 Configure IPv6 LLADDR only on master L3 HA instance
HA standby routers must never transmit traffic from
any of their ports. This is because we allocate the same
port on all agents. For example, for a given external interface,
we place the same port with the same IP/MAC on every agent
the HA router is scheduled on. Thus, if a standby router
transmits data out of that interface, the physical switches
in the datacenter will re-learn the MAC address of the external
port, and place it on a port that's looking at a standby and
not at the master. This causes 100% packet loss for any incoming
traffic that should be going through the master instance of the
router.

Keepalived manages addresses on the router interfaces, and makes
sure that these addresses only live on the master. However, we
forgot about IPv6 link local addresses. They are generated
from the MAC address of the interface, and thus are identical on
all agents.

This patch tries to treat IPv6 link local addresses the same
as IPv4 addresses - define them as VIPs and let keepalived
move them around.

Closes-Bug: #1403860
Change-Id: Ia5071552239c9444c5105a150b268fb0437e4b85
(cherry picked from commit c9698ca0f7)
Conflicts:
	neutron/agent/l3/agent.py
	neutron/tests/functional/agent/test_l3_agent.py
2015-02-10 13:40:00 -05:00
..
linux Configure IPv6 LLADDR only on master L3 HA instance 2015-02-10 13:40:00 -05:00
__init__.py Remove the useless vim modelines 2014-06-21 15:07:31 +08:00
l2population_rpc_base.py ofagent: Remove @author tags and update copyright notices 2014-09-04 12:38:11 +09:00
test_l2population_rpc.py ofagent: Remove @author tags and update copyright notices 2014-09-04 12:38:11 +09:00