[R2.20] Bond interface flap can break haproxy/vrouter networking
Affects | Status | Importance | Assigned to | Milestone | ||
---|---|---|---|---|---|---|
Juniper Openstack | Status tracked in Trunk | |||||
R2.20 |
Fix Committed
|
High
|
Ignatious Johnson Christopher | |||
Trunk |
Fix Committed
|
High
|
Ignatious Johnson Christopher |
Bug Description
R2.20 build 13 Ubuntu 14.0.4.
Flapping a bond interface can cause its MAC address to change. Other
services that rely on this MAC address, should also be restarted so
that they can attach to the new MAC address. Details below.
Consider a case where the controller/compute node is connected to the IP fabric via a 2 interface bond (LAG). The bond assumes the mac address of one of the slave interfaces (usually the first one that comes up).
On the compute, the vhost0 interface also gets assigned the same MAC address as that of the bond interface. This MAC address is also used by keepalived/haproxy as the MAC address corresponding to the VIP.
Now, if the bond interface flaps (networking service was restarted for instance) and the MAC address of the bond interface changes to that of a different slave interface, it is seen that vhost0 interface still points to the old MAC and this breaks all the connectivity to the compute. As far as the KA/HAproxy is concerned, though the services are running, the VIP isn't owned by any of the nodes, and so this functionality also breaks.
The above scenario was simulated on the solution testbed by having the fab script add a static route to all the nodes on a working cluster. After adding the static route the fab add_static_route script restarts the networking service; this flaps the bond interface and causes the MAC address of the bond interface to change, which in turn leads to the above noted issues.
If vrouter/keepalive services are restarted, the issue is resolved.
bond0 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8a
em1 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8a
em2 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8a
vhost0 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8a
==restart networking==
bond0 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8b
em1 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8b
em2 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8b
vhost0 Link encap:Ethernet HWaddr 08:9e:01:d9:27:8a
description: | updated |
information type: | Proprietary → Public |
tags: |
added: provisioning removed: vrouter |
tags: | added: blocker |
Bhushan will try on a setup.