Default NORMAL flows on OVS bridges at boot has potential to cause network storm
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
neutron |
Fix Released
|
Medium
|
Kyle Mestery | ||
Icehouse |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
There have been many times where we have restarted an environment only to find that it becomes laggy or inaccessible within minutes of coming back up. Unfortunately, the response of the systems through DRAC did not lend themselves to packet captures. The usual resolution is to shut the physical switchports, reboot the system, and turn the ports back up when the system is online. Switchport statistics, however, show a high number of packets in/out of the interfaces.
From what I can tell, when the openvswitch service is started at boot, every bridge is populated with a NORMAL learning flow. This includes the provider, integration and tunnel bridges. If/when there is a delay in the openvswitch plugin agent populating the flows, there is a potential for traffic coming in one port to be forwarded out all other bridges/ports. If there are multiple servers in this state, a traffic storm is generated on the network due to a bridging loop.
This issue could also be seen after a restart/upgrade of openvswitch prior to Kyle's patch for the following bug:
"neutron-
https:/
In the above case, we could see physical vlan traffic on the provider bridge being forwarded through the overlay networks, and vice-versa. Rather that default to NORMAL flows for each bridge upon the starting of openvswitch, would it be possible to default to DROP flows? That way, if there are any sort of timing issues between openvswitch starting and the flows actually getting written, traffic will not be allowed between bridges.
Changed in neutron: | |
assignee: | nobody → Kyle Mestery (mestery) |
Changed in neutron: | |
milestone: | none → juno-1 |
status: | Fix Committed → Fix Released |
Changed in neutron: | |
milestone: | juno-1 → 2014.2 |
Is issue still seen after the fix you've mentioned?