Setting up OpenStack with Public Network access is essential when you want instances to be reachable from outside networks. Therefore, this guide explains how to use Packstack in an all-in-one setup with an existing external network.
This approach allows any machine on the same network to access OpenStack instances using floating IPs. Moreover, the configuration is simple enough for PoCs and lab environments while still following production-friendly practices.
The steps below are tested on CentOS 7 and rely on Open vSwitch for external connectivity.

Why Configure OpenStack with Public Network Access
By default, OpenStack instances run on private networks. However, without a public network, external access becomes difficult.
Because of this, configuring OpenStack with Public Network support enables:
- Direct instance access using floating IPs
- Seamless integration with existing infrastructure
- Easier testing of cloud-native workloads
As a result, this setup is widely used for DevOps, Cloud, and Microservices experimentation.
Prerequisites for OpenStack with Public Network
Before you begin, ensure the following:
- CentOS 7 installed
- Internet access enabled
- RDO repository configured
- Root or sudo access
At the same time, verify that your external network uses either flat or VLAN-based L2 connectivity.
Installing OpenStack with Public Network via Packstack
To configure OpenStack with Public Network, run Packstack with Open vSwitch bridge mappings.
packstack --allinone --provision-demo=n \
--os-neutron-ovs-bridge-mappings=extnet:br-ex \
--os-neutron-ovs-bridge-interfaces=br-ex:eth0 \
--os-neutron-ml2-type-drivers=vxlan,flat
This command defines extnet as the logical name for your external Layer 2 network. Consequently, you will reference this name later while creating the public network in Neutron.
In addition, the flat network type is enabled because most PoC environments rely on simple flat networking. However, if you use VLANs, add vlan to the type drivers list.
For official reference, you can also review the OpenStack Networking documentation from the OpenStack Foundation, which explains provider networks in detail:
https://docs.openstack.org/neutron/latest/admin/config-provider-networks.html
Configuring Network Interfaces for OpenStack with Public Network
After installation, migrate your network configuration from eth0 to the Open vSwitch bridge.
Configure br-ex Bridge
Edit /etc/sysconfig/network-scripts/ifcfg-br-ex:
DEVICE=br-ex
DEVICETYPE=ovs
TYPE=OVSBridge
BOOTPROTO=static
IPADDR=x.x.x.x
NETMASK=x.x.x.x
GATEWAY=x.x.x.1
DNS1=x.x.x.1
ONBOOT=yes
This ensures the bridge holds the external IP configuration. Therefore, restarting the network will not break connectivity.
Configure eth0 as OVS Port
Update /etc/sysconfig/network-scripts/ifcfg-eth0:
DEVICE=eth0
TYPE=OVSPort
DEVICETYPE=ovs
OVS_BRIDGE=br-ex
ONBOOT=yes
On CentOS 7, the interface name may differ, such as enp2s0. In that case, update the DEVICE value accordingly.
Optional: Bonded Interface Setup
If you require redundancy or higher throughput, you can use bonding:
DEVICE=bond0
DEVICETYPE=ovs
TYPE=OVSPort
OVS_BRIDGE=br-ex
ONBOOT=yes
BONDING_MASTER=yes
BONDING_OPTS="mode=802.3ad"
As a result, your OpenStack environment becomes more resilient.
Restart Network Services
Apply the changes by restarting the network:
reboot
Alternatively:
service network restart
Once completed, your external bridge is ready for OpenStack public networking.
Creating External Network in OpenStack with Public Network
Load admin credentials:
source keystonerc_admin
Create the external network:
neutron net-create external_network \
--provider:network_type flat \
--provider:physical_network extnet \
--router:external
Here, extnet matches the bridge mapping defined earlier. Because of this, Neutron correctly maps the external network to br-ex.
Creating Public Subnet for OpenStack with Public Network
Next, create a public subnet with an allocation pool outside your DHCP range:
neutron subnet-create --name public_subnet \
--enable_dhcp=False \
--allocation-pool start=x.x.x.x,end=x.x.x.x \
--gateway=x.x.x.x external_network x.x.x.x
This subnet enables floating IP allocation while avoiding conflicts with existing DHCP services.
How ZippyOPS Helps with OpenStack and Cloud Networking
Configuring OpenStack with Public Network is only one part of a scalable cloud journey. Therefore, many teams partner with experts to reduce complexity.
ZippyOPS provides consulting, implementation, and managed services across DevOps, DevSecOps, DataOps, Cloud, Automated Ops, AIOps, and MLOps. In addition, ZippyOPS helps organizations design secure Infrastructure, Microservices platforms, and resilient networking models.
You can explore their offerings here:
- Services: https://zippyops.com/services/
- Solutions: https://zippyops.com/solutions/
- Products: https://zippyops.com/products/
Moreover, practical tutorials and demos are available on the ZippyOPS YouTube channel:
https://www.youtube.com/@zippyops8329
Conclusion
Configuring OpenStack with Public Network using Packstack is a practical way to expose instances through floating IPs. As a result, you gain better accessibility and faster testing cycles.
With the right networking foundation and expert guidance from ZippyOPS, your OpenStack environment can scale securely and efficiently. For tailored consulting or managed cloud services, contact sales@zippyops.com.



