Before beginning with this article, I suggest you get a good idea as to what VIRTUALIZATION means. This could be done by reading my previous article on virtualization.
Once you are through with the concept of Virtualization, you can get introduced to the concept Software Defined Networking and Network Virtualization given in this article. Please feel interested to read up more on following concepts on your own time.
Planes in a Network Device
Routers and switches are the most commonly used network devices. Each network device has two planes in it :
- Control plane
- Data Plane
Control plane is the part of the device which is used take the decisions as to which routing protocol should be used. It is the plane which provides information to the data plane about the neighbouring networks. In simple words, control plane does the work of ‘planning’ and ‘decision-making’.
Data plane (also referred as Forwarding plane) is the part of the network device which has the actual routing tables which are populated with the information obtained from the control plane. It is responsible for the actual forwarding of the incoming packet to the correct destinations based on the routing table. In simple words, actual ‘execution of plan’ occurs at the data plane.
Software Defined Network (SDN)
Network devices that are connected to the network, have their own configuring mechanism based on their manufacturer. It is necessary to configure every network devices in a network separately and independently. There is no centralised control for the network administrators.
Software Defined Networks (SDN) are networks where the network administrators get the picture of the entire network topology and are capable of programming the entire network through a single interface. This is achieved by decoupling the control plane from the data plane of each network device. The decoupled control plane is nothing but the decision making software/application that is run separately on a general purpose hardware (x86 processor) instead of the network device itself.
SDN consists of a centralized controller (the control plane software) which is analogous to the operating system, running on a general purpose hardware. This controller is required to support at least two interfaces – a SOUTHBOUND interface to communicate with the data plane switches and a NORTHBOUND interface to support the running of Network applications like GUI for the controller, firewall etc. It is also called the Network Operating System. The southbound interface is usually the OPEN FLOW protocol.
Open Flow acts as the interface used by the SDN controller to communicate with the underlying switches (which contain only the data plane).
Open Flow Switches
The switches with only data plane and support for open flow protocol are called the OpenFlow Switches. They are Routers, Ethernet switches or access points that support the open flow protocol. The entire intelligence (control plane) is in the centralized controller which issues instructions to the OpenFlow switches for the forwarding of packets.
FlowVisor is a special purpose SDN controller. It sits between the openflow switches and the SDN controllers. It acts as a proxy controller that makes rich slices of the underlying network resources and delegates them to a separate SDN controller. FlowVisor promotes the isolation between the slices. FlowVisor supports multiple vendor switches and the controllers can also be different.
FlowVisor is analogous to the HyperVisor used in Server Virtualization. There may be multiple SDN Controllers each requiring an independent and concurrent access to the underlying network of openflow switches. Thus the FlowVisor makes rich slices of the underlying network and delegates one slice for each SDN Controller.
Network Virtualization (NV) enables better utilization of underlying network hardware resources through co-existence of multiple logical networks and better isolation of one logical network from another.
Why do we need NV ?
Consider the following three scenarios
A Cloud Services provider has to provide separate network resources to every tenant in situations where the tenants require to implement their own network protocols.
In all the above scenarios, it is necessary to have an independent and isolated network for every single experiment or type of traffic or tenant respectively. This is not possible using the traditional network architecture where heterogeneous network devices connected with each other.
The solution to the above problem would be to create independent logical networks over the existing physical network infrastructure i.e. Network Virtualization.
Network Virtualization is one of the important goals of Software Defined Networking (SDN). Providing network virtualization can be achieved using a special purpose SDN Controller called FlowVisor. FlowVisor helps in virtualization of the existing network infrastructure to obtain isolated logical networks that co-exist and are easy to manage.
FLOW VISOR – A BETTER SOLUTION THAN VLAN, MPLS
Although there exist technologies like Virtual LANs (VLANs) and Multiprotocol Label Switching (MPLS), FlowVisor used in SDN is different and indeed a better option. This is because VLAN and MPLS involve virtualization of the network only at specific layers. VLAN segments the network at Data Link Layer (Layer 2 or L2) and MPLS is used to virtualize the forwarding tables but FlowVisor segments and isolates the network as a whole. FlowVisor is a much more flexible method for network virtualization as it provides a method to virtualize any forwarding logic unlike VLAN which virtualizes a specific forwarding logic like L2 Learning or MPLS which virtualizes only the forwarding tables.
To conclude, SDN is an emerging technology that is neoteric. It is an active research area to be pursued as it has a lot of issues to resolve and challenges to face. SDN is one way of implementing NV and is an effective method. Interested readers can join online SDN forums and get regular updates in this field. They can also have a lookup further on
- Network Function Virtualization (NFV)
- OpenDaylight Project
- RouteFlow – A special purpose Controller
- Open Source Projects for SDN
Further, projects on SDN can be done using NS3- Network Simulator 3- with OpenFlow Support.