What is an SDN?
SDN – Software-Defined Networking – is currently the hot topic that shakes the network world. It is impossible to have an article, a tweet, a blog, a publication or a conference without these 3 letters that seem to want to solve everything on our infrastructures. In such turmoil, network administrators are most often lost. What is an SDN? What is OpenFlow? What does it bring for me?
This article makes a simple presentation of the SDN, to allow you to better understand this current evolution of networks.
What is it?
SDN (Software-Defined Networking) also refers to a set of innovative technologies aimed at enabling centralized control of network resources, an orchestration of these resources and the virtualization of these resources by dissociating them from the physical elements of the network. network.
The goal of these innovations is to simplify network administration and, like virtualization in the server world, make the consumption of network resources by applications more flexible.
The purpose of the SDNs is to make the networks programmable via a centralized controller. Today switches and routers program their forwarding tables locally. Network devices make their own internal decisions about how to best direct traffic. These decisions are made using distributed information collected by routing protocols such as OSPF and BGP or protocols such as Spanning Tree. However, these protocols are not very flexible. To work together, all devices in the network must follow the rules defined by the standards. This leaves little room for creativity or for unusual business requirements.
Main SDN models
With SDNs, there is a clear separation between the control plan and the data plan. In SDNs, the control plan is placed in a centralized controller. It has visibility across the entire network, including the hosts that connect to it, and has a complete view of the network topology.
A programmable network
Historically, network administrators configure devices using a command-line interface or through the graphical user interface of devices. However, this method can be problematic. Implementing complex network configurations may require the engineer to separately configure several different network devices. Which is greedy in time, tedious and source of errors.
In making networks programmable, the goal of SDNs is to change that by providing administrators with application programming interfaces. These interfaces allow you to program network devices via multiple languages. The use of APIs also implies that network programming is not necessarily limited to network engineers alone. It becomes accessible to a set of tools and application developers.
An “omniscient” central software controller enables network engineers to implement specific and flexible traffic policies. The only limitations are related to the capacity of the software running the controller.
In a software-defined network, the administrator can organize traffic from a central control console. This without direct intervention on the different switches. If necessary, he can change the rules of any of them. In particular, it can manage the priorities of specific types of packets or even block them.
Openflow in an SDN architecture
When talking about SDN it’s hard not to mention OpenFlow.
In constant development thanks to the Open Networking Foundation, this protocol is a good example of how to implement network programming using a central controller.
OpenFlow is an agnostic standard that describes how to program a network switch. It identifies the specific flows in with a variety of criteria (destination IP address, MAC address …), then performs actions on these flows (traffic abort, forwarding via the port X or Y …).
A centralized OpenFlow controller with knowledge of the entire network topology can program these policies for all network switches, regardless of their brand.
The Software Defined Networking is accompanied by major changes on the networks in the years to come. Their architecture will evolve profoundly, facilitating new uses. All this will be due to programmability, openness, virtualization and orchestration.
All areas are concerned: WAN, data centers, campus, security … The challenge for network administrators is to support this change in order to take advantage of these new capabilities.