Changes between Version 1 and Version 2 of GEC17Agenda/AdvancedOpenFlow/Procedure

07/19/13 15:26:45 (6 years ago)



  • GEC17Agenda/AdvancedOpenFlow/Procedure

    v1 v2  
    1 = Adv OF =
     3= OpenFlow !LoadBalancer Tutorial =
     4In this tutorial, we will show how do Load Balancing Flow Management using OpenFlow on GENI.
     6== Overview ==
     7This Project leverages resources on the GENI aggregate in order to experiment with OpenFlow using the GENI Portal. [[BR]]
     8Please remember to release the resources you when you are done with them. [[BR]]
     9The following is the topology that you will be creating: [[BR]]
     10'''Note:''' The actual node you reserved is not the same as shown in the figure.
     11 - Load Balancing experiment: [[BR]]
     12[[Image(OpenFlowLBExo.png, 50%, nolink)]]
     13 - We will implement a Load Balancer OpenFlow Controller using Trema. [[BR]]
     14 - Load balancing in computer networking is the division of network traffic between two or more network devices or paths, typically for the purpose of achieving higher total throughput than either one path, ensuring a specific maximum latency or minimum bandwidth to some or all flows, or similar purposes. For this tutorial, you will design a load-balancing OpenFlow controller capable of collecting flow status data from OpenFlow switches and using it to divide traffic between dissimilar network paths so as to achieve full bandwidth utilization. [[BR]]
     15 - For the purpose of this tutorial, data collection will be limited to the flow statistics reported by open vswitches.
     17== Prerequisites ==
     18   - 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]
     21      * Reserving resources using Omni [wiki:GENIExperimenter/Tutorials/HelloOmni tutorial]
     22   - 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:OpenFlowOVS.pdf tutorial's slides]
     24   - !LabWiki Account:
     25    - Get a !LabWiki Account via [ GIMI Portal]
     26   - Familiarity with Unix Command line - See "Tools" section
     27   - A moderately deep understanding of the [ OpenFlow controller model] and API is required.
     28   - The OpenFlow specification, [ version 1.0] is a valuable reference for OpenFlow and the controller model.
     30== Tools ==
     31'''1. Trema''' [[BR]]
     32Each exercise in this assignment will require you to design and implement an OpenFlow controller.
     33Numerous libraries and controller frameworks are available for this task. The guidelines in this assignment assume that you are using the [ Trema] controller framework.
     34The Trema project web site,, contains documentation, a number of helpful examples, and some tutorial material for learning to use Trema.
     36'''2. Traffic Control (tc)'''[[BR]]
     37The tc command is available in the GNU Linux distributions on GENI nodes, found in the ''/sbin'' directory.
     38This command manipulates the Linux network forwarding tables, allowing for configuration of queuing disciplines,
     39which change the policies controlling which packets are forwarded in what order and which are dropped; and network
     40emulation, which allows the Linux kernel to emulate various network conditions such as delay or loss.
     41These two effects are provided by the qdisc and netem subcommands, respectively.
     42In these exercises, tc will be used to modify network conditions and enable different scheduling policies.
     43Example command lines will be provided.
     45'''3. [ Iperf]'''[[BR]]
     46Iperf is available on the GENI nodes, located at ''/usr/local/etc/emulab/emulab-iperf''.
     47Iperf is used to measure the bandwidth performance of Internet links. In these exercises,
     48it is used to study the behavior of TCP in the face of changing link characteristics.
     49Iperf runs as both a server and a client. The server is started with the -s command line option,
     50and listens for connections from the client. The client is started with the ''-c <server>'' command line option,
     51and connects to the server and sends data at either the fastest possible rate (given the underlying network)
     52or a user-specified rate. The -u option causes the sender or receiver to use UDP instead of TCP.
     53Various other options will be required for these exercises, and provided in the appropriate sections.
     54All Iperf measurement data should be recorded from the TCP receiver (server) side.
     56== How to get Help ==
     57 * Always ask your tutors (tutorial helper/presenter/TA) first. They are the fastest way to solve the problem.
     58 * If you are using a specific aggregate or tool, you should consider registering in their [wiki:NikySandbox/GENIExperimenter/GENICommunity#Joinusermailinglists mailing list]. It is a great way to get connected with other GENI users and it is an excellent source of wisdom.
     59 * Send mail to the GENI help list: [].
     60 * If you want to chat real-time with other GENI users and ask questions, [wiki:HowTo/ConnectToGENIChatRoom join us] in a GENI chatroom.
     62== Tutorial Instructions ==
     67<table id="Table_01" height="409" border="0" cellpadding="0" cellspacing="0">
     68        <tr>
     69                <td>
     70                        <a href=""><img src="" width="152" height="152" alt="Design/Setup"></a>
     71               </td>
     72               <td>
     74             <li><a href="">Part I: Design/Setup</a></li>
     75             <ul>
     76                 <li> Lists of steps for setting up the exercise </li>
     77             </ul></ul>
     78               </td>
     79        </tr>
     80        <tr>
     81                <td>
     82                        <a href=""><img src="" width="152" height="143" alt="Execute"></a>
     83                </td>
     84                <td>
     85             <ul>
     86<li><a href="">Part II: Execute</a></li>
     87             <ul>
     88                 <li> Lists of steps for executing the exercise</li>
     89             </ul></ul>
     90                </td>
     91        </tr>
     92        <tr>
     93                <td>
     94                        <a href=""><img src="" width="152" height="114" alt="Finish"></a>
     95                </td>
     97                <td>
     98             <ul>
     99             <li><a href="">Part III: Finish</a></li>
     100             <ul>
     101                 <li> Lists of steps for tearing down the exercise</li>
     102             </ul></ul>
     103                </td>
     105        </tr>