Instance Unreachable on Separate Hypervisor – Stale Flow (OVS/VLAN)

Problem

  • An instance provisioned on a VLAN, provider network is unable to reach another instance residing on a separate hypervisor.
  • The OVS ovs-appctl utility shows that there is a "Nonexistent output port" for the flow matching the SRC MAC trying to reach the DST MAC via the port corresponding to the VETH PAIR connecting the Linux bridge which is used to facilitate traffic in and out of the VM and via OVS.

Example:

Bash
Copy

The following specifications are needed to run the ovs-appctl ofproto/trace br-int command: in_port, dl_src, and dl_dst.

The in_port corresponds to the OVS port number for the "qvo" port/interface which is part of the aforementioned VETH pair.

The dl_src corresponds to the MAC address associated with the Neutron port of the source instance or VM.

The dl_dst corresponds to the MAC address associated with the Neutron port of the destination instance or VM.

The ovs-ofctl show command can be used to display the ports/numbers for a particular OVS bridge – in this case, "br-int" (see example below).

Example

Bash
Copy

Environment

  • Platform9 Managed OpenStack - All Versions
  • Neutron
  • OpenVSwitch

Cause

A stale flow exists in OVS – specifically, within the "integration bridge" or "br-int" – pertaining to the the destination's IP MAC address (determined via ARP).

Resolution

  1. (Optional) Dump flows from the OVS integration bridge ("br-int").
  2. Delete the flow.
Bash
Copy
Bash
Copy

Note: Either the ovs-appctl ofproto/trace br-int command or ovs-ofctl dump-flows br-int can be used to gather the information needed to delete the flow.

Additional Information

Type to search, ESC to discard
Type to search, ESC to discard
Type to search, ESC to discard