SDN (Software Defined Network) is the new buzzword in the networking space . We can say that a SDN network is nothing but a programmable and software based network technology that is defined and configured in such away that it aids in enhancing the network efficiency . In this post we will dig deep into the various aspects of the SDN technology and also the protocols used in this Software Defined Network set up . So just relax and proceed further .
We will first start with revisiting some basic networking concepts that we have already covered in the previous posts . For understanding the SDN network concepts , it is important to recap the basics of OSI layers first for better understanding .
Note : If you are already well versed with the networking basics , then you may skip the next section and directly jump to the SDN topic down to the later sections .
What Is Networking ? (Basic Definition Of Networking !!)
A network is basically defined as a link in between two or more devices (or people) , that are linked to each other to exchange data and any kind of information . Once you understand what a network is , networking can be termed as the interaction with others (devices or people) to exchange information and develop professional or social contacts .
Now in a network there are various components present in it . Once a device transmit data , the data packets will pass through multiple layers of the network (OSI layers) before it gets received by the receiver device .
You may now wonder what exactly this OSI layer means ? . Let us have a glimpse of the OSI layers in brief now :
Open Standard Interface (OSI) is a standard protocol that defines the communication between the two devices. The function of the OSI model is perfectly partitioned into seven distinct layers respectively. Let’s visit the seven layers.
Physical Layer : It is used to transmit the raw data over a communication channel. It transmits data as 0’s and 1’s.
Data Layer : Data is broken into frames, and the frames are transmitted sequentially. The primary use of this layer is to avoid transmission error.
Network Layer : Data is transformed in the form of packets. This layer routes the packet logically with the help of the IP address.
Transport Layer : This layer is responsible for end-to-end connectivity over a network. Here, the data is transformed in the form of segments.
Session Layer : This layer is responsible for establishing the session between the devices. This layer synchronizes the data between devices and establishes the connection between them.
Presentation Layer : This layer is responsible for formatting the data and provide proper encryption for the data.
Application Layer : This layer is used for transmitting and distributing the data between the devices.
Now let us understand some basic networking devices and their working :
Hub : Forwards the packet to every device that is connected to its network. It does not have an intelligence purpose. It is part of the physical layer (layer 1) of the OSI model. If you want to know more just click on this .
Switch : Used to receive the data and transfer them to the destination. The switch has an intelligence purpose. It forwards the packets based on the destination address. It is a part of data link layer (layer 2).
Router : Forwards the packet between the same or different network. It is a network layer device (layer 3). A router uses IP address.
Now let us see the various networking planes present in general :
Data Plane : Data plane is used to transfer the data between the devices. It deals with the entire processes involved in forwarding the packets from source to destination. It is also referred to as forwarding plane , user plane and carrier plane .
Control Plane : As the name suggests, it controls the movement of data. It deals with functions and processes that help determine the best path to transfer the data. Routing protocols are used in this plane to discover the devices on the network and understand network topology.
Management Plane : Its prime function is to control, monitor and manage the devices, and carry the administrative traffic. Protocols such as SNMP can be used for such operations .
Now it’s time to start exploring our main topic that is all about the Software Defined Network (SDN Network) technology in detail .
What Is Software Defined Network (SDN Technology) ?
SDN work mainly on the Control and data plane (it separates both the planes) . It employs the virtualization techniques in the networking space . SDN technology uses a smart controller to manage and monitor traffic through various Routers and switch combinations and further make the use of the dynamic routing of traffic efficiently .
The main idea behind SDN is to separate control and data plane and to make networks agile and flexible. SDN is a trend that is gaining importance with established vendors such as Brocade, Cisco, HP, and VMware.
SDN architecture is built using a combination of software and hardware that separates the SDN control plane and the SDN data plane of the network . Let us now understand the SDN architecture in the next sections .
What Is The Software Defined Network (SDN) Architecture ?
As stated earlier , SDN basically work to make the control and data plane separate and well segregated in true sense. Let us now look at its various layers :
Infrastructure Layer : It consists of network devices. This layer will be the physical layer .
Control Layer : Network Intelligence resides in the control layer. Control plane has the control logic for managing the network. In SDN, Controller is the brain of the network. It is the separate hardware that is hidden by Hardware abstraction layer(HAL). Flow entries of multiple devices will be manipulated by the controller.
Let us take one example , consider a bus carrying passengers in it . Here the passenger in the bus works like physical/data plane . Moreover, the controller who controls the bus (driver of the bus) works like the control plane or SDN controller.
Complete Operation Of The SDN Network !!
It’s time to understand the actual operation of Software Defined Network technology in detail . So let us proceed further .
In SDN, we have a central controller for the control plane. In the above diagram, you can see the SDN controller, which is responsible for the control plane.
In SDN, switches have a data plane and no control plane. The SDN controller feeds the switches’ data plane with information from its control plane.
SDN basically employs a centralized controller , a single device does the configuration of the entire network. This controller has the full access and observation of everything that is happening in our network .
The SDN controller uses two special interfaces:
- Northbound interface (NBI)
- Southbound interface (SBI)
To program the data plane, the SDN controller has to communicate with our network devices. This action is done through the southbound interface, which is a software interface, often an Application Programming Interface (API) .
API : A software interface that allows an application to give access to other applications by using pre-defined functions and data structures.
Some popular southbound interfaces are:
1. OpenFlow: It is the most popular Southbound Interface ( SBI) at the moment, and an open source protocol from the Open Networking Foundation. There are few network devices and SDN controllers that support OpenFlow.
2. Cisco OpFlex: This is Cisco’s answer to OpenFlow. Cisco submitted the protocol to the Internet Engineering Task Force (IETF) standardization process in April 2014.
The northbound interface is utilized to access the SDN controller. It allows the administrator to access the SDN to configure it or to retrieve information from it.
This could be done through a GUI. It also offers an API that allows other applications access to the SDN controller.
Multiple applications can access the SDN controller via API.
A user will start using the GUI to obtain data about the network from the SDN controller. The GUI uses the API at the backend .
To configure the network or to get information from the SDN controller, API can use scripts that are written in Java or Python .
SDN controllers uses a REST API (Representational State Transfer) . It uses HTTP messages to send and receive information between the SDN controller and application.
When the SDN controller receives the “HTTP GET” request, it will reply with a “HTTP GET response” message with the information that was requested . The information is delivered in a common data format (XML and JSON formats)
The main goal of SDN network is to make any network open and programmable for developers . So as per the requirements , a developer can able to alter the network behavior by means of various network applications .
In a SDN model , we basically have three components i.e. SDN controller (i.e. a network OS providing a programable interface) , forwarding devices (receives packets of data , execute actions like modifying or dropping headers of the packets , update counters etc) , and finally on the top we have various network applications that can take actions directly on the network parameters .
The decision , what exactly required to be done on the packets forwarded by the forwarding devices , is taken by the SDN controller .
SDN focuses on the following key areas:
- Separation of data plane from the control plane.
- Centralization of the control plane.
- Standardized interfaces between the device and controller.
- Programmability of control plane by external applications.
SDN allows the user to treat all the devices equally by hiding the vendor or device specifics of the data layer, thus representing the entire data plane as a virtual abstract layer.
SDN provides the flexibility to view the entire data plane infrastructure as a virtual resource that can be configured and controlled by an upper layer control plane. In an SDN architecture, the network appears as one logical device to the applications.
Is There Any Significance Of Centralizing The Control Plane ?
The control plane defines the controls and intelligence required by the data plane. The data layer hardware devices are now free from their individual control layers and can act as a collective resource.
Centralizing the control plane allows to inspect the state of the data layer and make adjustments dynamically to respond to new demands and changing conditions.
The control layer provides a global view of all the network-wide resources, representing all the network devices as one virtual logical network.
Control and Data layers are generally referred to as North and Southbound interfaces . As you know, Southbound interfaces from the controller communicate with lower level hardware infrastructure and northbound interfaces communicate with business applications.
Programming the control plane allows different parts of the network to communicate absolutely and gives a network flexible adoption control.
SDN controller software runs on a separate hardware and thus providing centralized access to the entire network. Applications can use the northbound messages to extract information about the network .
Automation through network programmability (by using a DevOps method for the network) is one of the methods in which IT can check the costs associated with rapid growth without burning out engineers .
What Is OpenFlow Concept In SDN Network ? (Protocols Used In Software Defined Network Technology)
OpenFlow is the protocol that allows the SDN controllers to communicate with the forwarding plane of network devices. It is considered one of the first software-defined networking (SDN) standards. An SDN Controller is the “brain” of the SDN network.
Any device that wants to communicate to an SDN Controller must support OpenFlow protocol. Through the OpenFlow, the SDN Controller pushes down changes to the switch or router flow-table allowing network administrators to segment traffic, control flows for optimal performance, and start testing new configurations and applications.
Benefits of OpenFlow Protocol in any SDN Network
- Programmability enables innovation/differentiation.
- Accelerate new features and services introduction.
- Simplify provisioning.
- Optimize performance.
- Granular policy management.
- Decoupling of Hardware and Software,
- Control plane and forwarding
- Physical and logical configuration.
What Are SDN Controllers Used In Practical Networking Areas ?
OpenDaylight is an open source SDN controller. It is a well known open source SDN controllers at the moment.
We will need some switches that support OpenFlow to test open daylight. The best virtual network to test open daylight is Mininet. Mininet allows you to run a virtual network on your computer with devices that basically support OpenFlow.
OpenDaylight SDN controller on top and two OpenFlow switches that are controlled by the SDN controller. Two hosts will be connected to the switches. Refer the below set up :
DHCP or Dynamic Host Configuration Protocol is a network protocol that enables the server to automatically allocate an IP address to a computer from a pool of numbers (i.e., a scope) configured for a given network
SSH is known as a cryptographic network protocol that is used for operating the network in a secured manner. One of the most popular protocols that are used between the network devices and the SDN controller is OpenFlow. E.g., OpenDaylight.
Industry Trends With Respect To The Implementation Of The SDN Network !!
SDN technology is very much evident in any networking solutions provider . Here we will look into the topand renowned SDN tech providers :
Avaya is an American multinational company that provides complete network solutions.
Avaya presents its SDN framework as a use case for the below services.
- Cloud-based service
- IT as a service solution
- Software defined data center (SDDC)
Avaya’s SDN framework is based on IEEE/IETF shortest path bridging standard and OpenStack – open source cloud operating system.
Brocade is also an American company that serves network hardware and software products, and it offers SDN enabled controllers built completely from opensource OpenDaylight software.
Brocade’s literature on SDN controller states that
It can deliver a common network view for multi vendor networks and virtual machines , also offers smooth adoption to SDN and a complete application portability for an application built on OpenDaylight .
Cisco is one of the largest multinational company that deals with network devices. It is one of the worldwide leaders in IT and Networking. Cisco has committed to SDN by providing production ready OpenFlow based controller and OpenFlow agents.
4. Hewlett Packard
Hewlett Packard (HP) is a popular software and hardware vendor that has shown its focus to SDN.
HP provides products and solutions based on the ONE definition. At the infrastructure level, they provide OpenFlow switches, routers, controller and other systems. HP advertises SDN applications for network policy management, virtual networking, cloud computing, data center and more.
5. VMware NSX
VMware NSX is the network security and virtualization platform for the Software-defined data center. It is originated from VMware after they acquired Nicira in 2012.
Software-defined networking (SDN) was launched into VMware after this acquisition. This solution decouples the networking functions from the physical devices, in the way similar to decoupling virtual servers (VMs) from physical servers .
Hope you really liked this post regarding the Software Defined Network setup and architecture . Stay tuned for more interesting stuff in this series .