Ask Your Question

Revision history [back]

click to hide/show revision 1
initial version

I agree with Mohit, On each node with access to the flat network you need to create an OVS bridge. This must be done outside of openstack with the ovs-vsctl command

ovs-vsctl add-br br252

And then add a port on the bridge to a PHYSICAL NIC. Make sure you turn off system configuration on the interface because OVS needs complete control of the hardware on a bridge. Bonding (LACP) and VLAN tagging (802.1q) WILL NOT WORK on an OVS bridge, it needs a physical port

ovs-vsctl add-port br252 eno2

Then configure your ml2 openvswitch_agent.ini for the vlans. This worked for me on CentOS7 with DVR.

cat /etc/neutron/plugins/ml2/openvswitch_agent.ini

[ovs]
integration_bridge = br-int
tunnel_bridge = br-tun
local_ip = 10.0.0.14
enable_tunneling = True
bridge_mappings = ext252:br252
[agent]
l2_population = True
tunnel_types = vxlan,gre
enable_distributed_routing = True
arp_responder = True
[ml2_type_flat]
flat_networks = ext252
[ml2_type_vlan]
network_vlan_ranges = ext250,ext251,ext252
[ml2_type_gre]
tunnel_id_ranges = 1000:2000
[ml2_type_vxlan]
vni_ranges = 1000:2000
vxlan_group = 239.1.1.1
[securitygroup]
firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
enable_security_group = True
enable_ipset = True

Then restart neutron and nova agents.

You will see your new bridge and ports in OVS.

ovs-vsctl show
.....
Bridge "br252"
        Port "phy-br252"
            Interface "phy-br252"
                type: patch
                options: {peer="int-br252"}
        Port "eno2"
            Interface "eno2"
        Port "br252"
            Interface "br252"
                type: internal