wiki:PhoebusExperimentGEMINI

Version 15 (modified by kissel@cis.udel.edu, 6 years ago) (diff)

--

Custom Experiment on InstaGENI with GEMINI

1. Goals

  • Configure the "User Workspace" VM
  • Start an InstaGENI slice
  • Modify the request RSpec to include experiment-specific functions
  • Use Omni to create slivers at the chosen aggregates
  • Use Flack to view and modify the experiment properties as well as view slice status
  • Instrument the slice with GEMINI and configure some measurements using the GENI Desktop
  • Configure nodes using the command line to setup the experiment
  • Run an experiment using scripts to control the node interface properties
  • View results and explore the GEMINI services

2. Experiment Overview

This custom experiment will make use of a WAN accelerator service called Phoebus. Phoebus can help transfer performance of TCP flows over long-distance, or "challeneged", network environments through path segmentation, protocol adaptation, and automatic protocol tuning. Phoebus Gateways (PGs) are typically installed on nodes bordering WAN link(s), segmenting the WAN path from the edge networks (e.g., campus or data centers). This experiment will create a simple 4-node topology over which to test the operation of Phoebus when used with a common network benchmark. To simulate WAN latencies and edge loss, we will use the netem (Network Emulator) module in Linux to modify how packates are handled across the experimental topology. GEMINI will be used to verify connectivity and to collect some performance data.

The image above shows the topology we will create on InstaGENI. We will make some assumptions about addresses assigned to each interface to help with the consistency of this tutorial.

client0 : 10.10.1.1 gateway0 : 10.10.1.2 and 192.168.1.1 gateway1 : 192.168.1.2 and 10.10.2.2 client0 : 10.10.2.1

This IP assignment will give us 3 distinct subnets over which to send traffic. 10.10.1.0/24 (edge 0), 192.168.1.0/24 (WAN), and 10.10.2.0/24 (edge 1) Host routing will be necessary to allow IP fowarding across each subnet.

3. Setting up your user environment

Follow these instructions to configure Omni http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure/Automatic

Now we want to decrypt our private key so Omni won't have to repeatedly prompt for the key password.

4. Create the experiment slice

We will do this through Flack with InstaGENI AMs.

Now we do some editing of the request RSpec. edit_rspec.sh

#!/bin/bash

FILE=$1

TEXT_ADD="\
   <services>\n\
       <execute command='wget -q -P /tmp http://stout.inctre.iu.edu/~kissel/phoebus/phoebus_install.sh;sudo bash /tmp/phoebus_install.sh' shell='sh'/>\n\
   </services>"

sed "/\/node\>/ i\ ${TEXT_ADD}" ${FILE}
$ ./edit_rspec.sh myslice.xml > myslice_phoebus.xml

First, renew the slice created in Flack via Omni.

Create the slivers at each AM. (ig-utah and/or ig-ky)

5. Instrument the slice

geni@GEC16-Tutorials:~/src/GEMINI/geminiv2$ ./gdesktop-init.py -n ezraslice2 -f ~/.ssl/geni_cert.pem
geni@GEC16-Tutorials:~/src/GEMINI/geminiv2$ ./gdesktop-instrumentize.py -n ezraslice2 -f ~/.ssl/geni_cert.pem

6. Login and configure experiment nodes

ssh to each of the nodes in the experiment. Become root with 'sudo su'.

We will now add host routes so the client nodes in the experiment can talk to each other across the GW systems.

On client0:

$ route add -net 10.10.2.0/24 gw 10.10.1.2

On gateway0:

$ route add -net 10.10.2.0/24 gw 192.168.1.2

On gateway1:

$ route add -net 10.10.1.0/24 gw 192.168.1.1

On client1:

$ route ad -net 10.10.1.0/24 gw 10.10.2.2

From client0, you should now be able to ping and traceroute to client1:

$ ping 10.10.2.1
PING 10.10.2.1 (10.10.2.1) 56(84) bytes of data.
64 bytes from 10.10.2.1: icmp_req=1 ttl=62 time=0.054 ms
64 bytes from 10.10.2.1: icmp_req=2 ttl=62 time=0.062 ms
64 bytes from 10.10.2.1: icmp_req=3 ttl=62 time=0.067 ms
^C
--- 10.10.2.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.054/0.061/0.067/0.005 ms
$ traceroute 10.10.2.1
traceroute to 10.10.2.1 (10.10.2.1), 30 hops max, 60 byte packets
 1  gateway0-lan0 (10.10.1.2)  0.049 ms  0.013 ms  0.011 ms
 2  gateway1-lan1 (192.168.1.2)  0.031 ms  0.017 ms  0.016 ms
 3  10.10.2.1 (10.10.2.1)  0.028 ms  0.022 ms  0.021 ms

7. Configure measurements

Login to the GENI Desktop using the bookmark in Firefox. link

Note that this step requires that you first login to your Slice Authority Emulab site.

8. Run experiments

9. View results

Attachments (17)

Download all attachments as: .zip