Changes between Version 31 and Version 32 of GENIExperimenter/Tutorials/GENIDesktop/aag

05/16/16 15:51:38 (5 years ago)



  • GENIExperimenter/Tutorials/GENIDesktop/aag

    v31 v32  
    3434 === '''!Exercises/Tasks''' ===
    36  1. ''' Create the Experiment: '''
    37   * Login to the GENIDesktop As usual. If you need help see the GENIDesktop Manual [wiki:GeniDesktop/Manual/gettingStarted/GENI_Desktop_login#TologintotheGENIDesktop Login] page.
    38   * Create a slice as usual. If you need help see the GENIDesktop Manual [wiki:GeniDesktop/Manual/gettingStarted/Create_slice#CreateaSlice Create A Slice] page.
    39   * Allocate Resources for the topology below using JACKS in the GENIDesktop. If you need help see the GENIDesktop Manual [wiki:GeniDesktop/Manual/gettingStarted/Create_sliver_jacks#CreatingaSliversusingJACKSintheGeniDesktop JACKS] page (but we are not using the topology listed on that page).
    41     In this tutorial we will be using [ Open vSwitch (OVS)] nodes to represent OpenFlow Software Switches [[Image(ovs_node.png, 24px)]] and XEN VMs nodes to represent hosts [[Image(xen_node.png, 24px)]].  The general topology contains two hosts, h1 and h2 with 3 switches, s1, s2 and s3:
    42     [[Image(allocate_topo.png)]]
    44     Draw this topology. Rename your nodes to match the given topology. Click node name, then type in the new name in the ```Name``` box in the left side dialog box.
    46     Before allocating the resources, click the ```Extra Features``` checkbox. This will show the drop down for ```Select AAG (Adopt-a-GENI) Controller```.
    47     You may choose between a "Floodlight Controller for AAG" or an "RYU Controller for AAG". For this tutorial we will be using the default option of "Floodlight Controller for AAG".
    49     [[Image(initial_topology_arrows.png)]]
    51     Click ```Allocate Resources Using This RSPEC```
    53     You can watch the allocation progress as the slice is allocated.
    54     [[Image(progress.png)]]
    56     Once the allocation is complete the GENIDesktop will automatically load the Slice View page.
    57     Here the allocated topology will be shown. Note that two extra nodes have been automatically added to your topology. One is the AAG Contoller, ```AAGCTRL0``` and the other is the Global Node ```GDGN0```. These nodes provide the OpenFlow controller and the measuring controller respectively.
    59     [[Image(final_topo.png)]]
    61     Once the resources have been allocated we must wait for the nodes to be created/booted. We can track the progress. As the nodes come up they will turn green. Any failed nodes will be red. Once all the nodes have been booted, the nodes will all return to gray.
    62     [[Image(booting.png)]]
     361. '''[wiki:GENIExperimenter/Tutorials/GENIDesktop/aag/setup Create The Slice]'''
     371. '''[wiki:GENIExperimenter/Tutorials/GENIDesktop/aag/install Install Paths]'''
     381. '''[wiki:GENIExperimenter/Tutorials/GENIDesktop/aag/monitor Monitor Traffic]'''
    65     After all the resources have been allocated and booted the GENIDesktop will run an Initialization and Instrumentation process that will configure, start up and attach all the OVS nodes to the controller. It will also start the monitoring of the slice.
    67     [[Image(welcome.png)]]
    69  2. '''Execute Experiment:'''
    70   After your slice is ready, you will be able to interact with your nodes. Even though your OVS nodes are now visible to the controller, their tables are empty and therefore they will not forward any packet.
    72    2.1 '''Login to hosts'''
    73     To start our experiment we need to ssh our hosts (h1 and h2), you may use any SSH client or the GENI Dekstop's SSH module to access the hosts from the browser (it will load a shell prompt per host on a separate tab).
    75     In the terminal of h1, ping h2. This should timeout, since there are no rules installed at the switches.
    76 {{{
    77 user@h1:~$ ping h2
    78 PING h2-link-4 ( 56(84) bytes of data.
    79 From h1-link-0 ( icmp_seq=1 Destination Host Unreachable
    80 From h1-link-0 ( icmp_seq=2 Destination Host Unreachable
    81 From h1-link-0 ( icmp_seq=3 Destination Host Unreachable
    82 }}}
    83   2.2 '''Setup Shortest Path Flows'''
    84     Now we want to make h1 and h2 able to communicate using shortest paths. To do so, you have to load the Flow Install module from the list of modules on the left hand side of your screen.
    86     [[Image(xxx.png)]]
    88     The first section tells you the public IP address where the controller is running, and what controller did you choose when creating the slice.
    90     The second section allows you compute shortest paths between all hosts and automatically install the corresponding flow entries at every switch in the path. We need to handle ARP processing as well in order to be able to communicate between hosts. The controller images loaded in the AAG features include ARP processing modules. Therefore, by checking the ARP processing box we will let the controller handle all ARP requests/responses. Then, click on the Initialize button.
    92     The output message should be:
    93     {{{
    94 ARP flow entries successfully installed.
    95 Shortest paths successfully installed.
    96     }}}
    99     Now, if we try to ping h2 from h1 we can see that communication is successful.
    100     {{{
    101 user@h1:~$ ping h2
    102 PING h2-link-4 ( 56(84) bytes of data.
    103 64 bytes from h2-link-4 ( icmp_seq=1 ttl=64 time=7.40 ms
    104 64 bytes from h2-link-4 ( icmp_seq=2 ttl=64 time=1.74 ms
    105 64 bytes from h2-link-4 ( icmp_seq=3 ttl=64 time=1.69 ms
    106     }}}
    111   2.3 '''Install Alternate Paths'''
    112     2.3.1 List Flows
    115       The Flow Install module allows you to list existing end-to-end flows (Refresh List button) you have added using the GENI Desktop as well as individual flow entries (possibly) installed using other tools that interact with the controller REST API.
    117       Note that end-to-end flows display the path a flow follows from one host to another instead of displaying low-level details. For individual flow entries, information about the match fields is shown (e.g. ARP flows).
    118       [[Image(list_flows.png)]]
    120     2.3.2 Delete a Flow
    121       With the flows listed, it is straightforward to remove an existing path. For this tutorial we will leave the communication from h1 to h2 intact (i.e. shortest path), but you will select and remove the flow that goes from h2 to h1.
    123     2.3.3 Defining an Alternate Path
    125 Defining an Alternate Path
    128 Using the topology view, you will select all the elements (links and nodes) across an alternate path that communicate h2 with h1. In the flow definition section, select h2 as source node and define the path as a one-way flow. Leave the information about ports blank and install the new flow.
    131 altflow.png
    133 Tip: Select multiple elements by holding the CTRL key and clicking on the desired element.
    135 Output
    136 {{{
    137 End-to-End flow(s) installed successfully.
    138 }}}
    140     2.3.4 Testing New Path
    142       With the new path installed, you should be able to ping again from h1 to h2.
    143       {{{
    144 user@h1:~$ ping h2
    145 PING h2-link-4 ( 56(84) bytes of data.
    146 64 bytes from h2-link-4 ( icmp_seq=1 ttl=64 time=2.64 ms
    147 64 bytes from h2-link-4 ( icmp_seq=2 ttl=64 time=2.16 ms
    148       }}}
    150       Notice the extra delay added to the communication because we are using a longer path.
    153   * [wiki:GENIExperimenter/Tutorials/GENIDesktop/05032016/ready_init_instr View resources while they are being created, initialized and Instrumentized]
    154  1. '''[wiki:GENIExperimenter/Tutorials/GENIDesktop/05032016/GENI_Desktop_runcmd Running Experiments:]''' Load and execute code
    155  1. '''[wiki:GENIExperimenter/Tutorials/GENIDesktop/05032016/GENI_Desktop_ssh Viewing Traffic:]''' SSH into nodes, generate and view traffic
    156  1. '''[wiki:GENIExperimenter/Tutorials/GENIDesktop/05032016/GENIDesktop_CLI GENIDesktop CLI:]''' Perform GENIDesktop operations using a Command Line Interface.