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:
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=18.104.22.168 --gateway=10.0.10.1 public_intranet 10.0.10.0/24