Note

In order to understand SDN, you’ll need a good grasp of the ‘Logical Planes’ of networking.

Software-Defined Networking (SDN) is a network management approach that involves centralizing control of the network-wide control plane into an application called a controller. This is similar to how Lightweight AP wireless networks will be controlled from a central WLC.

SDN is sometimes called Software-Defined Architecture (SDA) or Controller-Based Networking.

A traditional control plane would use a distributed architecture. For example, each router in a network might run OSPF and the routers share routing information and then calculate their preferred routes to each destination independently.

An SDN controller, centralizes these types of functions; e.g. the controller would handle route calculations.

OSPF, and IP routing generally, are just an example. Exactly which functions are centralized and which are left to the devices depends on the particular SDN.

SDN controllers interact with devices programmatically using APIs (Application Programming Interfaces).

Southbound Interface (SBI)

The SBI is used for communications between the controller and the network devices it controls.

Typically, it consists of a communication protocol and an API. This API allows the controller to access information on the devices and to modify the data in their data-plane tables (MAC table, ARP table, routing table, etc.)

There are several SBIs that a network can use, including:

  • OpenFlow
  • Cisco OpFlex
  • Cisco onePK (Open Network Environment Platform Kit)
  • NETCONF

Northbound Interface (NBI)

The NBI allows interaction with the controller, access to the network data it’s gathered, and to make changes to the network via the SBI. To be clear, the NBI allows admins/engineers to access the controller.

A REST API is used on the controller as an interface for apps to interact with it.

Data is typically sent in a structured format such as JSON or XML.

SDN Layers

A typical SDN can be divided into three distinct layers:

  1. Application Layer; this is distinct from the OSI Model’s Application Layer. This contains the scripts/apps that tell the SDN controller what network behaviors are desired.
  2. Control Layer; This is distinct from the Control plane, although it does contain the control plane. Contains the SDN controller, receives and processes instructions from the application layer.
  3. Infrastructure Layer; Contains the network devices that are responsible for forwarding messages across the network.

Underlay, Overlay, Fabric

Underlay is the underlying physical infrastructure of an IP network. (wired and wireless, anything that provides IP connectivity).

Overlay is the virtual network build on top of the physical network; all the VLANs, tunnels, etc.

Fabric is the combination of the overlay and underlay; the physical and virtual network as a whole.

You could say that the underlay’s purpose is to support the overlay.