Software Defined Networking (SDN) and OpenStack

Software-defined networking (SDN) is an approach to networking in which control decoupled from hardware and given to a software application called a controller.

1) SDN is :
a) Separation of data and control  planes and a vendor-agnostic interface (e.g. OpenFlow)              between the two.
b) A well-defined API for the networking (3rd parties can develop and sell network                          control and management apps).
c) Network virtualization (Underlying network infrastructure is abstracted from the                        applications, no vendor lock-in).

2)  SDN is Not :
a) Only Implementing Network Functions in Software or on Virtual Machine
b) Only Programmable Proprietary APIs for Network Device or Management System

3) The SDN Controller has complete control of the SDN Datapaths.

4) SDN Stack: 

Thanks to


a) At bottom, the data plane is comprised of network elements, whose SDN Datapaths                      expose their capabilities through the Control-Data-Plane Interface (CDPI) Agent.

b) On  top, SDN Applications exist in the application plane, and communicate their                           requirements via NorthBound Interface (NBI) Drivers. In the middle, the SDN                             Controller translates these requirements and exerts low-level control over the SDN                      Datapaths, while providing relevant information up to the SDN Applications.

c) The Management & Admin plane is responsible for setting up the network elements,
assigning the SDN Datapaths their SDN Controller, and configuring policies defining                   the scope of control given to the SDN Controller or SDN Application.

d)  This SDN network architecture can coexist with a non-SDN network, especially for                      the purpose of a migration to a fully enabled SDN network

** Openstack Integration with SDN

1) OpenStack Neutron is  a networking-as-a-service project within the OpenStack cloud computing initiative.

2) Neutron is an application-level abstraction of networking that relies on plug-in implementations to map the abstraction(s) to reality.

3) Neutron includes a set of APIs, plug-ins and authentication/authorization control software that enable interoperability and orchestration of network devices and technologies (including routers, switches, virtual switches and SDN controllers) within infrastructure-as-a-service  environments.

Example SDN Plug-ins :-

** OpenDaylight
OpenDaylight is an open source SDN  project with a modular, pluggable, and flexible controller platform at its core. This controller is implemented strictly in software and is contained within its own Java Virtual Machine (JVM). As such, it can be deployed on any hardware and operating system platform that supports Java.OpenDaylight has driver for Neutron.

** OpenFlow based

1) OpenFlow-based networking systems are one possible mechanism to be used by a plug-in to deliver a Neutron abstraction.

** More Reading

Network Function Virtulization

SDN is focused on the separation of the network control layer from its forwarding layer, while NFV decouples the network functions, such as network address translation (NAT), firewalling, intrusion detection, domain name service (DNS), caching, etc., from proprietary hardware appliances, so they can run in software. Both concepts can be complementary, although they can exist independently.


This entry was posted in OpenStack and tagged , , . Bookmark the permalink.

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 )

Twitter picture

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

Facebook photo

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

Google+ photo

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

Connecting to %s