Changes between Version 2 and Version 3 of GEC15Agenda/AdvancedGENITopoOmni/Instructions/L3DeflectExperiment


Ignore:
Timestamp:
10/21/12 15:04:53 (9 years ago)
Author:
nriga@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GEC15Agenda/AdvancedGENITopoOmni/Instructions/L3DeflectExperiment

    v2 v3  
    5454
    5555== 3. Configure your hosts ==
    56 Once our slivers iare ready we will go ahead and configure our myPlc hosts. Instead of logging into each host to install the necessary softwarem we are going to use remote execution and install it from our VM.
     56Once our slivers iare ready we will go ahead and configure our myPlc hosts. For this tutorial we are both going to login to nodes and use remote execution to send commands to our nodes, so make sure that both work.
    5757
    5858=== 3a. Login and remote execution ===
    59 Run the `readyToLogin.py` script to get information about logging in to nodes. The script has a lot of output so lets put that in a file so that we can easily search for the information we want.
    60 
    61 {{{
     59  i. Run the `readyToLogin.py` script to get information about logging in to nodes. The script has a lot of output so lets put that in a file so that we can easily search for the information we want.
     60  {{{
    6261readyToLogin.py -a <AM_nickname> <slicename> > login.out 2>&1
    6362}}}
    64 
    65 You'll get a big chunk of information, but you're interested in the '''ssh configuration info''' information near the end.
    66 
    67 {{{
     63  You'll get a big chunk of information, but you're interested in the '''ssh configuration info''' information near the end.
     64  {{{
    6865... <lots of output> ...
    6966================================================================================
     
    8784}}}
    8885
    89 Copy all the above information and paste it into your `.ssh/config` file, and do the same for all the AMs,  then you can very easily login into your nodes, just by using the name that is after the `Host` attribute.
    90 
    91 Your `~/.ssh/config` file should look like
    92 {{{
     86  i. Copy all the above information and paste it into your `.ssh/config` file, and do the same for all the AMs,  then you can very easily login into your nodes, just by using the name that is after the `Host` attribute.
     87  Your `~/.ssh/config` file should look like
     88  {{{
    9389IdentityFile /home/geni/.ssh/geni_key
    9490
     
    119115}}}
    120116
    121 Let's login to our two hosts, the nicknames are `hostA` and `hostB`
    122   i. Open two new terminals
    123   i. In one terminal type
    124   {{{
    125   ssh -A hostA
    126   }}}
    127   and in the other
    128   {{{
    129   ssh -A hostB
    130   }}}
     117  i. Note down the `HostName` of your host at `pg-utah`. In the above example this would be `pc104.emulab.net`.
     118
     119==== Test login ====
     120For each one of the three myPlc hosts, open a new terminal and login to each one of them. Substitute <pl_hostname> with the hostnames of pl nodes you were given on the paper slip.
     121{{{
     122  ssh <pl_hostname>
     123}}}
     124
    131125==== Test remote execution ====
    132 You can execute commands in a remote host using `ssh`. To do this just follow your ssh command with the command you want to execute in quotes.
     126You can execute commands in a remote host using `ssh`. To do this just follow your ssh command with the command you want to execute in quotes. We will use one
     127of the myPlc nodes for this, just choose one.
    133128  i. In your local terminal type :
    134129  {{{
    135   ssh -A top "ls -a"
     130  ssh -A sardis.gpolab.bbn.com "ls -a"
    136131  }}}
    137132  This will list all the files under the home directory on host `top`. The output should look like:
    138133  {{{
    139 geni@geni-VirtualBox:~$ ssh -A top "ls -a"
     134geni@geni-VirtualBox:~$ ssh -A planetlab5.clemson.edu "ls -a"
    140135.
    141136..
     137.bash_history
    142138.bash_logout
    143139.bash_profile
    144140.bashrc
    145 .forward
    146 .kshrc
    147 .ssh
    148 .zshrc
    149141  }}}
    150142
    151143If you get something similar you are all set for controlling your nodes from your computer.
    152144
    153 === 3b. Configure your routers ===
    154 We are going to use remote execution to configure our routers.
    155   i. On a local terminal run the following command four time, each time substituting the <router_nickname> with one of the top, bottom, left, right:
    156   {{{
    157   geni@geni-VirtualBox:~$ ssh -A <router_nickname> "/local/click-example/extractClickConfig.py "
    158   }}}
    159   You'll get output something like this:
    160   {{{
    161 Your host information:
    162         hostA: hostA.StupidSliceName.emulab-net.emulab.net pc347.emulab.net
    163         top: top.StupidSliceName.emulab-net.emulab.net pc336.emulab.net
    164         left: left.StupidSliceName.emulab-net.emulab.net pc358.emulab.net
    165         right: right.StupidSliceName.emulab-net.emulab.net pc278.emulab.net
    166         bottom: bottom.StupidSliceName.emulab-net.emulab.net pc348.emulab.net
    167         hostB: hostB.StupidSliceName.emulab-net.emulab.net pc353.emulab.net
    168 Done.
    169 }}}
    170   (If you are prompted for a password, check to make sure that you provided the -A switch in your ssh command above.)
    171 
    172   i. The extractClickConfig script produces router configurations for your experiment. It also creates a diagram of your experiment. Get a copy locally from one of the routers, by typing in a local terminal:
    173   {{{
    174  scp top:myslice.png
    175 }}}
    176   i. View the diagram by typing :
    177   {{{
    178   eog myslice.png &
    179 }}}
    180   Your slice will look something like the one below (see [attachment:myslice.png]). The overall configuration should be the same, with two end hosts, named hostA and hostB, and four routers (top, left, right, bottom) in a diamond configuration. The host names, interface names, and MAC addresses will be different, depending on the actual resources assigned to your slice.
    181 
    182 [[Image(myslice.png, 25%)]]
    183 
    184 The four routers interconnected by solid lines are your "core network," which will run a non-standard, non-IP protocol. The dashed lines out to the end hosts carry standard IP traffic.
     145=== 3b. Configure your hosts ===
     146  i. On each of the terminals that you have logged in to a myPlc node type:
     147  {{{
     148  sudo yum install -y nc
     149  }}}
     150
     151== 4. Create your OpenFlow sliver ==
     152Now that we have our myPlc hosts and our PG host is being configured, it is time to reserve our OpenFlow sliver.
     153  i. Add the OpenFlow AM nickname in your `omni_config` file
     154    a. Open file `~/.gcf/omni_config`
     155    b. find the `[aggregate_nicknames]` section in the file and move to th `OpenFlow MAs`
     156    c. Add this line :
     157    {{{
     158of-tut=,https://aquarion.gpolab.bbn.com:3626/foam/gapi/1
     159}}}
     160  i. Download your OpenFlow rspec, use the<ofrspec_url> on the paper slip
     161  {{{
     162  wget <ofrspec_url>
     163  }}}
     164  i Edit the OpenFlow rspec. There are only two things you will need to edit :
     165    a. <USERNAME> : use the information on the paper slip
     166    b. <HOSTNAME> : use the hostname of you ProtoGENI host that you note down before (e.g. `pc104.emulab.net`)
     167  i. Create your sliver using the filename of your rspec:
     168  {{{
     169    omni.py createsliver -a of-tut
     170  }}}
    185171
    186172== 4. Turn off internet protocol ==