Notes about various (technical) topics and encountered or solved puzzles from engineering, devops or networking disciplines.

Search This Blog

Wednesday, February 27, 2013

What is Openflow

The OpenFlow standard is no longer anything new but rather a new low level protocol that network vendors are implementing in upcoming hardware. For these who would like to find out more about how it works and what it does the 'Origins and Evolution of OpenFlow/SDN - Martin Casado' video will give you a quick introduction. Below I put as well some of my notes I found interesting.

What is Openflow

Openflow is an interface to the switch.

It relays on the existing hardware you have; the hardware will still perform the same. functions it was originally designed for but we are going to have better manageability interface.

It allows us to decouple data plane from control plane.

It allows to create a more agile network environment in comparison to conventional network architectures.

Why we need Openflow

We have been taught that network is reliable, robust and can easily handle any type of changes. But in reality the bigger the network the more static it becomes. It is harder and harder to implement any changes. And to get it done it may requires a lot of careful planing and detailed implementation steps. As an example for a single change you may need to:

Reconfigure switches and change security parameters.

Adjust VLAN id.

Reconfigure your (global) routing policies.

change ACL on FW.

Often because of the operational complexities your network have to be simplified and follow certain constrain how the whole topology can look like. When it comes to changes we can never exclude the human error factor as well of course.

Last posts

About Me

Linux enthusiast

Profile:Curious systems engineer interested in many of the IT technologies but especially in cloud systems and network engineering. A quick learner who likes to tinker and who often spent time researching and trying new technologies for personal and business benefit.

Please note that the code available here is only for demonstration purposes. If you want to be serious, you'll have to make it more robust and integrate it. Also, the description is by no means a definitive reference on any of the subjects, but rather the result of my experimentation. Feel free to report any bugs or errors you find in the code or otherwise in the articles. Thanks