wiki:GENIEducation/SampleAssignments/TcpAssignment/ExerciseLayout/DesignSetup

Version 30 (modified by shuang@bbn.com, 11 years ago) (diff)

--

TCP ASSIGNMENT

Hello GENI index Hello GENI index Hello GENI index

STEPS FOR SETTING UP

Using Omni to get physical PCs from ProtoGENI:
0. Get account: (Ignore this if you already have one)
Go to Request_GENI_Account for an emulab account and to join a GENI project.
Apparently you need to join a GENI project (which is created by PIs/GPOs/others who have permission to do so) in order to use GENI resources.

1. Prepare Omni
Here is a very good tutorial on setting up Omni environment: HelloOmni
Simply follow the tutorial to set up Omni.

2. Use Omni to create the topology:
Download the RSPEC from http://www.gpolab.bbn.com/experiment-support/TCPExampleExperiment/star.rspec
Next, we need to create this experiment using the RSPEC file:

Step 1. Create slice (use a unique name for your slice):

omni.py createslice <slice name>

Output should be something like the following (here I am using 'shufengTCP' as the sample slice name):

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni:Created slice with Name shufengTCP, URN urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP, Expiration 2013-05-08 21:17:05
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createslice:

  Options as run:
		framework: portal
		project: ShufengProject

  Args: createslice shufengTCP

  Result Summary: Created slice with Name shufengTCP, URN urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP, Expiration 2013-05-08 21:17:05
 
INFO:omni: ============================================================

Step 2. Renew Slice (to make sure that your reservation does not expire before you finished your experiment, renew the slice to a specific time):

omni.py renewslice shufengTCP 20130509

Output:

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni.pgch:Requesting new slice expiration '2013-05-09T00:00:00'
INFO:omni:Slice shufengTCP now expires at 2013-05-09 00:00:00 UTC
INFO:omni:Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires within 1 day on 2013-05-09 00:00:00 UTC
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed renewslice:

  Options as run:
		framework: portal
		project: ShufengProject

  Args: renewslice shufengTCP 20130509

  Result Summary: Slice shufengTCP now expires at 2013-05-09 00:00:00 UTC
Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires within 1 day(s) on 2013-05-09 00:00:00 UTC 
INFO:omni: ============================================================

Step 3. Create Sliver using star.rspec:

omni.py createsliver -a pg-utah shufengTCP star.rspec

