Dec 28, 2011

Do you view OpenFlow as an alternative or complement to data center fabric?

OpenFlow is often mentioned in the context of network virtualization, data center consolidation and multi-tenancy. Do you view OpenFlow as a fabric? Or an alternative to one?

--Paul Calento http://bit.ly/paulccalento

Here's some helpful background information about OpenFlow.


"What is OpenFlow?
OpenFlow is an open standard that enables researchers to run experimental protocols in the campus networks we use every day. OpenFlow is added as a feature to commercial Ethernet switches, routers and wireless access points – and provides a standardized hook to allow researchers to run experiments, without requiring vendors to expose the internal workings of their network devices. OpenFlow is currently being implemented by major vendors, with OpenFlow-enabled switches now commercially available.

How does OpenFlow work?
In a classical router or switch, the fast packet forwarding (data path) and the high level routing decisions (control path) occur on the same device. An OpenFlow Switch separates these two functions. The data path portion still resides on the switch, while high-level routing decisions are moved to a separate controller, typically a standard server. The OpenFlow Switch and Controller communicate via the OpenFlow protocol, which defines messages, such as packet-received, send-packet-out, modify-forwarding-table, and get-stats.

The data path of an OpenFlow Switch presents a clean flow table abstraction; each flow table entry contains a set of packet fields to match, and an action (such as send-out-port, modify-field, or drop). When an OpenFlow Switch receives a packet it has never seen before, for which it has no matching flow entries, it sends this packet to the controller. The controller then makes a decision on how to handle this packet. It can drop the packet, or it can add a flow entry directing the switch on how to forward similar packets in the future.

What can I do with OpenFlow?
OpenFlow allows you to easily deploy innovative routing and switching protocols in your network. It is used for applications such as virtual machine mobility, high-security networks and next generation ip based mobile networks."

Hi Paul, long time no speak.  OpenFlow is really just an API that allows software-based control of flows in a network. Today's Data Center Fabrics (the physical fabric - i.e. hardware switches/routers) are largely closed, proprietary systems with an embedded control plane, so today's fabrics at least cannot be controlled using OpenFlow.  So in some cases a software-based network (using virtual switches at the hypervisor) is being built on top of the physical fabric, and in many cases OpenFlow is being used between the control layer and the virtual switch layer. This so-called "Software Defined Network" offers better integration of the network control into the application layer, offering potential future benefits for programmability and better resource utilization of the network.


Some existing switch vendors say they will support OpenFlow API, so at some point we could see both the virtual switch network and the physical switch network both being controlled by a single common control plane, or multiple coordinated control planes, yet we're a ways away from seeing how this new ecosystem will evolve.


The reason that OpenFlow, or something similar is needed, is that at some point we need to transmit bits on a wire, and (in the Data Center at least) that is done by switches and routers (whether they are physical or virtual). In order for SDN to work, there needs to be a common way for those bits on the wire to get forwarded/controlled, and generally that requires a standardized API layer that has broad industry acceptance.


So to answer your question, OpenFlow shouldn't be viewed as a fabric. It should be viewed as an essential building block to enable a software-driven network which could be a software overlay on top of an existing physical fabric, or a coordinated software and physical fabric.

Answer this