An OpenFlow Symposium was held in San Jose, CA on October 26th, 2011 and hosted by by PacketPushers.Net and TechFieldDay.Com. This was my first true exposure to the OpenFlow protocol and concepts of SDN (Software Designed Networking), and it was a great exposure.
If you are not familiar with OpenFlow or SDN, please let me take a moment and give you a brief overview and a quick scenario. OpenFlow is a way in which you can have a application – called a Controller – maintain and control switch flow tables. This controller is aware of all flows in the topology of its domain, the domain being the switches/ports that it controls. Yes, you can have specific ports on a switch controlled via the controller, and all the other ports as part of a normal network that is controlled via the switch. OpenFlow will have no impact to the other ports, they will continue to operate just like nothing was different.
A good use case for OpenFlow is Multi-Path Layer 2 switching in a data center or other high bandwidth location. With normal multi-patch technologies one of the links is blocked via STP, thus sitting idle just waiting for the primary link to fail. With OpenFlow, the controller is aware of all paths in the network and able to load the traffic accordingly. Lets take a look at the following diagram:
As you can see we have 3 switches in this network (X, Y, and Z), 2 FTP servers (FTP 1 and FTP 2), 2 FTP Clients (Client 1 and Client 2), as well as some links between each switch (A, B, and C). In a normal STP Network, assuming Switch Y was the root, the C Link between Switch X and Switch Z would be in a blocking mode. If this was a 10G link, that would be quite a bit of money wasted. With OpenFlow the controller is aware of all of these links. If Client 1 starts a transfer to FTP 1, the OpenFlow controller would build a flow patch via A link. When Client 2 starts its transfer, the controller builds a flow path over the C link. What also happens is that the overall speed and transfer rates are improved since you are not “sharing bandwidth” with the other FTP application.
There are many other use cases for OpenFlow besides this one – some include that you can use it for Virtualization and moving servers as the controller can move the flow; the potential to move the certain traffic to an inspection device (IDS/IPS/Firewall) while allowing other traffic to bypass; ability to move flows (TCP session) around as needed for load balancing; or prioritize traffic to provide best speeds; etc.
Some good links for OpenFlow Information:
CloudToad on PacketPushers
PacketPushers Podcast Show 68
OpenFlow.Org
IOS Hints