Networks have definitely been evolving over the years. While you can certainly still build and manage networks the good old fashioned way with the command line interface and interacting with your network on a device by device basis, there are definitely alternatives. There are technologies, applications, and systems that will automate your network operations and even assist with the initial build! Or, if you are not ready for that or don’t quite have the budget, you can still script the typical manual device interaction process to make it quicker, easier, and more streamlined. In this post, we are going to dig into the main alternative that I mentioned above. I am referring to the concept of software-defined networking (SDN). This was a phrase and concept that was very nebulous to me for quite some time (and it still is some days). I think you may get different answers from different people when you ask them to define software-defined networking. My high level definition, or at least my interpretation of SDN is as such. Software-defined networking abstracts the underlying network from the applications it supports in an attempt to have a dynamic, flexible infrastructure to support the varying business needs while remaining stable and resilient. Alright, I know what you’re thinking, “wow, it doesn’t get much more nebulous than that”. I guess that is my fancy way of saying “hooray for overlays”! I think that the keys to SDN are more-so in the characteristics than the definition, but I at least wanted to get my high level interpretation out there. In the rest of this post, we will go over the characteristics of and a use case for software-defined networking.
My interpretation of SDN characteristics are the following.
- Centralization of Management/Configuration
- A software-defined network should contain a separate management plane. This would typically be redundant servers that admins and engineers interact with to configure, manage, and monitor the network. Having a dedicated management plane controls the configuration of the network and allows for the removal of manual, per-device administration through automation.
- Centralization of Monitoring
- By having a centralized management plane, you can also have centralized monitoring of your network. The individual network devices can be configured to stream logs and telemetry to the management plane server(s) so that admins and engineers have a single source for monitoring and correlation.
- Separation of Control and Data Planes
- This characteristic is directly related to the “hooray for overlays” comment I made earlier. With traditional networking, all routers need to hold a route in their routing tables for all possible destinations in the network. Also with traditional networking, when you add routers to the mix, you isolate networks and remove the ability for clients to roam the network and maintain their Layer 2 adjacencies and IP addresses.
- By removing at least most of the control plane from the individual routers, you allow for more efficient routing tables. SDN also allows for IP mobility through the use of overlay tunnels. Essentially, a native packet gets encapsulated into an overlay packet to get forwarded to the destination router. Rather than routers needing to know about all possible destinations in the network, they leverage a centralized control plane. Routers will inform the centralized control plane of devices connected to themselves and when a router needs to forward a packet to destination it does not know about, it queries the control plane. The control plane process will inform the source router which destination router holds the destination host and the source router creates a tunnel (overlay) with the destination router to forward the packet across the underlay routed network.
The major use case that I want to bring up for SDN is around stability and mobility. To mean, a network design dream is to extend Layer 3 to the access layer to remove the complexity and potential stability issues around relying on large spanning tree domains. However, with traditional networking if you extend Layer 3 to the access layer, you remove the ability for clients on separate switches to be on the same Layer 2 domain and subnet. There are legacy applications and systems that rely on this to be possible. With software-defined networking, network engineers can deliver stable, Layer 3 underlay networks while still supporting this legacy mobility with overlay technologies such as LISP and VXLAN.
Software-defined networking has really changed how we manage and operate networks over the years. One thing to keep in mind is that while SDN adds many benefits, there are potential downsides to consider. While SDN can remove the complexity of large spanning tree implementations, it adds complexities with overlay technologies. Yes, SDN products can handle that complexity for you, but if something goes wrong, you may need to understand how these overlay technologies operate to be able to troubleshoot quickly.