When getting to know software defined networking, you'll encounter a number of terms that are used in conjunction with the technology. Some of the terms are unique to SDN, while others describe technologies that, while not unique, are frequently used in SDN designs.
It's helpful to have an understanding of these terms and their context. We'll take a look at three basic terminology categories as they relate to SDN: controllers, switching and overlay networks.
One of SDN's big ideas is that a device called a controller talks to all of the network devices in a domain, learns the network topology, and programs the network from a point of central omniscience. An SDN controller shifts the model of network programming from distributed (network devices communicating with each other to determine forwarding paths) to centralized.
Central programming of the network is the significant value that a controller brings to a business. Conceptually, a controller can be used to deploy business policies to a network holistically and in a device-independent way. The controller acts like a layer of network middleware that abstracts the underlying physical network components such as switches, routers, firewalls and load-balancers.
With an SDN controller programming the network, operators are no longer in the position of having to program the network devices individually through traditional means, such as the command-line interface. In addition, unique network forwarding paradigms can be created based on criteria such as the dollar costs or security policy requirements.
A controller accomplishes this network programming via software, and it is in this software that SDN's promise of flexibility comes. The controller is a platform on which software is run, as well as being a communications gateway that software can communicate through. Most controller architectures are modular, allowing the controller to communicate with different kinds of devices using different methods as required.
Thinking again about an SDN controller as middleware, there are two directions of communication implied. The most discussed to date is southbound communications. When a controller is programming network devices and receiving data from them, this is known as southbound communication. An example of southbound communication is the controller programming network switch forwarding tables using OpenFlow, which we'll discuss more. The other direction is northbound. Communications between applications that wish to program the network and a controller are described as northbound. An example of northbound communication is an application like VMware's vCloud Director requesting network provisioning services via a controller.
When it comes to SDN, perhaps the most talked about device is the network switch, Ethernet switchesin particular. For years, Ethernet switches have been increasing in speed and density, providing data centers with uplinks for their hosts, blade centers and Ethernet storage. With the advent of server virtualization enabled by hypervisors, the software switch has also become significant, plumbing virtual servers to virtual network interface cards, aggregating traffic and sending it out of the hypervisor to the physical network.
Sign up for Computerworld eNewsletters.