SDN (Software Defined Networks)
Hey folks! how you doing?
As you can see on the above's title, today's post is going to be about SDNs. Nowadays, datacenters are breaking many network technologies such as MAC tables, Spanning tree, VLANs, and so on. Is necessary to change some things in order to overcome this issues. Some interesting technologies have been developed to strike against this problems. The use of tunnels to address datacenters issues, like vlans exhaustion are well-known examples. These are VXLAN, NVGRE and STT.
Definition
The concept of SDN (Software Defined Networks) is quite simple, split the control plane and the data plane. This mean, having different devices for different purposes.
This is the typical scheme or internal architecture that we can find, in every device, nowadays. However, why I would like to change this?
Because moving control functionality (control plane) to centralized controller, will allow us to manage the different devices within a network without the necessity of configuring every device, one by one, manually. This "brain" will handle the more complex compute-intensive functions and will configure every device as well. On the other hand, devices will handle incoming packets (data plane) using its hardware. Resulting in a very simplier devices which will be programmed to recognize packets and will take actions appropiately. Also, it will be less expensive, so companies will save more money.
Differences between traditional network model and SDN model
Let's start this comparison with an image, in order to better explain the different features in both models.
Starting with the traditional network architecture, we notice that this model uses a distribution architecture. This means, every device works independently from the others, but is capable to join with. Problems come when something appear in the network, as for example congestion in links. As these devices can only see their own links, it is not possible to know if something is happening far away. If they would forward more traffic towards the same destination, the problem could probably increase. Therefore, in this architecture, the whole network is not contemplated and devices are not awared of this kind of problems. Besides, devices are very expensive, as hardware and software are all embedded in the same framework. Also is important to know, that every device has its own closed system. This results in being completely tied to the brand we are going to deploy in our network. It is quite difficult using more than one vendor solution inside the same environment without any compatibility issues. Control plane and data plane are together hence, devices must be very powerful in order to run different features (spanning tree, ACLs, QoS, and so on).
So, summing up:
- Devices are very expensive, due to the huge amount of power and computing capacity needed to achieve different functionalities.
- Devices are not awared about all that is happening within the network.
- Vendor lock. We are forced to use the same brand in order to avoid future problems when we deploy the whole network.
Secondly, we have SDN architecture. At first glance, is noticeable that this model has a different architecture model. Now control plane is centralized. This means, all traffic is supervised by one device (controller) and decissions are taken according to where traffic must being forwarded. Thanks to this feature, networking devices will not have the necessity of implementing the control plane in every device. Therefore, our networking devices will be more simple and cheap. Now all the network is contemplated and traffic is forwarded acording the status of the different interfaces. If the best path is congestioned, the controller will take the decission of forwarding some packets through other links. When the congestioned link will recover normal activity, traffic will go across it. Also is important to mention, the protocol used to connect devices from underneath to the controller is OpenFlow. Is has been developed in order to provide a two-way communication for the sides. The use of Openflow allow devices being all the time informed about what is happening in the network and act in accordance with the controller's instructions. Using SDN architecture brings us the freedom of programming our network to act in our expected manner.
Summing up:
- SDN provides centralized control of the whole network.
- It uses Openflow in order to connect the controller with the underneath devices.
- Devices are simplier and cheaper than nowadays'.
- Openness to enable research and innovation, and promote interoperability.
Which benefits does SDNs produce in a data center?
We have presented some interesting points and made a comparison as well, between traditional network and SDN. But...Which benefits provide us the use of this technology?
Regarding the beginning of our post, datacenters are collapsing technologies that we were using to deploy networks in offices, labs, hospitals and so on. Hence, is necessary to develop a new technology that will allow us to figure out all these problems. SDNs fits perfectly with. Is like a new start for networking. I have discussed some of them, but I'm going to write down here the most interesting:
- It is possible to program all the entire network. Devices will do what we want to. Is not necessary to configure every machine separately. Controller is concerned of them, it will do all the stuff.
- Devices are simplier and cheaper. Also, we are not tied to CLI or SNMP services. Vendors devices are not selling solutions for our network. We are creating the solution for our problem. Is not necessary being locked in their devices. Is completely open this world.
- The network devices are able to learn new behaviours depending on which traffic is going across the network.
- Companies will save a lot of money, thanks to this solution. Is not necessary to invest a huge amount of capital in order to build a datacenter. Businesses are concerned of money. Benefits are a must, so if this is acomplished, everyone will be happy.
SDN has started the journey and is currently beginning its deployment in businesses. So, is a good idea to invest in? Our answer is yes. Is a bet on the future.