Not so long ago, Software Defined Networking (SDN) was trumpeted as the next big thing.
Moving from traditional statically defined networking objects that were configured manually by person, SDN enabled an overall view of the network, with devices instead automatically configured in response to network events, such as adding or changing a service offering on the network. And with the newfound ability to separate network set-up and configuration (control plane), from the actual movement of packets across the network (data plane), SDN was seen as the technology to revolutionise network management.
At the very least, most will agree that SDN must be used to separate control and data planes, but beyond this I have often found the technology to have many different meanings.
I remember discussing SDN with a client in 2012. They said, “well that’s Microsoft’s OpenFlow” (a protocol that allows a controller to interact with devices). I was both surprised and confused, because I had been implementing a model based approach with orchestration (automation with a user-friendly interface). To add further confusion later down the line, people then began to recommend combining SDN with Network Function Virtualisation (NFV).
Then in 2014, along came SD-WAN, where manufacturers were pushing hardware and software to improve the operational efficiency of businesses. We then saw terms such as abstraction interfaces, cloud and telemetry thrown into the SDN mix, and every protocol and initiative was given the prefix “open”.
So who was right? And what are all these components? The following sections outline some of SDN’s best applications, and some other terms used in conjunction with the technology.
There is one common theme in all SDN use cases, and that is the application of an extra controller software layer. This automates the provisioning of services on a network, rather than requiring human interaction with devices.
By eliminating human error, the extra layer provides consistency and reduces management time. Yet how this controller is given instruction, and how it communicates with devices, often varies greatly.
OK, so we can programme a controller to automatically push configuration or routing changes into the network, but how do we programme the controller?
First, attain a business request, and then using an overall view or model of the network, automatically pass instructions to the controller based on the network applications and services. This process is known as orchestration.
Application Programming Interfaces (APIs) is a general programming term for the communication of information – specifically used to specify software structures that can be interpreted by other software. An example of an API is the information contained in a login that is automatically available to other applications (that are single sign in).
In the context of SDN, APIs form the communications that exist between the different layers in the SDN architecture. For example, a business request to reserve bandwidth is framed as a request to the controller to make a change in the network. The controller uses an API to change the configuration of specific devices. The following framework shows the interaction of northbound and southbound APIs:
OpenFlow - a definition of SDN in the early days - is in fact a southbound API “standard”, developed by the “Open Networking Foundation”(ONF).
In networking we run security functions, such as firewalling and intrusion detection, routing functions, such as switching and load balancing, and other network services, such as authentication and domain name service. In the past, each of these functions has been sold on a separate piece of hardware, usually proprietary, and from a separate vendor. Now we can talk about each of these functions working as a piece of software independent of the device. And because a single physical machine can now be set up to run multiple virtual machines, NFV is replacing individual network devices.
It is also worth noting that NFV is in fact a different technology to SDN, but because many organisations take advantage of installing virtual network functions as part of their SDN migration, it can be considered “complementary” Open Networking Foundation.
NFV gives rise to a whole new range of applications and terms. For example, take a single function and add it to a virtual machine, you end up with a VNF (virtual network function). In this case, instead of using a dedicated proprietary piece of hardware, you can use a commercial-off-the-shelf (COTS) machine also known as a “white box”. But it is important to note that, according to the ONF, “an SDN controller may instantiate a VNF on a container”.
Because data is transported across a network from end-to-end, passing through many devices (physical or virtual), the automation of a new service involves touching each of these devices or functions. For example, bringing on a new server for user interaction could involve switches at either end, routers through the middle of the network, and one (or more) firewalls for security and proxy devices for cached information. Therefore, to provision a new data transport service, each of these devices will have to be set up to process the information – a chain. Service chaining is part of the orchestration involved in SDN.
Cloud service providers (with solutions such as Network as a Service (NaaS), Platform aaS, Software aaS, in fact anything aaS) don’t want to dedicate separate hardware to each customer or function, but they do want to offer self-provisioning and automated orchestrated networks to their customers. As a result, cloud providers will definitely use both SDN and NFV in their networks.
The move to SDN is the move to automatic changes in the network, but what are these changes based on?
The network devices will measure the capacity, latency, and other performance characteristics of the network. This information will then be passed on to the application layer of the SDN architecture, and the layer will then instruct the controllers to make changes to the network.
This process of gathering and communicating network information to SDN applications has been coined ‘telemetry’. Real-time telemetry and analytics are now considered , “essential to SDN Management and Orchestration”.
Abstraction is essentially a fancy term for hiding the details and simplifying user interaction. Therefore, in the case of SDN, it is grouped with orchestration.
Agile methodologies (the continuous delivery and operation of software) are considered the best way to move forward in software development using DevOps (development and operations) teams, or - in fact - any collaboration or cross-functional teams.
Frequent software increments can be made to avoid major upgrades every several years or so. And since SDN involves software, and agile helps software development, agile can be used for SDN. But it is important to note that agile is wider than just SDN, and DevOps arose from the agile way of working.
Some of the first ever discussions on SDN came from the “ONF”.
The ONF stated: “ONF projects can petition the ONF to publish artefacts such as APIs & Data Models as Software Defined Standards.”
But beware! Vendors will continue to offer their solutions as added value, and often as proprietary.
SD-WAN is one very clear use case for SDN. It is aimed specifically at enterprises with many branch offices that require resilient connection to data centres (public or private). With one simple device at the branch, automated use of bandwidth will be available.
Another clear use case for SDN, SD Data Centre involves a programmable set of devices, in which network functions can be “spun up” to meet the needs of the virtual machines offering compute (servers) or storage.
But perhaps it is better put:
Intent Based Networking (IBN) is all elements of SDN, combined and improved. For example:
The term “SDN washing” has come to mean the way in which vendors will now re-label a previous legacy solution with the term SDN, to generate fresh sales. It is worth noting that there are also cases of “cloud washing”, and the newer, “intent washing”, out there – both with the same implication.
As I have shown, SDN is a term widely misunderstood, often representing a multitude of other terms. Perhaps its “definition” best sums it up:
Software-defined networking (SDN) is an umbrella term encompassing several kinds of network technology aimed at making the network as agile and flexible as the virtualized server and storage infrastructure of the modern data centre.
Gartner has positioned Vodafone as a "Leader" in its Magic Quadrant for Managed M2M Services, Worldwide report 2017, for the fourth consecutive year