Transformation from Legacy Network to SDN
Moving towards SDN:
As we see the traditional network, each network device like router and switch has its control plane and data plane, and each device runs control software like operating system which includes Routing and Switching features like BGP, OSPF, EIGRP, Spanning-Tree, LACP etc. These end device runs these protocol individually to build network and forward traffic.
These integration between Software and Hardware limits the scalability of the network because each device do not have full view of network.
In order to dis-aggregate the control plane and data plane, we used a method called SDN which has single control plane software called SDN controller and multiple bare metal SDN enabled Switches (example open flow switches).
Core Features of SDN:
Following are the core features of SDN, these are discussed below.
Programmable Fabric: SDN makes the fabric programmable which means it can direct the traffic, Apply filters to packet, determine the least cost path etc. All these can be done by centralized controller.
Southbound Protocol: South bound protocol are the protocols through which Controller communicates with switches and routers to manipulate and optimize the traffic flow on programmable fabric. Example of south bound protocol is OPEN FLOW. An SDN controller can support various south bound protocol and various version of OPEN FLOW.
External API Support: With the help of External API support and SDN platform can able to communicate to various orchestration and cloud environment like VMware vSphere, OpenStack etc. Example VMware vSphere will talk to SDN to extend vDS switch from virtual environment to physical underlay network.
Central Monitoring and Network Discovery: As SDN controller has full view of network, it can discover all the physical link along with network devices. It can also present the map of all connected devices (host) connected to network. SDN also support monitoring and management protocol like syslog , snmp and also support API integration with third party NMS.
Network Performance: network performance depends how SDN controller populates flow table to SDN enabled switch. Some SDN controller pre-populates the flow tables to avoid delay. But as a first packet to SDN enabled network, if SDN enabled device does not find any entry in flow table, it will send packet to SDN controller to find out where packet needs to get forwarded. Once the details are derived, its entry is populated to flow table of SDN switches.
High-Availability: In order to provide the HA features SDN controllers must be installed in clusters which further supports scalability to add more SDN controller to provide load balancing and availability.
Following are the SDN components which are given below:
- SDN Controller: Can be one or more than one but in clusters
- SDN enabled switches: Uses southbound API to talk to SDN controller.
You can image the SDN controller as supervisor module (brain) of switch.
SDN Technologies for fabric:
There are two main technology used by SDN controller to manage and control SDN network.
- Fabric Programing: In this SDN controller directly communicates with SDN switches via southbound protocol like Open Flow, NETCONF, and OVSDB. With the help of these protocol, SDN controller program each member switch about fabric and populates the flow table for traffic flow.
- Overlay: In this SDN controller builds the OVERLAY network over existing underlay network, underlay network can be built of any existing L2 and L3 protocol and it should must provide IP connectivity between each switch. SDN controller use this underlay network to create the overlay network and send traffic by encapsulating protocol like VXLAN, NVGRE etc. Example: ACI, NSX etc.
History of SDN Controllers and its protocols:
Main key element of SDN controller is to disaggregate the software and hardware and also control plane and data plane.
SDN controller has following features:
- SDN controller can scale out any number of switches
- It supports any switch hardware
- Provides High-Availability features
- Uses southbound protocol like Open Flow, NETCONF, to communicate with SDN switches
- Uses northbound protocol to communicate with upstream Switches, Routers or applications outside of SDN. Example creating BGP session between legacy router and SDN controller.
Open flow was the first protocol developed at Standford for SDN to manipulate data plane to optimize the data traffic, its first version 1.0 was released in December 2009. It was designed to update the flow table in a switch so that network can quickly adapt to changing requirement.
Second invent after Openflow was NOX, which was original Openflow Controller, it was developed by Nicira networks in 2009 which was further donated to SDN community. It was providing high-level API which are capable of managing and developing network control applications.
Later Nicira along with NTT and Google developed ONIX which was more suitable for large network deployment. ONIX become base of VMWARE NSX and other network virtualization platform.
In 2010 a new controller called Beacon controller was developed by developers of standford university. It is Java based open source Openflow based controller. It has been widely used in teaching, research and was base of another controller called Floodlight. Beacon was first Web-based SDN controller and only supports star topology.
After Beacon was introduced , a new successful controller Floodlight was introduced, which was created by Big Switch network, this controller has fixed various issues of Beacon , and has web-interface as well as java based GUI. It also integrates OPENSTACK by quantum plugin.
Below are some commercial SDN Controllers which are player in SDN domain.