Get started Bring yourself up to speed with our introductory content.

Getting to know OpenStack Neutron: Open networking in cloud services

OpenStack Neutron provides a consistent set of network services for use by other elements, such as VMs, systems management modules and other networks.

The OpenStack Foundation has established a bold mission for itself: to harness the cloud community's many talents in developing a robust, open and agile software suite that supports cloud computing in a wide variety of environments, including public, private and hybrid clouds.

Using an open source development model, the foundation has created a strong baseline distribution in less than two years that enables key tasks in compute, storage and networking, along with important supporting functions in metering, authentication and graphical user interfaces (GUIs) -- all complemented by application programming interfaces (APIs) for integration and extension. However, we don't always pause and look closely at how individual projects in the framework have progressed or how they meet the requirements of different customer deployments. In this article, we look at how OpenStack's networking service, OpenStack Neutron, is progressing as of the recent Havana release.   

Intro to OpenStack Neutron

The central idea of OpenStack networking is to provide a consistent set of network services for use by multiple other elements, such as virtual machines (VMs), systems management modules and other connected networks. In essence, OpenStack networking creates a consistent, logical tier of communications that other elements can use efficiently and at scale.

The model is implemented in OpenStack Neutron servers, which interact with the OpenStack Nova software managing VMs (that is, compute services) as well as the other elements mentioned above.  Users interact with networking functions via the OpenStack Horizon GUI, and other management systems and networks interact with networking services using the Neutron APIs.  

OpenStack networking creates a consistent, logical tier of communications that other elements can use efficiently and at scale.

Neutron uses RESTful Web services and HTTP to communicate with its clients. It uses JavaScript Object Notation (JSON) and XML to model its operations.  It is designed to add functionality flexibly over time, to scale out for a range of deployments and to employ well-understood, open-software components for efficiently combining multiple parties' functionality into the OpenStack network environment. Requests, responses and other logical steps are clearly defined and usable to support creation and management of the necessary functionality for implementing the network service.

In its current distribution, OpenStack Neutron implements a mixture of Layer 2 VLAN and Layer 3 routing services, and it offers extensions to support firewalls, load balancers and IPSec VPNs for the networks it supports. VMs in the networks can come from a mix of hypervisors -- including KVM, ESX, XenServer and Hyper-V -- supporting choice and versatility in design.

Additionally, Neutron allows flexible placement of virtual machines within a site using robust address management that supports both IPv4 and IPv6. It employs a logical subnet construct, representing a block of IP addresses the virtual network can place and reach anywhere in its deployed topology. This construct is similar to subnetting that's been used in IP networking for many years, but in Neutron, it is abstracted from the physical ports typically associated with subnets. It is used as a logical association mechanism in the overlay network to allow for separation of network traffic for different users and applications. In this way, cloud providers can discretely enable multiple tenants' communications and deploy topologies for various applications, such as multi-tiered combinations of servers to handle different portions of an overall application.

Three reasons to deploy OpenStack Neutron

In Neutron, the OpenStack project has created a robust virtual networking platform for use in a variety of designs. And from a broader perspective, we can identify three key benefits for using this open overlay design as a means of creating network services for the cloud.

First, by using a consistent approach to networking for multiple types of virtual machines, OpenStack Neutron helps providers operate efficiently in heterogeneous environments, which is frequently the requirement in service provider systems. Being able to use KVM, ESX, Hyper-V or XenServer as needed on a common network foundation simplifies this task.

Second, by supplying a consistent set of APIs for plugging in a variety of physical network underlays, providers gain flexibility in altering the design of their underlying physical network while keeping the cloud service logically intact. Adoption of the Neutron API by prominent networking suppliers -- including Arista Networks Inc., Brocade Communications Systems Inc., Cisco Systems Inc., Hewlett-Packard Co., Juniper Networks Inc., NEC Corp. and Alcatel-Lucent Inc.'s spin-off Nuage Networks -- is a powerful endorsement of this attribute's value.

More OpenStack resources for cloud providers

And third, orchestration and system management suppliers -- as well as providers' own technical teams -- can use the Neutron API to integrate management of the network for the cloud with multiple higher level service management tasks. This offers a range of opportunities, including service-level agreement monitoring, as well as integration into automation platforms like catalogues and portals for dynamic management of customer clouds. Uptake by such vendors as HP, IBM, PLUMgrid Inc. and Red Hat Inc. has validated the appeal of this approach.

By all appearances, OpenStack Neutron is establishing itself as a powerful baseline to use in developing the open, agile and extensible systems environment operators need for delivering responsive and differentiated cloud-based services.

About the author:
Paul Parker-Johnson is the practice lead for cloud computing and virtual infrastructure technologies at ACG Research.

This was last published in December 2013

Dig Deeper on Telecommunication networking

Join the conversation


Send me notifications when other members comment.

Please create a username to comment.

What do you think are the most interesting or compelling Neutron-based network services?
The ability to provide advanced network services to multi-tier applications to implement strong network segmentation or data center to data center migration services.
Ability to optimize any L2 to L7 service based on network policy
Neutron can't create multi patch routing to support the dynamic changes to tenants network requirement.
But only a single plugin can be active at a time. Consider the cloud provider is using Cisco switches. He can only install a plugin provided by Cisco which manager both their switches as well as open v switch. Since cloud service providers mostly enable their tenants to control their bandwidth and charge them accordingly. If a tenant increases their network bandwidth it should not affect other tenants. How could network scale at this time. Support for devices from multiple vendors can be achieved through ML2 plugin but we are not sure how it will solve the problem for dynamic bandwidth changes to network.