Somebody asked me to explain software defined networking (SDN), and I thought a good way to answer the question was to send them to an article that explains the concept. I couldn’t find anything on the web that explains SDN in plain English. This is not unusual for technical topics since tech guys generally have problems explaining what they do to laypeople. They hate boiling things down to simple language because a simple description doesn’t capture the nuances of the technology. I’ve always challenged engineers I work with to explain what they do in a way that their mother could understand – and most look at me like I’m an alien. I won’t promise that this is in plain English, but here is my shot at explaining SDN to a non-technical person.
The basis for SDN is that it is a technology that allows networks to be centrally and intelligently controlled or programmed. What does that mean?
There was a time in early computing when a network owner purchased all of the network gear from one vendor. Doing so made it possible to control the network with one set of software as long as the network owner could master the protocols used by the vendor. This sent a whole generation of IT technicians to become Cisco certified to prove that they had mastered Cisco network gear.
But it’s no longer reasonable today to have a complex network provisioned from one vendor. For one thing, most networks now use the cloud to some extent as part of the network – meaning they use computing power that is outside the direct control of the network owner. The pandemic has also forced most companies into allowing their network to communicate with remote employees – something that many companies refused to consider in the past. Networks have also gotten more complex due to the need to control Internet of Things devices – networks don’t just communicate with computers anymore.
The first goal of SDN is to bring everything under one big software umbrella. SDN provides a software platform that lets a network owner visualize the entire network. What does that mean in plain English? The goal of a network owner is to efficiently flow data to where it needs to go and to do so safely. It’s incredibly challenging to understand the flow of data in a network comprised of multiple devices, multiple feeds to and from the outside world, and constantly shifting demand from users on how they want to use the data.
SDN is a software platform that enables the network owner to see the data flow between different parts of the platform. Modern SDN technology has evolved from the OpenFlow protocol developed in 2008 in a collaboration between Stanford University and the University of California at Berkeley. The original platform enabled a network owner to measure and manage data traffic between routers and switches, regardless of the brand of equipment.
Over time, SDN has grown in sophistication and can do much more. As an example, with SDN, a network owner can set different levels of security for different parts of the network. A network operator might wall off traffic between remote employees and core data storage so that somebody working remotely can’t get access to some parts of the network. SDN software provides a way to break a network into subsets and treat each of them differently in terms of security protocols, the priority of routing, and access to other parts of the network. This is something that can’t easily be done by tinkering with the software settings of each individual router and switch – which is what network operators tried to do before SDN.
There have been huge benefits from SDN. Probably the biggest is that SDN allows a network owner to use generic white-box devices in the network – inexpensive routers and switches that are not pre-loaded with expensive vendor software. The SDN software can direct the generic devices to perform a needed function without the box needing to be pre-programmed. That’s the second big benefit of SDN – the whole network can be programmed as if every device came from the same vendor. The SDN software can tell each part of the network what to do and can even override preset functions from vendors.
It’s not hard to see why this is hard for a network engineer to explain because they don’t want to explain the primary goals of SDN without dipping into how it does all of this – and that is something that is incredibly hard to explain without using technical language and jargon. For that, I’d send you to the many articles written on the topic.