Changes between Version 2 and Version 3 of GEC15Agenda/AdvancedGENITopoOmni/Instructions/L3DeflectExperiment
- Timestamp:
- 10/21/12 15:04:53 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GEC15Agenda/AdvancedGENITopoOmni/Instructions/L3DeflectExperiment
v2 v3 54 54 55 55 == 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.56 Once 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. 57 57 58 58 === 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 {{{ 62 61 readyToLogin.py -a <AM_nickname> <slicename> > login.out 2>&1 63 62 }}} 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 {{{ 68 65 ... <lots of output> ... 69 66 ================================================================================ … … 87 84 }}} 88 85 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 {{{ 93 89 IdentityFile /home/geni/.ssh/geni_key 94 90 … … 119 115 }}} 120 116 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 ==== 120 For 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 131 125 ==== 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. 126 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. We will use one 127 of the myPlc nodes for this, just choose one. 133 128 i. In your local terminal type : 134 129 {{{ 135 ssh -A top"ls -a"130 ssh -A sardis.gpolab.bbn.com "ls -a" 136 131 }}} 137 132 This will list all the files under the home directory on host `top`. The output should look like: 138 133 {{{ 139 geni@geni-VirtualBox:~$ ssh -A top"ls -a"134 geni@geni-VirtualBox:~$ ssh -A planetlab5.clemson.edu "ls -a" 140 135 . 141 136 .. 137 .bash_history 142 138 .bash_logout 143 139 .bash_profile 144 140 .bashrc 145 .forward146 .kshrc147 .ssh148 .zshrc149 141 }}} 150 142 151 143 If you get something similar you are all set for controlling your nodes from your computer. 152 144 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 == 152 Now 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 {{{ 158 of-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 }}} 185 171 186 172 == 4. Turn off internet protocol ==