wiki:GENIExperimenter/Tutorials/OpenFlowOVS-Floodlight

Version 16 (modified by lnevers@bbn.com, 2 years ago) (diff)

--

Intro to OpenFlow Tutorial with FloodLight Controller

Overview:

This is a simple OpenFlow tutorial that will guide you how to use the Floodlight Controller in conjunction with Open vSwitch and OpenFlow to showcase some of the OpenFlow capabilities. We are going to perform three different tasks:

  1. Write a flow that will duplicate all the traffic of the OpenFlow switch out a specific port.
  2. TCP Port Forward controller. Divert all traffic destined to a host on TCP port X to TCP port Y.
  3. Proxy Controller. Write a flow that will divert all traffic destined to a host on TCP port X to host B on TCP port Y.

In this tutorial we are using the OpenFlow Software Switch, Open vSwitch (OVS). The general topology is as pictured below. In general, the controller just needs to have a public IP address, so that it can exchange messages with the OpenFlow switch. The controller for the switch can run anywhere in the Internet. For this tutorial we are going to use a Floodlight, which is a JAVA based controller that is just one example of many controller frameworks.

This Tutorial is the most recent version of the OpenFlowOVS Tutorials and is actively maintained. To perform the OpenFlowOVS Tutorials using other controllers such as POX, refer to the OpenFlow Tutorial with POX Controller tutorial.

Prerequisites:

  • A GENI account, if you don't have one sign up!
  • Familiarity with how to reserve GENI resources with any of the GENI Tools (GENI Experimenter Portal, Omni, Jacks). If you don't know you can take any of the tutorials:
    • Reserving resources using Jacks tutorial
    • Reserving resources using Omni tutorial
  • Familiarity with logging in to GENI compute resources.
  • Basic understanding of OpenFlow. If you are doing this tutorial at home, flip through the tutorial's slides
  • Familiarity with the Unix Command line

Tools:

Where to get help:

Resources:

Learn more about:

Tutorial Instructions

Design Setup
Execute
Finish