Software Defined Networks
A typical SDN architecture consists of three layers.
The ultimate goal for large data centers is the availability of a central orchestration layer that can be used by the data center administrator to allocate resources, monitor operations, and quickly recover from error conditions.
Application layer:
It contains the typical network applications like intrusion detection, firewall, and load balancing
Control layer:
It consists of the SDN controller which acts as the brain of the network. It also allows hardware abstraction to the applications written on top of it.
Infrastructure layer:
This consists of physical switches which form the data plane and carries out the actual movement of data packets.
Northbound APIs:
Applications using an SDN rely on the controller to tell them what the status of the network infrastructure is so that they can know what resources are available. Additionally, the SDN controller can automatically ensure application traffic is routed according to policies established by network administrators. The applications talk to the control layer via the northbound APIs and tell the layer what resources the applications need, and their destination. The control layer orchestrates how the applications are given the resources available in the network. It also uses its intelligence to find the optimal path for the application in the context of its latency and security needs. Northbound APIs are often RESTful APIs. Orchestration is automated and not manually configured.
Southbound APIs:
The SDN controller communicates with the network infrastructure, such as routers and switches, through southbound APIs. The network infrastructure is told what path the application data must take as decided by the controller. In real time, the controller can change how the routers and switches are moving data. The data no longer relies on the devices and routing tables to determine where the data goes. Instead, the controller’s intelligence makes informed decisions that optimize the data’s path.