Someone recently asked me what SDN is? Even though I have written multiple blogs related to SDN, I was not able to give a crisp answer which I was satisfied with. Since its fashionable to associate any new development in Networking to SDN, the definition becomes complex. In this blog, I will mention the different definitions I found for SDN in the Internet along with my definition in the end.
Approach to computer networking that allows network administrators to manage network services through abstraction of lower-level functionality. This is done by decoupling the system that makes decisions about where traffic is sent (the control plane) from the underlying systems that forward traffic to the selected destination (the data plane).
The physical separation of the network control plane from the forwarding plane, and where a control plane controls several devices.
The definition of SDN that is currently emerging focuses somewhat less on decoupling and more on providing programmatic interfaces into network equipment, whether or not there is a separation of the control and forwarding planes.
Following are some characteristics of SDN. Not all SDN solutions have all the characteristics.
- Split control plane from forwarding plane. Example is control plane implemented by centralized controller and forwarding plane programmed using Openflow.
- Have a centralized policy controller and keep control and forwarding plane in the device. Example is Cisco ACI model.
- Have programmatic interface to Networking devices and allow integration with Devops tools like Puppet, Chef etc.
- Use general purpose hardware(white box) for Networking switches rather than proprietary hardware.
- Use of Open source technologies for networking. Examples are Opendaylight, Openstack.
- Virtualize hardware devices into software. Examples are Virtual switches, firewalls, routers, load balancers etc.
- Network virtualization and Overlays. Example is Vmware’s NSX.
At this point, you would have realized why it is difficult to define SDN. The scope for SDN is very huge and there are different approaches to implement SDN solutions.
My definition of SDN:
SDN is a modular Networking solution that is Cloud friendly which makes it easier to configure, deploy, maintain and automate.