OpenFlow is a protocol that allows a server to tell network switches where to send packets. In a conventional network, each switch has proprietary software that tells it what to do. With OpenFlow, the packet-moving decisions are centralized, so that the network can be programmed independently of the individual switches and data center gear.
Several established companies including IBM, Google, and HP have either fully utilized, or announced their intention to support, the OpenFlow standard. Big Switch Networks, an SDN firm headquartered in Palo Alto, California, has implemented OpenFlow networks that run on top of traditional networks, making it possible to place virtual machines anywhere in a data center to reclaim stranded computing capacity. By early 2012, Google's internal network ran entirely on OpenFlow.In a conventional switch, packet forwarding (the data path) and high-level routing (the control path) occur on the same device. An OpenFlow switch separates the data path from the control path. The data path portion resides on the switch itself; a separate controller makes high-level routing decisions. The switch and controller communicate by means of the OpenFlow protocol. This methodology, known as software-defined networking (SDN), allows for more effective use of network resources than is possible with traditional networks. OpenFlow has gained favor in applications such as VM (virtual machine) mobility, mission-critical networks, and next generationIP-based mobile networks.
OpenFlow Components :
To start experimenting with OpenFlow, you’ll want both an OpenFlow switch (either a software-based switch or a hardware one) and a controller that supports higher-level applications. We offer several options as summarized below:
Based on which type of network you plan to run, your choice for the switches and controller will vary. Following provides more details on the choices:
OpenFlow software switch Options
- Reference Linux Switch: This implementation runs on the widest variety of systems and is easy to port. It is also the slowest, as it cannot take advantage of multiple CPUs and requires kernel-to-user-space transitions. It supports as many ports as you can fit in a PC (8+), including wired and wireless ports. Select platform for further instructions:
- NetFPGA Switch: This switch offers line-rate performance for 4 Gigabit ports, regardless of packet size, via hardware acceleration. It requires the purchase of a NetFPGA card, which is $500 for researchers and $1000 for industry. More NetFPGA details are available at www.netfpga.org.
- Open vSwitch: Open vSwitch is a multilayer virtual switch, licensed under the open source Apache 2 license, with OpenFlow support. Open vSwitch currently supports multiple virtualization technologies including Xen/XenServer, KVM, and VirtualBox.
- OpenWRT: By porting OpenFlow support to OpenWrt, we convert a cheap commercial wireless router and access point into an OpenFlow-enabled switch with a WebUI and a CLI.
OpenFlow hardware Options
To obtain a hardware switch that supports the latest release of OpenFlow, purchase one of the following:
- HP Procurve 5400zl: This switch typically features 48 x 1Gbps ports that are expandable to 576 ports. Support OpenFlow ver 0.8.9
- NEC PF5240: This switch typically features 48 x 1Gbps ports, along with 2 x 10Gbps ports. Supports OpenFlow ver up 1.0
- Pronto: This switch typically features 48 x 1Gbps ports, 4 SPF+ 10Gbps ports. This switch provides vanilla OpenFlow support for ver 1.0, with firmware developed by Stanford.
OpenFlow Controller Options
- Reference Learning Switch Controller. This controller comes with the Reference Linux distribution, and can be configured to act as a hub or as a flow-based learning switch. It is written in C.
- NOX: NOX is a Network Operating System that provides control and visibility into a network of OpenFlow switches. It supports concurrent applications written in Python and C++, plus includes a number of sample controller applications.
- Beacon: Beacon is an extensible Java-based OpenFlow controller. It was built on an OSGI framework, allowing OpenFlow applications built on the platform to be started/stopped/refreshed/installed at run-time, without disconnecting switches.
- Helios: Helios is an extensible C-based OpenFlow controller build by NEC, targeting researchers. It also provides a programmatic shell for performing integrated experiments
- BigSwitch: BigSwitch released a closed-source controller based on Beacon that targets production enterprise networks. It features an user-friendly CLI for centrally managing your network.
- SNAC: SNAC is a controller targeting production enterprise networks. It is based on NOX0.4, and features a flexible policy definition language and a user-friendly interface to configure devices and monitor events.
- Maestro: Maestro is an extensible Java-based OpenFlow controller released by Rice University. It has support for multi-threading and targets researchers.
OpenFlow Slicing Software
- FlowVisor: This is a special purpose OpenFlow controller that acts as a transparent proxy between OpenFlow switches and multiple OpenFlow controllers. It slices the network based on the Flow fields and allocated the “flowspace” to individual controllers.