Software-defined networking is the term that refers to the technology that allows the configuration of your network devices by a single centralised location. Traditionally, networks engineers configure each switch or router individually via command line by a console cable, SSH or telnet session. SDN technologies will open up the possibilities to write a program that can either do this configuration for you and make it easier to perform certain tasks or multiple tasks without the need for the long syntax of commands. These programs are written in programming languages such as Python, NETCONF or Java.
Data plane, Control plane and the Management plane.
A Cisco router or switch has 3 basic architectural planes of operation. The Data plane, the control plane and the management plane.
- The Data plane is in charge of data or packet forwarding or simply just layer 2 data transfer. The data plane handles tasks like encapsulation, decapsulation, checking the mac-address-table and filtering traffic against access control lists.
- The Control plane basically controls the data plane. It is responsible for populating the Mac address table or IP routing table. Routing and security protocols such as the Spanning Tree Protocol are run on this plane.
- The Management plane is concerned with administrative access to a network device and handles connections such as a Telnet or SSH.
In the instance where each of these architectural planes are running local on each of your network devices, this is referred to as a distributed control plane. If we have multiple devices that we are individually managing at the control plane, what if we moved the control plane from all of the devices onto one centralised Network controller? This is where software defined networking can shine.
Software defined networking introduces a device called a network controller where we can centralise the control plane and control your network devices from one central location.
Now, let discuss how the network controller communicates with the other network devices. All networking devices use Application Programming Interfaces to allow communication from the application layer. This technology allows for an application to send commands to the network devices and write configuration to the running-config.
Cisco Networking equipment actually has its own version of the SDN network and they call it ACI, Application Centric Infrastructure. This is simply the name that Cisco gives their SDN architecture. Cisco also has its own network controller they call an Application Policy Infrastructure Controller. The language in which the APIC speaks to the ACIs on the devices is called OPFLEX. The Software program will communicate with the controller through languages such as Python and Java. The network controller will then communicate with your devices through OPLFEX and sometimes through telnet and SSH.
Software-Defined Networking is a technology welcomed by the networking world. By centralising the management of all devices will save network administrators a lot of time it would typically take to configure and maintain their large infrastructure of network devices.