= 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 [http://openvswitch.org/ 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''''', [http://openvswitch.org/ 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 [https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller Floodlight], a Java based controller that is just one example of [wiki:OpenFlow/Controllers many controller frameworks]. [[Image(GENIExperimenter/Tutorials/Graphics:4NotesIcon_512x512.png, 5%, nolink)]] This tutorial provides an introductory Software Defined Networks (SDN) exercise using !OpenFlow Controllers. If are interested in hands-on experience with using OF rules to implement '' '''Network Function Virtualization''' '' (NFV) consider running the [http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/NFV/Ryu NFV tutorial] after completing this tutorial. [[Image(GENIExperimenter/Graphics:SimpleOpenFlow.jpg,40%)]] == Prerequisites: == - A GENI account, if you don't have one [wiki:SignMeUp 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 [wiki:GENIExperimenter/Tutorials/RunHelloGENI tutorial] * Reserving resources using Omni [wiki:GENIExperimenter/Tutorials/HelloOmni tutorial] - Familiarity with [wiki:HowTo/LoginToNodes logging in to GENI compute resources]. - Basic understanding of OpenFlow. If you are doing this tutorial at home, flip through the [attachment:IntroToOpenFlow_140123.pptx tutorial's slides] - Familiarity with the Unix Command line == Tools: == - [http://www.openvswitch.org/ Open vSwitch]. OVS will be installed as a part of the resource reservation. - [https://floodlight.atlassian.net/wiki/spaces/floodlightcontroller Floodlight Controller]. == Where to get help: == - If you need help with GENI, email [mailto:geni-users@googlegroups.com] - If you have questions about !OpenFlow, OVS, Floodlight you can subscribe to [https://mailman.stanford.edu/mailman/listinfo/openflow-discuss openflow-discuss] or any of the other mailing lists listed. == Resources: == Learn more about: - [http://www.openflow.org/ OpenFlow protocol] - [http://www.projectfloodlight.org/floodlight/ Floodlight controller] - [http://openvswitch.org/ Open Virtual Switch (OVS)] == Tutorial Instructions == {{{ #!html
Design Setup
Execute
Finish