What has been the regular way to store data onto networks throughout the history?
Before: If we wanted to store data on the network, we had a server consisting of hard drives the data was stored on.
Server contained all the data, the operating system and of course the hard drives.
This server contained the data, hard drives and the operating system.
One box was responsible for everything.
If some kind of failure were to happen – The data was gone and the bow were unusable.

Storage Area Networks

Idea of Storage Area Networks arose, a change of paradigm in terms of data storage.
Separated the physical equipment from the control mechanisms.
Storage area networks: “Dumb” data storage devices with a management system.

Virtualisation

Before: Operating systems were installed onto the hardware itself.
If a failure happened: the entire system went down.
Idea behind SAN adapted to computers – Virtualisation.
Instances of operating systems can now flow from different pieces of hardware.

Principles of Networking

We have been going through this process of separating the intelligence from the hardware in multiple fields of computer science.
In multiple fields of computer science: Going through process of separating intelligence from hardware.
Networking: Has stayed the same for a long period.
Software and hardware has been improved, but..
The intelligence system has been kept untouched.

In Terms of Networking

Separate the intelligence from the hardware in networking as well.
Adapt the ideas behind SAN and Virtualisation into networking terms.

Separating Intelligence from Hardware

Separating intelligence from hardware: must create a management system.
Control over the entire networking infrastructure at one single control panel.
Before: Had to access every network component to do changes.
Now we can do it through one single control point.
This is what Software Defined Networking is all about!

Operating System Model

Desktop computer OS can be broken down into three layers.
First: The operating system itself.
The operating system manages access from applications to the hardware.
The lower layer (south of the OS): Hardware such as processor, storage, memory and network interfaces.
North side of the OS: applications.
The ability to develop applications makes a system flexible.

SDN Model

The SDN model looks similar to the operating system model.

Network Operating System

Middle layer consists of the Network Operating System.
Also called SDN controller. Acts as the system’s brain, management console.
It performs all the management for all the services and the data. Sets up all the configurations.
In SDN this is now only a single interface. This allows to configure all of the networking equipment on the network – automatically.

Data Layer

The network forwarding devices.
These forwarding devices receives packets and make various types of actions on these received packets.
Dropping the packet, modifying the headers, sending the packets.
They get all instructions from the SDN controller.

Application Layer

The application layer is on the north side – the topmost layer.
Serve network related applications.

Planes

Three different types of planes in terms of networking:
The data plane, the management plane and the control plane.
In legacy networking, All of the planes are combined and implemented in the hardware of each and every one of the multiple networking devices.
Let’s do the SDN approach and separate all this!

Infrastructure

Provide some more details about the SDN model and its different components.
Abstraction of the planes.

Data Plane: Forwarding devices

As already stated, at the lowest layer are the forwarding devices.
This plane consists of “dumb” routers and switches.

The SouthBound Interface

The SDN controller needs a way to communicate with network forwarding devices.
Different types of messages includes: packet handling instructions, alerts of packets drops in the network, status changes and information about statistics.
This happens over the SouthBound Interface.
The list you see are different versions of protocols for the SouthBound Interface, where as the most usual one is called OpenFlow.
OpenFlow is therefore a control protocol for how you control all those networking devices – to talk to the data equipment in the Data Plane.

Control Plane: The Network Operating System

As earlier stated, the controller will typically run services, like

Topology service, inventory service and statistics service.

Topology services: Builds topology graph and determines how forwarding devices connects to each other.
Inventory services: Find all SDN enabled devices in the network, and also record basic information such as supported capabilities and version of OpenFlow.
Statistic services: Obtaining counter information from the forwarding devices.

Application Interfaces: The NorthBound Interface

The NorthBound interface ensures communication between the SDN controller and the multiple network applications.

Network Applications

The network applications assure a great deal of opportunities.
They ensure all services a network might have, such as firewalls and different settings for QoS for different protocols.
Network applications can basically affect whatever a user requires, in the context of controlling network behaviour and implementing network policies.

Packet Flow

How does packets flow in an SDN network environment?
What happens when a packet arrives a forwarding device controlled by an SDN controller?
The header of the incoming packet will be parsed by the forwarding device.
If the forwarding device does not already know what to do, it asks the SDN controller.
The network applications on the SDN controller will then tell what actions to take, and send this information down again to the forwarding device.
The forwarding device will then make the received operation on the packet.
Furthermore, the instruction will also be stored on the device.
In this way, future packet’s won’t have to check the SDN controller.
Device by device – this will continue until the packet has left the network.

Packet Flow

The cached instructions stored on the device make is possible to create what is known as a fast path for future packets.

How can SDN be implemented in the network?

We need to be slicing the network in different ways in order for the presence of an SDN network., which may occur at different layers.
The coordination of traffic can be directed to completely different SDN controllers.
Furthermore, different types of traffic can be handled by different network applications, or differently by just a single application.
Therefore, the network can be shared by different users, where each unique user can use the network in different ways.

Fault Tolerance and Scalability

An SDN controller is referred to as being logically centralised.
SDN controllers is said to be logically centralised, which is different from saying it is physically centralised.
If we were to depend on only one single physical SDN controller: single point of failure for the entire network, as well as limitations in terms of scaling.
We have different methods to making sure that SDN provides both highly scalable and available networks.

Clustering

The concept of clustering does not introduce anything new in the field of computer science.
Instead of a single system to control and manage the network, we have a cluster of them, which can share load balance and workloads.
Improves scalability: There are now multiple systems that can handle different requests.
Improves availability: There are still active systems, even if one or more of them go down.

Regions

SDN networks can be divided into different sets of regions.
Each of the regions now has a regional SDN controller which configures the network by themselves.
These different regions would then be able to communicate using East/West controllers.

Hierarchy

SDN controllers may also be designed according to a hierarchy of SDN controllers.
In such a design: The topology consists of both high-level and low-level controllers, where the lower-level controllers are located closer to the data plane.

What has changed from traditional networks to SDN?

Traditional networking: The network nodes are like locked black boxes.
As earlier stated, both the control and management plane are chained to the data plane.
Everything is coupled together in a single network node.
This makes direct access to to alter the behaviour of the data plane relatively difficult.
There, to implement new network behaviour, one have to think in terms of what’s already available in the plane already.
This limits the options in case operators want to implement new network behaviours.
Furthermore, since each network node is configured individually – there could be a high number of nodes to reconfigure to implement new network policies.
This feels unnecessary complex.

SDN

Consists of a logically centralised controller.
This controller has a global view of the entire network.
As a result of centralised control: Much of the complexities behind of the legacy network disappears.
Ultimately, this brings benefits such as:

Centralised Network Provisioning: SDN can load-balance and distribute traffic more efficiently to prevent chokepoints.
Improved infrastructure management, by provisioning infrastructure with a central console for management.
Automation: Which helps keep more predictable, consistent environment and promotes scalability to take care of peaks and valleys in traffic load.
Reduced Operating Costs: as a result of centralised management, operational efficiency and better hardware use.

Summary

A new and innovative approach to making the network more agile and flexible.
It does so by separating the intelligence from the hardware.
The hardware, routers and switches, become “dumb” devices.
Makes it possible to control all of those networking devices from a centralised control point.
Allows you to automatically allocate and be able to shape the traffic depending upon your current needs.