4-node Experiment on Three Different Infrastructures¶
This reference experiment is on how the same experiment is executed on
three different infrastructures using the same
experiment runner, runexp.py
. The experiment topology is composed of
three client nodes, one web server, connected with
a bridge. Each client retrieves (using curl
) a large file from the
web server (running nginx
) while capturing
packets on their data plane using tcpdump
.
The infrastructures are:
There is a topology creator for the VTS and CL infrastructures,
reserve-vts.py
and reserve-ig.py
, respectively. RPi
infrastructure is setup by physical connections to bridges.
The basic topology configuration is as shown below:
Topology in Infrastructures¶
Each infrastructure may have its unique way of creating a topology. Some may be on virtualized platforms and some may be bare metal. The network isolation principles may also vary from one to another. Therefore, this particular reference experiment illustrates the reservation and setup information for three infrastructures where two are isolated networks on virtualized platforms, namely VTS and CloudLab, and the last one, RPi-3 nodes, is composed of bare metal resources that are neither shared nor virtualized.
VTS Topology Reservation¶
reserve-vts.py
takes a number of arguments, most of which are optional.
|
Site to deploy topology, as a site name (vts-gpo, etc.) |
|
Slice name |
|
Project name (typically the geni-lib default) |
|
Path to context JSON, if not default location |
|
Delete any pre-existing sliver with same slice name |
|
SSH Config file location for constructed topology |
|
URL for |
|
Branch in supplied repository |
Only slice
is a required argument if you have a properly set up geni-lib
context. You can
use the URL and branch to supply your own modification to the experiment.
The common execution of reserve-vts.py
for this reference experiment will simply be:
$ reserve-vts.py --slice slicename
CloudLab Topology Reservation¶
reserve-ig.py
takes a number of arguments, most of which are optional.
|
Site to deploy topology, as a site name (ig-gpo, etc.) |
|
Site URL to deploy topology |
|
Slice name |
|
Project name (typically the geni-lib default) |
|
Path to context JSON, if not default location |
|
Delete any pre-existing sliver with same slice name |
|
SSH Config file location for constructed topology |
|
URL for |
|
Branch in supplied repository |
|
Image to be deployed on nodes |
|
User name in GENI/CloudLab context |
Only slice
and user
is a required argument if you have a properly
set up geni-lib
context and current default builds the topology at
the University of Hawaii InstaGENI rack. You
can use the URL and branch to supply your own modification to the experiment.
The common execution of reserve-ig.py
for this reference experiment
will simply be:
$ reserve.py --slice slicename --user username
Experiment Execution¶
runexp.py
takes only the infrastructure as an argument for this
reference experiment.
|
Infrastructure to run this experiment on |
A typical run of the experiment on the RPi-3 network would be:
$ runexp.py --infra rpi