Version 16 (modified by, 7 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 :

gateway0 : and

gateway1 : and

client0 :

This IP assignment will give us 3 distinct subnets over which to send traffic. (edge 0), (WAN), and (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

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.



       <execute command='wget -q -P /tmp;sudo bash /tmp/' shell='sh'/>\n\

sed "/\/node\>/ i\ ${TEXT_ADD}" ${FILE}
$ ./ 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$ ./ -n ezraslice2 -f ~/.ssl/geni_cert.pem
geni@GEC16-Tutorials:~/src/GEMINI/geminiv2$ ./ -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 gw

On gateway0:

$ route add -net gw

On gateway1:

$ route add -net gw

On client1:

$ route ad -net gw

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

$ ping
PING ( 56(84) bytes of data.
64 bytes from icmp_req=1 ttl=62 time=0.054 ms
64 bytes from icmp_req=2 ttl=62 time=0.062 ms
64 bytes from icmp_req=3 ttl=62 time=0.067 ms
--- 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
traceroute to (, 30 hops max, 60 byte packets
 1  gateway0-lan0 (  0.049 ms  0.013 ms  0.011 ms
 2  gateway1-lan1 (  0.031 ms  0.017 ms  0.016 ms
 3 (  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