Full width home advertisement

Learn How to Hack

Free Hacking Resources

Post Page Advertisement [Top]

Software Defined Network (SDN) Explained | Also Get Free SDN Courses & Projects

Learn Everything About SDN -

What is Software Defined Network(SDN):
Software Defined Network is a buzzword in the industry of Computer Science. It is an architecture that can be used to make networks agile and flexible.

The SDN improves controlling of network and helps in providing quick responses to change in business requirements.

Advantages of Software Defined Network:

By using SDN technology in computer networks, it provides the following advantages
  • Portable
  • Flexible
  • Better Performance
  • Greater Uptime
  • Less hardware is needed
Before moving into SDN, let us first understand the traditional networking.

Traditional Networking:

Tasks performed by a Router:
  • Check destination IP address and decide where to forward the packet
  • Routing protocols (OSPF, BGP) will have to learn the network topologies in the routing tables
  • Use ARP protocol to find out MAC address of next hop or destination and change destination MAC address in Ethernet frame
  • Decrease TTL by 1 in IP packet. Recalculating the IP header checksum
  • Recalculating Ethernet frame checksum

The above tasks are performed by three planes namely -

  • Control Plane
  • Data Plane
  • Management Plane

Control Plane:

It is responsible for the exchange of routing information, building ARP table etc. Some tasks of the control plane are as below:
  • Learn MAC addresses and build switch MAC addresses table
  • Run Spanning Tree Protocol to build a topology without any loops
  • Build the ARP tables
  • Run the protocols like BGP, OSPF and construct the routing table.


Data Plane:

It is responsible for forwarding traffic. Based on the information from the Control plane, it performs its duties.

Some tasks of data plane are as below:
  • Encapsulating and decapsulating network packets
  • Adding or removing headers of network packets. An example of the header is 802.1q that defines VLAN tagging for Ethernet frames and how to use these frames by bridges and switches
  • Match MAC addresses to forward network packets
  • Match IP destinations mentioned in the routing table
  • When using NAT (Network Address Translation), change addresses of source and destination
  • Using access lists, drop the necessary traffic

The data plane should perform its tasks as fast as possible. So, it uses hardware like TCAM (Ternary Content Addressable Memory) and ASIC (Application Specific Integrated Circuits)

Management Plane:

It is responsible for managing and accessing network devices. An example is accessing device through Telnet or SSH.

The connection between Control Plane and Data Plane:

Relationship between the Control Plane and Data Plane
Relationship between the Control Plane and Data Plane
The above diagram shows the relationship between the Control Plane and Data Plane.

Why Software Defined Network?

Software Defined Network (SDN) is used to automate the tasks like below:
  • Creating VLAN’s on switches
  • Assigning subnets for VLAN’s
  • Configuring firewalls for subnets
  • Advertise subnets in the routing protocol
  • Configuring root bridge for VLAN’s

Software Defined Network:

Traditional network follows a distributed model for  the control plane. Protocols like ARP, OSPF, BGP run separately on each network device. These network devices communicate with each other.

But in this model, there is no central device that monitors the entire network.

In contrast to traditional networking, SDN uses a centralized model. The entire network has  the central controller for the control plane. SDN central controller has insights of all control planes on each network device.

The SDN can be a physical hardware device or even a virtual machine.
Software Defined Network(SDN) Explained
In SDN networking, the switches won’t have control plane individually. The SDN controller feeds the data plane of switches using information from the SDN controller.

Advantages of Centralized Model in SDN:

  • It is able to configure the entire network with a single device
  • Insights into what is happening in each network device are available

Interfaces present in SDN:

There are two interfaces in SDN namely
  • Northbound Interface
  • Southbound interface
Software Defined Network(SDN) Explained

Southbound Interface of SDN:

The interface of SDN that does the work of communicating with network devices to feed data to data plane on each network device is called Southbound interface.

This is a software interface like API but not a physical interface API is a software interface that allows an application to provide access to other applications by using some pre-defined data structures and functions.

Examples of Southbound Interfaces:

  • OpenFlow is a popular Southbound Interface. It’s an open source protocol developed by Open Networking Foundation. Only a few network devices and SDN controllers support OpenFlow.
  • CISCO OpFlex is another open source SDN Southbound Interface developed by CISCO enabling SDN controller to interact with infrastructure.

Northbound Interface of SDN:

The interface that is used to access the SDN controller is called Northbound Interface. Using this interface, the network administrator can configure or retrieve information of the SDN controller.

You can use this via GUI, Scripts or app for which API gives access to SDN.

Things that can be done by using the Northbound interface:
  • List information from network devices
  • Can see the status of physical interfaces in  the network
  • Adding VLAN on switches
  • See the topology of the entire network
  • Configuring Access lists, IP addresses, routing etc.
  • When a new virtual machine is created.

Using API, multiple applications can access SDN controller:
  • A user through an app can access information about the network from the SDN controller. The GUI uses API for this purpose
  • Java or Python scripts can be used to configure or access information about the network from SDN controller.
Software Defined Network(SDN) Explained

REST API used by SDN:

SDN controllers typically use REST API. REST stands for REpresentational State Transfer which uses HTTP to send & receive information between SDN controller and application.

It uses HTTP GET to retrieve information from SDN Controller and HTTP POST/PUT to update information of the network.

When REST API is used to get information about the network from SDN Controller, the result will be in the format of XML (Xtensible Markup Language) or JSON (JavaScript Object Notation).

Here, Python script is using REST API to access information about the network from SDN controller. The response from API will be similar to this:

The JSON data that we get data as response looks like below:
“nodes”  : [
“ip” : “”
“mac” :  “fa45.3b76.f154”
“port” : 4
“ip” : “”
“mac” : “fa45.3b76.f155”
“port” : 5

Resources to learn SDN:

  • Udemy has a free course on Introduction to SVN, NFV, and OpenFlow. To learn it, click here
  • Cybrary has a lot of good resources to learn on Networking concepts like SDN, NFV etc.

Projects on SDN:

  • Floodlight is an open source SDN controller in Java that supports OpenFlow protocols.
  • OFTest is a Python based framework to test OpenFlow switches of version 1.1 and 1.0
  • FlowScale is another SDN project used in distributing traffic over switches.

If You Liked This Article then Please support us by sharing this article on WhatsApp and Facebook.

And, please use comment section and let us know if you need any Career Advice. Feel free to ask your questions.

No comments:

Post a Comment

Bottom Ad [Post Page]