There are many new terms when seeing OpenStack network parts: Nova-Network, Neutron (Quantum), ML2, ... (ML2 is a plugin which supports from Havana)

I am now posting my blog article to summarize network parts in OpenStack.

OpenStack has been evolving to support the connection between hosts and from/to external network. The following describes the summary of modules/projects as a chronological manner.

Nova-Network: Nova is a project name in OpenStack, which manages hypervisors. Initially, Nova supported not only the management of virtual machines (the creation & deletion of instances), but also the management of virtual network interfaces and their connection. Nova-network is a module which mainly deals with network part in Nova project.

- Quantum: Quantum project was included in OpenStack Folsom version. It was originally designed to separate network parts from (complex) Nova project.

- Neutron: OpenStack changed the name of "Quantum" to "Neutron". (Many people says that there should be some copyright issues..)

ML2: Included in Havana. ML2 was developed as a form of Neutron plugins.

When we talk IP addresses in OpenStack, we can easily hear two terms: "Fixed IP" and "Floating IP". Those two terms can be confused with 'Static IP' and 'Dynamic IP'. Those two terms are generally used when we configure IP addresses on hosts. Please do not think that "Fixed IP" and "Floating IP" are analogous to 'Static IP' and 'Dynamic IP'!

Fixed IP is an IP address which is allocated to exactly one instance when created. Only one instance should have one distinguished fixed IP address, and that fixed IP address can be freed when the instance is terminated.

On the other hand, Floating IP is an IP address which can be temporally allocated and unallocated. One use-case of using floating IP is 'Using public IP addresses in OpenStack environment'. One Public IP address can be allocated to one instance when the instance is serviced to the public network. In addition, one instance can have multiple public IP addresses when the instance deals with multiple public network connections simultaneously.

In Essex, there were three ways to implement fixed IPs in Nova-Network: Flat Mode, Flat DHCP Mode, VLAN DHCP Mode. Flat Mode means that users need to configurre fixed IP addresses manually. Flat DHCP mode makes use of dnsmasq processes to allocate IP addresses with DHCP functionality. And, VLAN DHCP mode makes use of VLAN tags to group virtual machines and each group has an unique vtag number & a dnsmasq process to manage fixed IP addresses in the group. 

Quantum supports plugins, which is analogous to nova-scheduler in Nova. The architecture using Quantum plugins is to support various network implementations in OpenStack. There are many implementation cases in OpenStack network: Linux bridge, OpenvSwitch, MS Hyper-V network, and so on. The support of various implementations can be accomplished just by replacing to Quantum plugins. There are many built-in plugins (Hyper-V, Linux bridge, OpenvSwitch), and third party plugins (e.g., Floodlight, ryu).


ML2 is the abbreviation of 'Module Layer 2' and is designed to support multiple network layer-2 implements simultaneously with a modular form, which is introduced in Havana. WIthout using ML2, every host should use the same network layer-2 implementations.

Posted by Ian Y.