Changes between Version 3 and Version 4 of GENIExperimenter/Tutorials/OpenFlowRyu


Ignore:
Timestamp:
02/25/17 19:37:38 (7 years ago)
Author:
Nabeel Akhtar
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/Tutorials/OpenFlowRyu

    v3 v4  
    1 = Intro to OpenFlow using OVS =
     1= Intro to OpenFlow Tutorial with Ryu Controller =
    22
    3 Tiny URL: http://tinyurl.com/geni-ovs-ryu
     3TinyURL:  http://www.tinyurl.com/geni-ovs-ryu
    44
    55== Overview: ==
    6 This is a simple OpenFlow tutorial that will guide you through the writing of simple !OpenFlow controllers to showcase some of the !OpenFlow capabilities. We are going to write three different controllers:
     6This is a simple !OpenFlow tutorial that will guide you through the writing of simple !OpenFlow controllers to showcase some of the !OpenFlow capabilities. We are going to write three different controllers:
    77  1. Write a controller that will '''duplicate all the traffic''' of the !OpenFlow switch out a specific port
    8   2. ''' TCP Port Forward''' controller. Diverge all traffic destined to host A on TCP port X to TCP port Y
    9   3. '''Proxy Controller'''. Write a controller that will diverge all traffic destined to host A, TCP port X to host B, TCP port Y
     8  2. ''' TCP Port Forward''' controller. Divert all traffic destined to host A on TCP port X to TCP port Y
     9  3. '''Proxy Controller'''. Write a controller that will divert all traffic destined to host A, TCP port X to host B, TCP port Y
    1010
    11 In this tutorial we are going to use [http://openvswitch.org/ Open vSwitch (OVS)] as an !OpenFlow switch connected to three hosts.
    12 OVS is a software switch running on a compute resource. The other three hosts can only communicate through the OVS switch. Although the controller for the switch can run anywhere in the Internet, we are going to run it on the same host as the OVS switch to minimize the required resources.
    13 For this tutorial we are going to use the [http://osrg.github.io/ryu/ Ryu controller], this is just an example of [wiki:OpenFlow/Controllers many controllers].
     11In 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.
     12For this tutorial we are going to use a [http://osrg.github.io/ryu/ Ryu controller], which is just one example of [wiki:OpenFlow/Controllers many controller frameworks].
    1413
    15 [[Image(GENIExperimenter/Graphics:simple_ovs.png)]]
     14[[Image(GENIExperimenter/Graphics:SimpleOpenFlow.jpg,40%)]]
    1615
    1716== Prerequisites: ==
    1817   - A GENI account, if you don't have one [wiki:SignMeUp sign up!]
    19    - Familiarity with how to reserve GENI resources with any of the GENI Tools (GENI Experimenter Portal, Omni, Flack). If you don't know you can take any of the tutorials:
    20       * Reserving resources using Flack [wiki:GENIExperimenter/Tutorials/RunHelloGENI tutorial]
     18   - 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:
     19      * Reserving resources using Jacks [wiki:GENIExperimenter/Tutorials/RunHelloGENI tutorial]
    2120      * Reserving resources using Omni [wiki:GENIExperimenter/Tutorials/HelloOmni tutorial]
    2221   - Familiarity with [wiki:HowTo/LoginToNodes logging in to GENI compute resources].
    23    - Basic understanding of OpenFlow. If you are going over this tutorial at home, flip through the [attachment:IntroToOpenFlow_140123.pptx  tutorial's slides]
    24    - Familiarity with Unix Command line
    25    - Familiarity with python programming language.  We are going to use the [http://osrg.github.io/ryu/ Ryu controller], this is just an example of [wiki:OpenFlow/Controllers many controllers], and Ryu is written in python.
     22   - Basic understanding of OpenFlow. If you are doing this tutorial at home, flip through the [attachment:IntroToOpenFlow_140123.pptx  tutorial's slides]
     23   - Familiarity with the Unix Command line
     24   - Familiarity with the python programming language.  We are going to use the [http://osrg.github.io/ryu/ Ryu controller], which is just one example of [wiki:OpenFlow/Controllers many controller frameworks], and Ryu is written in python.
    2625     
    2726== Tools: ==
    28    - [http://openvswitch.org/ Open vSwitch]. OVS is already be installed on your host. Installation was completed as described [http://groups.geni.net/geni/wiki/HowTo/InstallOVSInProtoGENI here].
    29    - [http://osrg.github.io/ryu/ Ryu controller]. Ryu controller is installed in your host as part of the sliver creation.
     27   - [http://openvswitch.org/ Open vSwitch]. OVS will be be installed. Installation was completed as described [http://groups.geni.net/geni/wiki/HowTo/InstallOVSInProtoGENI here].
     28   - [http://osrg.github.io/ryu/ Ryu controller]. Ryu controller is installed as part of the resource reservation.
    3029
    3130== Where to get help: ==
    32    - If you need help with GENI, email [mailto:help@geni.net]
     31   - If you need help with GENI, email [mailto:geni-users@googlegroups.com]
    3332   - If you have questions about !OpenFlow, OVS, Ryu you can subscribe to [https://mailman.stanford.edu/mailman/listinfo/openflow-discuss openflow-discuss] or any of the other mailing lists listed.
    3433
     
    5049               <td>
    5150<ul>
    52              <li><a href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/OpenFlowRyu/DesignSetup">Part I: Design/Setup</a></li>
     51             <li>Part I: Design/Setup</li>
    5352             <ul>
    54                  <li>Step 1:  Obtain Resources</li>
     53                 <li>Step 1:  Reserve Resources </li>
     54                 <ul>
     55                 <li> <a href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/OpenFlowRyu/DesignSetup"> OpenFlow using Open vSwitch (OVS) </a></li>
     56                </ul>
     57                 <li>Step 2:  Configure and Initialize Services </li>
    5558             </ul></ul>
    5659               </td>
     
    6467<li><a href="http://groups.geni.net/geni/wiki/GENIExperimenter/Tutorials/OpenFlowRyu/Execute">Part II: Execute</a></li>
    6568             <ul>
    66                  <li>Step 2:  Configure and Initialize Services </li>
    6769                 <li>Step 3:  Execute Experiment </li>
    6870             </ul></ul>