Installing OpenStack: All-In-One node using Single NIC

Gone are the days when you need 3 or more nodes to do a test setup of Openstack. All you need is a single node. I call it “All-In-one” node. Let me explain you “HOW”.

To install Openstack in single node all you need is one NIC.

“Note that the NIC will be used for accessing the Operating System (Ubuntu), the services (API endpoints), the dashboard (Horizon) and for “exposing” VMs when you associate a floating IP address to them.”

Do we need to configure NIC before installing Openstack. YES, we do. Follow few simple steps to get your NIC configured. Before you configure NIC, lets assume

  •       you want to install Havana with Neutron (not nova-network)
  •       your installation is really a single node; i.e. you are not going to add compute nodes in the future

The first thing to do is to configure the network at Operating System level.

Step 1: You need to add an OpenVSwitch bridge for linking VM’s, assigning individual IP’s and exposing the VMs for external world to connect.Use the below command to add OpenVSwitch:

$ sudo ovs-vsctl add-br br-ex

Step 2: Now configure the network at OS level.

The following is an example of how you can configure the network using /etc/network/interfaces:

auto loiface lo inet loopback

auto eth1

iface eth1 inet manual

up  ip address add 0/0 dev $IFACE

up ip link set $IFACE up

up ifconfig $IFACE promisc

up ifconfig $IFACE multicast

down  ip link set $IFACE down

auto br-ex

iface br-ex inet static

address  <static-ip-address>

netmask  <mask>

network  <network>

broadcast  <broadcast>

gateway  <gateway-ip-address>

up ifconfig $IFACE promisc

dns-nameservers  <dns-ip-address>

a)      The first entry configures the loopback interface: no explanation is needed.

b)      The second entry “starts” the interface whenever you switch on the PC. It’s worth noticing that you do not assign any IP address to such an interface and this is needed because this interface will ‘capture’ all the traffic on the physical network it is connected to. The ‘captured’ traffic will be forwarded to all the virtual devices connected to the interfaces and one of such devices is br-ex.

c)       The third entry configures br-ex, an OpenVSwitch bridge that will serve for the following purposes:

  • give access to the services (API endpoints) and Horizon
  • give access to the PC’s Operating System (ubuntu)
  • give access to VMs in the cloud when they are associated to a floating IP address

After setting up the configuration file, all you need is to reboot the PC and not just network restart as sometimes the configuration files doesn’t get updated in the kernel.  Once the reboot is completed, you need to access the console locally rather than remotely. As there is no IP address assigned yet.

After accessing through the local console, you should see that you have three interfaces (ifconfig command):

Lo            Link encap:Local Loopbackinet addr: Mask:

inet6 addr: ::1/128 Scope:Host


RX packets:91931 errors:0 dropped:0 overruns:0 frame:0

TX packets:91931 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:19815734 (19.8 MB) TX bytes:19815734 (19.8 MB)

eth1        Link encap:Ethernet HWaddr 00:1a:4b:dd:44:5e

inet6 addr: fe80::21a:4bff:fedd:445e/64 Scope:Link


RX packets:3370 errors:0 dropped:2 overruns:0 frame:0

TX packets:427 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:1000

RX bytes:432117 (432.1 KB) TX bytes:60022 (60.0 KB)

br-ex      Link encap:Ethernet HWaddr 00:1a:4b:dd:44:5e

inet addr: Bcast: Mask:

inet6 addr: fe80::9051:56ff:fe8d:568d/64 Scope:Link


RX packets:3238 errors:0 dropped:8 overruns:0 frame:0

TX packets:415 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:383674 (383.6 KB) TX bytes:56880 (56.8 KB)

Note: You are still not in a position to connect via remotely. Please execute the below command to assign an IP address to enable remote connectivity and internet connection.

$ sudo ovs-vsctl add-port br-ex eth1

At this point you should be able to access the PC from “outside” using the IP address assigned to br-ex. Please note that the connection survives till next reboot. You have to run the above command again once rebooted to establish the connection again.

Now you can start installing OpenStack following the doc from openstack official website.

When you install Neutron, you need to ensure the floating IP address assigned should be in the same subnet.

Refer example give below

  • when you create the “external network”, the floating IP addresses need to be on the same network where br-ex is (e.g. if the node is on, the floating IP address need to be on as well).

Note : You cannot proceed with remote OpenStack installation while using one NIC.

Hope this is was useful. Would be interested to hear your inputs/feedback.



visit us @


One thought on “Installing OpenStack: All-In-One node using Single NIC

  1. Thinx for this great post;
    I want to install Devstack in a machine that have one interface (eth0 that have an IP Adress
    Can you give me the local.coonf appropriate to install the most importentent components +(neutron swift cinder Ceilometer dashboard) all components that are easy to install

    especially for the Networkin (HOST_IP= ,FIXED_RANGE=, FLOATING_RANGE=, FLAT_INTERFACE= ,..)
    and for the Neutron services :
    disable_service n-net
    enable_service q-svc
    enable_service q-agt
    enable_service q-dhcp
    enable_service q-meta
    enable_service q-l3

    I want to now how to use theme and how they interact

    It will be great if you help me

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s