labs.beatcraft.com

What is OpenFlow?

OpenFlow is a communication protocol that gives access to the forwarding plane of a network switch or router over the network. A major feature of OpenFlow separates network form its components, abstracts these components, and reorganizes them. This feature is called SDN (Software Defined NEtwork), and OpenFlow is a technology that actualizes SDN. To abstract network, whole network can be a subject to a program, and the program enables to the central control, automatic configuration changes and optimization of network.

OpenFlow consists of OpenFlow Switch and OpenFlow Controller.
An OpenFlow Switch consists of one or more flow tables and a group table transmits the packets. An OpenFlow Switch follows a direction of a flow table and transmits the packet. If a packet, which is not listed on the flow table, the OpenFlow Switch asks OpenFlow Controller to how to handle this unknown packet.
The OpenFlow Controller manages the OpenFlow Switch via the OpenFlow protocol. The Open Flow Controller add, update, and delete flow entries in flow table, reactively and proactively. Since the OpenFlow Controller manages the OpenFlow Switch, the OpenFlow Switch becomes a swatch, load balancer, and router.

Standardizing OpenFlow

The communication specifications between the OpenFlow Switch and OpenFlow Controller are standardized with OpenFlow protocol.
Up to OpenFlow 1.1, the OpenFlow Switching specifications were developed by the OpenFlow Switching specification consortium, whose core team was the research group of Stanford University. The consortium was also hosted at Stanford University. The specifications are available to the public. For the details, please visit website, http://www.openflow.org/wp/documents.
Today, the specifications are developed at Open Network Foundation. As of the end of March, the specifications of OpenFlow 1.3.1 have been released.
https://www.opennetworking.org/sdn-resources/onf-specifications/openflow

To communicate in an OpenFlow protocol, the same versions of OpenFlow Switch and OpenFlow Controller have to be the same and they can support only the same version of the OpenFlow protocol.

Many products that adapt OpenFlow have supported only the version 1.0 and 1.1 of the OpenFlow Switches. Lately, the growth of support for version 1.3.1 of OpenFlow Switch is increased rapidly, and many products support the version 1.3.1 of OpenFlow Switch.

The Characteristics of each version are shown below.

Switch and Controller

There are two ways to implement the OpenFlow Switch. One way is implemented by software, and the other is the device implementation, which is done by device venders.
There are several ways to implement the Controller that manages the OpenFlow Switch, depending on which programming language is used to write the rules of the controller.

OpenFlow Switch

OpenFlow Controller

Trema
http://trema.github.io/trema/
Trema is an OpenFlow Controller written in Ruby + C. It supports OpenFlow 1.0 There is trema-edge branch, which supports OpebFlow 1.3.
https://github.com/trema/trema-edge

Ryu
http://osrg.github.io/ryu/
This OpenFlow Controller is developed by Open Source Computing Group at NTT Laboratory. This is based upon Python.

Trying on OpenFlow

These are examples of testing OpenFlow. To combine a OpenFlow Switch with a OpenFlow Controller, test to execute several settings of OpenFlow.

mininet

mininet is a virtual network, which allows to develop and test OpenFlow. On aLinux environment, a virtual network of mininet includes OpenFlow Switch, OpenFlow Controller, and a host that connects to OpenFlow Switch. The details of how to use mini net are listed on OpenFlow/mininet.

OpenFlow Tutorial

To refer to OpenFlow Tutorial, test features of OpenFlow.
http://www.openflow.org/wk/index.php/OpenFlow_Tutorial

Please look at these pages shown below.
OpenFlow/OpenFlow Tutorial 1
OpenFlow/OpenFlow Tutorial 2

Open vSwitch_x86

To use a mininet environment on two different Linux machines, create OpenFlow Controller and OpenFlow Switch. Then, repeat the process that were done at OpenFlow Tutorial 1 and 2, on this virtual network. In this process, Open vSwitch is used as OpenFlow Switch.

For the details, please visit the site shown below.
OpenFlow/OpenvSwitch_x86

Revision History


Front page   New List of pages Search Recent changes   RSS of recent changes