Output:

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires within 1 day on 2013-05-09 00:00:00 UTC
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Creating sliver(s) from rspec file star.rspec for slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP
INFO:omni: (PG log url - look here for details on any failures: https://www.emulab.net/spewlogfile.php3?logfile=03ab3733e54e717594433659b39ca150)
INFO:omni:Got return from CreateSliver for slice shufengTCP at https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0:
INFO:omni:<!-- Reserved resources for:
	Slice: shufengTCP
	at AM:
	URN: unspecified_AM_URN
	URL: https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0
 -->
INFO:omni:<rspec xmlns="http://www.protogeni.net/resources/rspec/2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.protogeni.net/resources/rspec/2                            http://www.protogeni.net/resources/rspec/2/manifest.xsd" type="manifest">
<node client_id="center" exclusive="true" component_id="urn:publicid:IDN+emulab.net+node+pc73" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" sliver_id="urn:publicid:IDN+emulab.net+sliver+127723">
    <sliver_type name="raw-pc">
        <disk_image name="urn:publicid:IDN+emulab.net+image+emulab-ops//FEDORA10-STD"/>
    </sliver_type>
    <interface client_id="center:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth4" sliver_id="urn:publicid:IDN+emulab.net+sliver+127730" mac_address="00034794bc44"><ip address="10.10.1.2" type="ipv4"/></interface>
    <interface client_id="center:if1" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth0" sliver_id="urn:publicid:IDN+emulab.net+sliver+127733" mac_address="00034773942f"><ip address="10.10.2.2" type="ipv4"/></interface>
    <interface client_id="center:if2" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth1" sliver_id="urn:publicid:IDN+emulab.net+sliver+127736" mac_address="000347739430"><ip address="10.10.3.2" type="ipv4"/></interface>
    <interface client_id="center:if3" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127739" mac_address="0002b335e0a5"><ip address="10.10.4.2" type="ipv4"/></interface>
<rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pc73"/><host name="center.shufengTCP.panther.emulab.net"/><services><login authentication="ssh-keys" hostname="pc73.emulab.net" port="22" username="shufeng"/></services></node>
<node client_id="left" exclusive="true" component_id="urn:publicid:IDN+emulab.net+node+pc81" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" sliver_id="urn:publicid:IDN+emulab.net+sliver+127725">
    <sliver_type name="raw-pc">
        <disk_image name="urn:publicid:IDN+emulab.net+image+emulab-ops//FEDORA10-STD"/>
    </sliver_type>
    <interface client_id="left:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc81:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127729" mac_address="0002b33f7333"><ip address="10.10.1.1" type="ipv4"/></interface>
<rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pc81"/><host name="left.shufengTCP.panther.emulab.net"/><services><login authentication="ssh-keys" hostname="pc81.emulab.net" port="22" username="shufeng"/></services></node>
<node client_id="right" exclusive="true" component_id="urn:publicid:IDN+emulab.net+node+pc55" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" sliver_id="urn:publicid:IDN+emulab.net+sliver+127724">
    <sliver_type name="raw-pc">
        <disk_image name="urn:publicid:IDN+emulab.net+image+emulab-ops//FEDORA10-STD"/>
    </sliver_type> <interface client_id="right:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc55:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127732" mac_address="0002b33f7449"><ip address="10.10.2.1" type="ipv4"/></interface>
<rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pc55"/><host name="right.shufengTCP.panther.emulab.net"/><services><login authentication="ssh-keys" hostname="pc55.emulab.net" port="22" username="shufeng"/></services></node>
<link client_id="leftLink" sliver_id="urn:publicid:IDN+emulab.net+sliver+127728" vlantag="260">
    <interface_ref client_id="left:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc81:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127729"/>
    <interface_ref client_id="center:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth4" sliver_id="urn:publicid:IDN+emulab.net+sliver+127730"/>
</link>
<link client_id="rightLink" sliver_id="urn:publicid:IDN+emulab.net+sliver+127731" vlantag="284">
    <interface_ref client_id="right:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc55:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127732"/>
    <interface_ref client_id="center:if1" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth0" sliver_id="urn:publicid:IDN+emulab.net+sliver+127733"/>
</link>
<node client_id="top" exclusive="true" component_id="urn:publicid:IDN+emulab.net+node+pc47" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" sliver_id="urn:publicid:IDN+emulab.net+sliver+127722">
    <sliver_type name="raw-pc">
        <disk_image name="urn:publicid:IDN+emulab.net+image+emulab-ops//FEDORA10-STD"/>
    </sliver_type>
    <interface client_id="top:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc47:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127735" mac_address="0002b33f73e7"><ip address="10.10.3.1" type="ipv4"/></interface>
<rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pc47"/><host name="top.shufengTCP.panther.emulab.net"/><services><login authentication="ssh-keys" hostname="pc47.emulab.net" port="22" username="shufeng"/></services></node>
<node client_id="bottom" exclusive="true" component_id="urn:publicid:IDN+emulab.net+node+pc84" component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" sliver_id="urn:publicid:IDN+emulab.net+sliver+127726">
    <sliver_type name="raw-pc">
        <disk_image name="urn:publicid:IDN+emulab.net+image+emulab-ops//FEDORA10-STD"/>
    </sliver_type>
    <interface client_id="bottom:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc84:eth1" sliver_id="urn:publicid:IDN+emulab.net+sliver+127738" mac_address="00034773a1f4"><ip address="10.10.4.1" type="ipv4"/></interface>
<rs:vnode xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1" name="pc84"/><host name="bottom.shufengTCP.panther.emulab.net"/><services><login authentication="ssh-keys" hostname="pc84.emulab.net" port="22" username="shufeng"/></services></node>
<link client_id="topLink" sliver_id="urn:publicid:IDN+emulab.net+sliver+127734" vlantag="290">
    <interface_ref client_id="top:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc47:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127735"/>
    <interface_ref client_id="center:if2" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth1" sliver_id="urn:publicid:IDN+emulab.net+sliver+127736"/>
</link>
<link client_id="bottomLink" sliver_id="urn:publicid:IDN+emulab.net+sliver+127737" vlantag="262">
    <interface_ref client_id="bottom:if0" component_id="urn:publicid:IDN+emulab.net+interface+pc84:eth1" sliver_id="urn:publicid:IDN+emulab.net+sliver+127738"/>
    <interface_ref client_id="center:if3" component_id="urn:publicid:IDN+emulab.net+interface+pc73:eth3" sliver_id="urn:publicid:IDN+emulab.net+sliver+127739"/>
</link>
</rspec>
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createsliver:

  Options as run:
		aggregate: ['pg-utah']
		framework: portal
		project: ShufengProject

  Args: createsliver shufengTCP star.rspec

  Result Summary: Got Reserved resources RSpec from www-emulab-net-protogeniv2 
INFO:omni: ============================================================

The above output shows the reserved nodes: pc73, pc81, pc55, pc47, pc84 and how they are connected. In this case, pc73 is the central node of the star topology.
Alternatively, you can use the following command to show the reserved nodes as well as ways to login:

readyToLogin.py shufengTCP -a pg-utah

The result is something like the following:

#========================================
#SSH CONFIGURATION INFO for User shufeng
#========================================
 
Host right
  Port 22
  HostName pc55.emulab.net
  User shufeng 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host bottom
  Port 22
  HostName pc84.emulab.net
  User shufeng 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host center
  Port 22
  HostName pc73.emulab.net
  User shufeng 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host top
  Port 22
  HostName pc47.emulab.net
  User shufeng 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host left
  Port 22
  HostName pc81.emulab.net
  User shufeng 
  IdentityFile /Users/shuang/.ssh/geni_key 

================================================================================
LOGIN INFO for AM: https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0
================================================================================

right's geni_status is: ready (am_status:ready) 
User shufeng logins to right using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key shufeng@pc55.emulab.net &

bottom's geni_status is: ready (am_status:ready) 
User shufeng logins to bottom using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key shufeng@pc84.emulab.net &

center's geni_status is: ready (am_status:ready) 
User shufeng logins to center using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key shufeng@pc73.emulab.net &

top's geni_status is: ready (am_status:ready) 
User shufeng logins to top using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key shufeng@pc47.emulab.net &

left's geni_status is: ready (am_status:ready) 
User shufeng logins to left using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key shufeng@pc81.emulab.net &

Step 4. Renew the sliver:

omni.py renewsliver -a pg-utah shufengTCP 20130509

Output:

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires within 1 day on 2013-05-09 00:00:00 UTC
INFO:omni:Renewing Sliver shufengTCP until 2013-05-09 00:00:00+00:00 (UTC)
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
WARNING:omni:Failed to renew sliver urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP on unspecified_AM_URN (https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0) (got result 'None'). Error from Aggregate: code 14. protogeni AM code: 14: slice is busy; try again later (PG log url - look here for details on any failures: https://www.emulab.net/spewlogfile.php3?logfile=daae02988bdac3f0d008b48b6397e0fb).
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed renewsliver:

  Options as run:
		aggregate: ['pg-utah']
		framework: portal
		project: ShufengProject

  Args: renewsliver shufengTCP 20130509

  Result Summary: Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires within 1 day(s) on 2013-05-09 00:00:00 UTC
Failed to renew sliver urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP on unspecified_AM_URN (https://www.emulab.net:12369/protogeni/xmlrpc/am/2.0) (got result 'None'). Error from Aggregate: code 14. protogeni AM code: 14: slice is busy; try again later (PG log url - look here for details on any failures: https://www.emulab.net/spewlogfile.php3?logfile=daae02988bdac3f0d008b48b6397e0fb).
 
INFO:omni: ============================================================

Note: When dealing with specific slivers, we need to add "-a pg-utah" to specify which aggregate manager we want to use (i.e., from where we want to reserve the resources). In our case here, we are using utah aggregate.

OK. After this point, we are ready to log on to the nodes and do our experiments! :-)

Using GENI Portal to get virtual machines from instaGENI:
0. GET GENI Portal Account
As usual, get a GENI Portal account via: Portal Main Site
Here is a very good tutorial on setting up GENI Portal account: Setup_Portal_Account

1. Prepare Omni by following this tutorial: HelloOmni
As a result, if you have already installed omni, all u need to do now is to do "omni-configure.py -f portal"
Apparently GENI Portal also uses Omni to control and manage GENI resources.

Very Important: using omni-configure.py -f portal will over-write ~/.ssh/geni_key and ~/.ssh/geni_key.pub. The result is, user can not login the reserved nodes using their omni keys (the original geni_key pair)
So, the simplest way to deal with this is, over-write the public/private keys. i.e., type 'Y' when prompt asks whether you want to replace the two files. Then use portal credentials to reserve resources.

2. Using GENI Portal to create the star topology

Step 1. Log in to your Portal account, and then create a slice using the "create slice" button. Note that you should give your slice a unique name. Here I used "shufengPortalTCP"
Step 2. Click your newly created slice, choose "add resources"

Step 3. Pick TCP Assignment - Virtual Machine in the drop-down box right to "Choose Resources"

The rspec file that is used can be found at http://www.gpolab.bbn.com/experiment-support/TCPExampleExperiment/star-vm.rspec

And choose an Aggregate, in our case, we choose "GPO instaGENI", then click "Reserve Resources"
This particular RSPEC file will reserve a 5 virtual machines forming a star topology as described earlier.

Step 4. If there is no error(s), the output should be as follows. Note that at this point the nodes are not ready yet.

Step 5. Go back to the slice page and wait until the slivers are ready.
Since we reserved our nodes from GPO instaGENI, we only need to click the "get status" button on GPO instaGENI column.
A note of "READY" with green background means the slivers are ready. (Do not forget to renew your slice after it is ready). See:

Step 6. Click "Details" button to get the detailed information, including the ways to login each nodes and then start to do your experiment!

Using Omni to get virtual machines from ExoGENI:
0. Get account: (Ignore this if you already have one)
Go to Request_GENI_Account for an emulab account and to join a GENI project.
Apparently you need to join a GENI project (which is created by PIs/GPOs/others who have permission to do so) in order to use GENI resources.

1. Prepare Omni
Here is a very good tutorial on setting up Omni environment: HelloOmni
Simply follow the tutorial to set up Omni.

2. Use Omni to create the topology:
Download the RSPEC from http://www.gpolab.bbn.com/experiment-support/TCPExampleExperiment/star-exo-vm.rspec

  • Note: If we compare the RSPEC we used here to reserve nodes from ExoGENI with the RSPEC we used here to reserve nodes from InstaGENI, we can find the following difference:
    • slivertype. For InstaGENI, it is emulab-openvz; For ExoGENI, it is m1.small. In fact, there are a handful of virtual machine types available for users to choose from. Check out this Link
    • disk_image. For InstaGENI, the user does not need to specify a disk_image, it automatically chooses a default one (a version of Fedora Core). For ExoGENI, the user have to specify one. Again, we have a handful of choices, see this link.
    • interface. Since ExoGENI provides KVM VMs, the user needs to manually define the IP address of each interface on each ExoGENI nodes.
    • xml header.

Next, we need to create this experiment using the RSPEC file:

Step 1. Create slice (use a unique name for your slice):

omni.py createslice <slice name>

Output should be something like the following (here I am using 'shufengTCP' as the sample slice name):

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni:Created slice with Name shufengTCP, URN urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP, Expiration 2013-05-15 02:11:03
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createslice:

  Options as run:
		framework: portal
		project: ShufengProject

  Args: createslice shufengTCP

  Result Summary: Created slice with Name shufengTCP, URN urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP, Expiration 2013-05-15 02:11:03
 
INFO:omni: ============================================================

Step 2. Renew Slice (to make sure that your reservation does not expire before you finished your experiment, renew the slice to a specific time):

omni.py renewslice shufengTCP 20130516

Output:

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni.pgch:Requesting new slice expiration '2013-05-16T00:00:00'
INFO:omni:Slice shufengTCP now expires at 2013-05-16 00:00:00 UTC
INFO:omni:Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires on 2013-05-16 00:00:00 UTC
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed renewslice:

  Options as run:
		framework: portal
		project: ShufengProject

  Args: renewslice shufengTCP 20130516

  Result Summary: Slice shufengTCP now expires at 2013-05-16 00:00:00 UTC
Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires on 2013-05-16 00:00:00 UTC 
INFO:omni: ============================================================

Step 3. Create Sliver using star-exo-vm.rspec:
Here we used eg-gpo as the aggregate manager because we want to reserve resources from ExoGENI.
Any aggregate manager name that starts with eg indicates that it is an ExoGENI aggregate. For more aggregate manager names you can check out ~/.gcf/omni_config

omni.py createsliver -a eg-gpo shufengTCP star-exo-vm.rspec

Output:

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni:Substituting AM nickname eg-gpo with URL https://bbn-hn.exogeni.net:11443/orca/xmlrpc, URN unspecified_AM_URN
INFO:omni:Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires within 1 day on 2013-05-16 00:00:00 UTC
INFO:omni:Substituting AM nickname eg-gpo with URL https://bbn-hn.exogeni.net:11443/orca/xmlrpc, URN unspecified_AM_URN
INFO:omni:Substituting AM nickname eg-gpo with URL https://bbn-hn.exogeni.net:11443/orca/xmlrpc, URN unspecified_AM_URN
INFO:omni:Creating sliver(s) from rspec file star-exo-vm.rspec for slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP
INFO:omni:Got return from CreateSliver for slice shufengTCP at https://bbn-hn.exogeni.net:11443/orca/xmlrpc:
INFO:omni:<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
INFO:omni:  <!-- Reserved resources for:
	Slice: shufengTCP
	at AM:
	URN: unspecified_AM_URN
	URL: https://bbn-hn.exogeni.net:11443/orca/xmlrpc
 -->
INFO:omni:  
<rspec type="manifest" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/manifest.xsd http://hpn.east.isi.edu/rspec/ext/stitch/0.1/ http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd http://groups.geni.net/exogeni/attachment/wiki/RspecExtensions/slice-info/1 http://groups.geni.net/exogeni/attachment/wiki/RspecExtensions/slice-info/1/slice_info.xsd?format=raw http://groups.geni.net/exogeni/attachment/wiki/RspecExtensions/sliver-info/1 http://groups.geni.net/exogeni/attachment/wiki/RspecExtensions/sliver-info/1/sliver_info.xsd?format=raw" xmlns:ns2="http://hpn.east.isi.edu/rspec/ext/stitch/0.1/" xmlns="http://www.geni.net/resources/rspec/3" xmlns:ns4="http://groups.geni.net/exogeni/attachment/wiki/RspecExtensions/sliver-info/1" xmlns:ns3="http://groups.geni.net/exogeni/attachment/wiki/RspecExtensions/slice-info/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <node sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#left" exclusive="false" component_name="orca-vm-cloud" component_manager_id="urn:publicid:IDN+exogeni.net:bbnvmsite+authority+am" component_id="urn:publicid:IDN+exogeni.net:bbnvmsite+node+orca-vm-cloud" client_id="left">
        <sliver_type name="m1.small">
            <disk_image version="0beb69c8fbe65af0134ac8fe38b22e8f9b3c254c" name="http://emmy9.casa.umass.edu/Disk_Images/ExoGENI/Ubuntu1204/ubuntu1204.xml"/>
        </sliver_type>
        <services/>
        <interface client_id="left:if0">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.2.2"/>
        </interface>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </node>
    <node sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#top" exclusive="false" component_name="orca-vm-cloud" component_manager_id="urn:publicid:IDN+exogeni.net:bbnvmsite+authority+am" component_id="urn:publicid:IDN+exogeni.net:bbnvmsite+node+orca-vm-cloud" client_id="top">
        <sliver_type name="m1.small">
            <disk_image version="0beb69c8fbe65af0134ac8fe38b22e8f9b3c254c" name="http://emmy9.casa.umass.edu/Disk_Images/ExoGENI/Ubuntu1204/ubuntu1204.xml"/>
        </sliver_type>
        <services/>
        <interface client_id="top:if0">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.4.2"/>
        </interface>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </node>
    <node sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#right" exclusive="false" component_name="orca-vm-cloud" component_manager_id="urn:publicid:IDN+exogeni.net:bbnvmsite+authority+am" component_id="urn:publicid:IDN+exogeni.net:bbnvmsite+node+orca-vm-cloud" client_id="right">
        <sliver_type name="m1.small">
            <disk_image version="0beb69c8fbe65af0134ac8fe38b22e8f9b3c254c" name="http://emmy9.casa.umass.edu/Disk_Images/ExoGENI/Ubuntu1204/ubuntu1204.xml"/>
        </sliver_type>
        <services/>
        <interface client_id="right:if0">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.3.2"/>
        </interface>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </node>
    <node sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#center" exclusive="false" component_name="orca-vm-cloud" component_manager_id="urn:publicid:IDN+exogeni.net:bbnvmsite+authority+am" component_id="urn:publicid:IDN+exogeni.net:bbnvmsite+node+orca-vm-cloud" client_id="center">
        <sliver_type name="m1.small">
            <disk_image version="0beb69c8fbe65af0134ac8fe38b22e8f9b3c254c" name="http://emmy9.casa.umass.edu/Disk_Images/ExoGENI/Ubuntu1204/ubuntu1204.xml"/>
        </sliver_type>
        <services/>
        <interface client_id="center:if2">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.4.1"/>
        </interface>
        <interface client_id="center:if3">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.5.1"/>
        </interface>
        <interface client_id="center:if1">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.3.1"/>
        </interface>
        <interface client_id="center:if0">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.2.1"/>
        </interface>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </node>
    <node sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#bottom" exclusive="false" component_name="orca-vm-cloud" component_manager_id="urn:publicid:IDN+exogeni.net:bbnvmsite+authority+am" component_id="urn:publicid:IDN+exogeni.net:bbnvmsite+node+orca-vm-cloud" client_id="bottom">
        <sliver_type name="m1.small">
            <disk_image version="0beb69c8fbe65af0134ac8fe38b22e8f9b3c254c" name="http://emmy9.casa.umass.edu/Disk_Images/ExoGENI/Ubuntu1204/ubuntu1204.xml"/>
        </sliver_type>
        <services/>
        <interface client_id="bottom:if0">
            <ip type="ipv4" netmask="255.255.255.0" address="172.16.5.2"/>
        </interface>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </node>
    <link vlantag="unknown" sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#topLink" client_id="topLink">
        <interface_ref client_id="top:if0"/>
        <interface_ref client_id="center:if2"/>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </link>
    <link vlantag="unknown" sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#leftLink" client_id="leftLink">
        <interface_ref client_id="center:if0"/>
        <interface_ref client_id="left:if0"/>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </link>
    <link vlantag="unknown" sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#rightLink" client_id="rightLink">
        <interface_ref client_id="center:if1"/>
        <interface_ref client_id="right:if0"/>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </link>
    <link vlantag="unknown" sliver_id="urn:publicid:IDN+exogeni.net:bbnvmsite+sliver+5893fa3e-4a8a-42ce-ac4a-7e2f77ef310a#bottomLink" client_id="bottomLink">
        <interface_ref client_id="center:if3"/>
        <interface_ref client_id="bottom:if0"/>
        <ns4:geni_sliver_info state="Nascent" start_time="2013-05-15T14:11:08.252Z" expiration_time="2013-05-16T14:11:08.252Z" creation_time="2013-05-15T14:11:08.252Z" creator_urn="shufeng.huang@uky.edu, urn:publicid:IDN+panther+user+shufeng"/>
    </link>
    <ns3:geni_slice_info state="configuring" uuid="ae708f85-3fb9-49ef-9b79-7631a9ceea8f" urn="urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP"/>
</rspec>

INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createsliver:

  Options as run:
		aggregate: ['eg-gpo']
		framework: portal
		project: ShufengProject

  Args: createsliver shufengTCP star-exo-vm.rspec

  Result Summary: Got Reserved resources RSpec from bbn-hn-exogeni-net-11443-orca 
INFO:omni: ============================================================

Note here that unlike instaGENI, the above output does not show any login information.
For the time this page is created, the only way to get login information to access ExoGENI node is via:

readyToLogin.py shufengTCP -a eg-gpo

The result is something like the following:

#========================================
#SSH CONFIGURATION INFO for User root
#========================================
 
Host right
  Port 22
  HostName 192.1.242.66
  User root 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host top
  Port 22
  HostName 192.1.242.68
  User root 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host bottom
  Port 22
  HostName 192.1.242.65
  User root 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host center
  Port 22
  HostName 192.1.242.67
  User root 
  IdentityFile /Users/shuang/.ssh/geni_key 
 
Host left
  Port 22
  HostName 192.1.242.64
  User root 
  IdentityFile /Users/shuang/.ssh/geni_key 

================================================================================
LOGIN INFO for AM: https://bbn-hn.exogeni.net:11443/orca/xmlrpc
================================================================================
User root logins to right using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key root@192.1.242.66 &
User root logins to top using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key root@192.1.242.68 &
User root logins to bottom using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key root@192.1.242.65 &
User root logins to center using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key root@192.1.242.67 &
User root logins to left using:
	xterm -e ssh -i /Users/shuang/.ssh/geni_key root@192.1.242.64 &

Step 4. Renew the sliver:

omni.py renewsliver -a eg-gpo shufengTCP 20130516

Output:

INFO:omni:Loading config file /Users/shuang/.gcf/omni_config
INFO:omni:Using control framework portal
INFO:omni:Substituting AM nickname eg-gpo with URL https://bbn-hn.exogeni.net:11443/orca/xmlrpc, URN unspecified_AM_URN
INFO:omni:Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires on 2013-05-16 00:00:00 UTC
INFO:omni:Renewing Sliver shufengTCP until 2013-05-16 00:00:00+00:00 (UTC)
INFO:omni:Substituting AM nickname eg-gpo with URL https://bbn-hn.exogeni.net:11443/orca/xmlrpc, URN unspecified_AM_URN
INFO:omni:Renewed sliver urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP at unspecified_AM_URN (https://bbn-hn.exogeni.net:11443/orca/xmlrpc) until 2013-05-16T00:00:00+00:00 (UTC)
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed renewsliver:

  Options as run:
		aggregate: ['eg-gpo']
		framework: portal
		project: ShufengProject

  Args: renewsliver shufengTCP 20130516

  Result Summary: Slice urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP expires on 2013-05-16 00:00:00 UTC
Renewed sliver urn:publicid:IDN+panther:ShufengProject+slice+shufengTCP at unspecified_AM_URN (https://bbn-hn.exogeni.net:11443/orca/xmlrpc) until 2013-05-16T00:00:00+00:00 (UTC)
 
INFO:omni: ============================================================

Note: When dealing with specific slivers, we need to add "-a eg-gpo" to specify which aggregate manager we want to use (i.e., from where we want to reserve the resources). In our case here, we are using ExoGENI Rack at GPO.

Note: when you try to login the nodes, you might encounter errors like the following:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
12:3b:a0:19:db:b8:62:46:5d:a3:e2:06:27:eb:de:e2.
Please contact your system administrator.
Add correct host key in /Users/shuang/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/shuang/.ssh/known_hosts:20
RSA host key for 192.1.242.65 has changed and you have requested strict checking.
Host key verification failed.

This type of error happens when you have previously logged in a machine with the same IP address and that machine happens not to be the same one as the VM you want to log in.
As a result, this error might happen a lot, especially if you have done experiments on ExoGENI before (since it always uses the same IP range for its VMs and each VM is different from each other, i.e., with different RSA keys).
In this case, simply open ~/.ssh/known_hosts and remove the line corresponding to the IP address you are trying to login. In our case here, find 192.1.242.65 and remove that line.

Enable IP forwarding and configure routing tables

This is a very important step in terms of using ExoGENI.
Since ExoGENI does not automatically configure IP address/routing table/IP forwarding for the user (unlike protoGENI and InstaGENI), the user needs to do it manually (or give the instructions in the RSPEC file).
Step 1. enable IP forwarding on center node (we need to first stop a routine that over-write any network configurations in ExoGENI node):
On center node, run the following:

 /etc/init.d/neuca stop
 sysctl -w net.ipv4.ip_forward=1

Step 2. configure default routes on the rest node: On left node, run the following:

 route add -net 172.16.0.0/16 gw 172.16.2.1

On right node, run the following:

 route add -net 172.16.0.0/16 gw 172.16.3.1

On top node, run the following:

 route add -net 172.16.0.0/16 gw 172.16.4.1

On bottom node, run the following:

 route add -net 172.16.0.0/16 gw 172.16.5.1

After these steps, we can start to do the experiments on ExoGENI virtual machines!

Difference between ExoGENI and InstaGENI in terms of using:

ExoGENI InstaGENI
VM type KVM VM OpenVZ
RSPEC Need to specify image, IP address, etc. have default image, automatically assigns IP address
Aggregate Manager name begins with eg- name begins with ig-
Login Method uses root, can only get from using readyToLogin.py uses your user account name, can get from flack, readyToLogin.py, etc.
Flack interface can only be accessible if launched from GENI Portal accessible from directly using protogeni.net
Others user may need to clear corresponding entries/lines in file ~/.ssh/known_hosts in order to login None

Next: Run Experiment

Attachments (4)

Download all attachments as: .zip