Adding another External network to the Multi Node OpenStack Setup

The external networks for an OpenStack deployment can be a combination of your intranet corporate  IT network and internet facing external network. For common use case, we look a way to add another external network to OpenStack deployment.

The steps for creating multiple external networks are:

1. Create a routed Virtual Network with 10.0.10.0/24 — This is needed if you are using a multi VM node on a single physical node.

2. Add a NIC connected to the new network to the neutron node

3.  Say the device show up as eth3. Create ifcfg-eth3 as  and add to a new bridge say br-ex2 on the neutron node.

On the Neutron Nodes, update /etc/neutron/l3_agent.ini to empty values

 gateway_external_network_id =
 external_network_bridge =

On the neutron node, update /etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini with the new bridge br-ex2:

 bridge_mappings =physnet1:br-ex,physnet2:br-ex2

The physnet1 & physnet2 are labels that will be used to reference the external network when we are creating it. This mapping from label to bridge specifies how packets are moved.

Restart the services:

service neutron-l3-agent restart
service neutron-openvswitch-agent restart

You can verify this setup has worked by ovs-vsctl show.
Here you should see br-ex2 and the new NIC eth3 added as a port. In addition, br-int should have int-br-ex2 as port.

Back on the control node, in /etc/neutron/plugin.ini ensure the following:

. . .
type_drivers = vxlan,flat
flat_networks = physnet1,physnet2
network_vlan_ranges =physnet1:1000:2999,physnet2:3000:4999
. . .

(Note: plugin.ini usually is a link to /etc/neutron/plugins/ml2/ml2_conf.ini)

openstack-service restart neutron

Next, create the new network specifying the provider

neutron net-create public_intranet --router:external --provider:physical_network physnet2 --provider:network_type=flat 

Then add the subnet with an new allocation pool:

 neutron subnet-create --name public_intranet_subnet --enable_dhcp=False --allocation-pool=start=10.0.10.1,end=10.0.10.255 --dns-nameserver=8.8.8.8 --gateway=10.0.10.1 public_intranet 10.0.10.0/24