Changes between Initial Version and Version 1 of GENIExperimenter/GpoLabExample


Ignore:
Timestamp:
05/04/11 20:32:18 (13 years ago)
Author:
nriga@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/GpoLabExample

    v1 v1  
     1[[PageOutline]]
     2
     3This page is still under construction, please email any comments/corrections you have to [mailto:help@geni.net].
     4
     5= Get 2 ProtoGENI hosts connected through OpenFlow at the GPO lab =
     6
     7== Using GPO credentials ==
     8In order to grab all the resources needed, you will need to use the omni client, which is a
     9software that uses the GENI AM API to get resources from the different aggregates. General
     10information and instructions can be found at [http://trac.gpolab.bbn.com/gcf/wiki/Omni].
     11
     12It will also be easier if you have credentials from GPO's ProtoGENI Clearinghouse, so it is recommended
     13 that you get an account there. All the necessary steps for this are described at
     14http://groups.geni.net/geni/wiki/GENIExperimenter/ExperimentCredentials. Please let us know if you
     15need any help setting up your project, getting accounts or configuring the omni client. 
     16
     17Once you have created an account on GPO's ProtoGENI cluster and you have configured omni to use
     18GPO's Clearinghouse, you should be all set to get the needed resources. [attachment:omni_config This] is an example omni configuration file, that you can use
     19as a guide.
     20
     21=== 1. Create a slice and renew it ===
     22{{{
     23nriga@pella:~/gcf$ ./src/omni.py createslice niky_pgof_gpo
     24
     25nriga@pella:~/gcf$ ./src/omni.py renewslice niky_pgof_gpo  20110520T00:00:00Z
     26}}}
     27
     28The default expiration time for a slice is only a few hours, so make sure that you renew
     29your slice before adding any resources, since any resources that you acquire can not have
     30an expiration time that outlives your slice.
     31
     32=== 2. Create a PG sliver and renew it ===
     33Our ProtoGENI aggregate has 11 nodes that are identically configured. In this example the [attachment:pg.rspec provided rspec] requests for
     34any two ProtoGENI hosts. You can modify the rspec to request for more nodes if needed. You do not need to specify the
     35topology in the ProtoGENI rspec file, since you are going to use OpenFlow to control your traffic and create your topology. 
     36Find out the available resources using the command listresources
     37{{{
     38nriga@pella:~/gcf$ src/omni.py listresources -n -a http://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/am
     39}}}
     40
     41If there are enough available resources then create and renew your sliver.
     42{{{
     43nriga@pella:~/gcf$ src/omni.py createsliver -n -a http://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/am  niky_pgof_gpo pg.rspec
     44
     45nriga@pella:~/gcf$ src/omni.py renewsliver -a https://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/am -n niky_pgof_gpo 20110520T00:00:00Z
     46}}}
     47For ProtoGENI slivers the expiration time is the same as the expiration time of
     48the sliver, but you might want to make it a habit to renew your sliver after creating it since this is not true for all aggregates.
     49
     50Use the sliverstatus command to check whether your resources are ready for use. Be patient it will take several minutes until your
     51nodes boot and are ready for use. The sliverstatus will also tell you which hosts you have reserved. The hosts in the GPO lab are named pc1-pc11.
     52Make a note of the number for each one of the hosts, since you are going to need it to configure your topology.
     53{{{
     54nriga@pella:~/gcf$ src/omni.py sliverstatus -a http://www.pgeni.gpolab.bbn.com/protogeni/xmlrpc/am  niky_pgof_gpo
     55}}}
     56
     57When the sliverstatus says ready login to the nodes :
     58{{{
     59nriga@pella:~/gcf$ ssh -i /home/nriga/.ssh/gcf_id_rsa inki@pc6.pgeni.gpolab.bbn.com
     60}}}
     61
     62 
     63You will need to follow [wiki:NikySandbox/GPO_PGOF#ConfigurePGHosts these instructions] in all your hosts in order to configure the network interface that is directly connected to the OpenFlow switch. It's important to do this step '''BEFORE''' creating the OpenFlow sliver, since the interfaces need to be up before being able to reserve the OpenFlow resources.
     64
     65=== 3. Create an OpenFlow sliver ===
     66Assuming that you will start with a local test only, you will need to control all the traffic coming and going to your hosts.
     67When you need to connect this testbed to other sites, please let us know and we will give you further instructions on how to accomplish this.
     68
     69To get the OpenFlow resources :
     70{{{
     71nriga@pella:~/gcf$ src/omni.py createsliver -n -a https://tulum.gpolab.bbn.com:1443/openflow/gapi/ niky_pgof_gpo of.rspec
     72}}}
     73
     74The OpenFlow slivers do not expire, so there is no need to renew this sliver. However it is important to delete your OpenFlow sliver BEFORE your slice expires, since you won't be able to delete after that. If your slice expires and you haven't deleted your OpenFlow sliver, please send an email to gpo-infra@geni.net and ask for your sliver to be deleted. Use this [wiki:NikySandbox/GPO_PGOF#OFdeleteemailtemplate email template].
     75
     76You will need to modify the [attachment:of.rspec of.rspec file] in two ways :
     77   a. Change the port numbers that you request based on the hosts you got. The port number you need to use is port=24+xx, where xx is the number from the hosts you have reserved, the example rspec is for the case you reserved pc4 and pc6 (ports 28 and 30).
     78   b. Point the traffic to your own controller. In the example rspec, the OpenFlow resources point to a controller running at a host in the GPO lab (nineveh.gpolab.bbn.com) listening on port 1716 for connections. You can use any host you want for the controller as long as it is reachable through the internet.  Performance-wise you might want to use one of your ProtoGENI hosts (make sure you specify the control interface of the host, e.g. pc4.pgeni.gpolab.bbn.com) as your OpenFlow controller. If you have never used OpenFlow before, let us know and we can help you get started.
     79
     80After you reserve your OpenFlow resources, send an email to gpo-infra@geni.net so that we can opt-in your traffic. Use this [wiki:NikySandbox/GPO_PGOF#OFOpt-inemailtemplate email template]. After you get an email back that your OpenFlow setup is ready you can start your experiment.
     81
     82To test connectivity you can first start your controller acting as a Layer 2 switch and try pinging between your hosts.
     83
     84== OF Opt-in email template ==
     85The email has to be addressed to [mailto:gpo-infra@geni.net].
     86For the email you will need the following info from your openflow rspec file
     87   * <user_email> : from the user tag, the value of the email attribute
     88   * <project_name> : from the the project tag, the value of the name attribute
     89   * <slice_name> : from the the slice tag, the value of the name attribute
     90
     91For this [attachment:of.rspec rspec] the values would be : <user_email> = nriga@bbn.com, <project_name> = PG-OF-test, <slice_name> = niky-test.
     92
     93Use the following template
     94{{{
     95To: gpo-infra@geni.net
     96From: Geni User <geniuser@example.com>
     97Subject: Opt-in traffic for slice <slice_name>
     98
     99Please opt-in the traffic for the slice with the following information :
     100 * name : <slice_name>
     101 * project : <project_name>
     102 * email : <user_email>
     103
     104Thanks,
     105
     106}}}
     107
     108== OF delete email template ==
     109The email has to be addressed to [mailto:gpo-infra@geni.net].
     110For the email you will need the following info from your openflow rspec file
     111   * <user_email> : from the user tag, the value of the email attribute
     112   * <project_name> : from the the project tag, the value of the name attribute
     113   * <slice_name> : from the the slice tag, the value of the name attribute
     114
     115For this [attachment:of.rspec rspec] the values would be : <user_email> = nriga@bbn.com, <project_name> = PG-OF-test, <slice_name> = niky-test.
     116
     117Use the following template
     118{{{
     119To: gpo-infra@geni.net
     120From: Geni User <geniuser@example.com>
     121Subject: Delete OpenFlow slice <slice_name>
     122
     123Please delete the OpenFlow slice with the following information :
     124 * name : <slice_name>
     125 * project : <project_name>
     126 * email : <user_email>
     127
     128Thanks,
     129
     130}}}
     131
     132== Configure PG Hosts ==
     133Login to the nodes :
     134{{{
     135nriga@pella:~/gcf$ ssh -i /home/nriga/.ssh/gcf_id_rsa inki@pc6.pgeni.gpolab.bbn.com
     136}}}
     137
     138On each of the PG hosts you reserved do:
     139   1. Add these lines in the end of /etc/network/interfaces, edit this file as sudo:
     140{{{
     141auto eth3.1700
     142iface eth3.1700 inet static
     143    address 10.17.0.1xx
     144    netmask 255.255.255.0
     145    mtu 1500
     146}}}
     147where xx = the number of the pc host, xx=04 for pc4 and xx=06 for pc6.
     148   2. Install the vlan package
     149{{{
     150 sudo apt-get install vlan
     151}}}
     152   3. Reboot the machine
     153{{{
     154sudo init 6 && exit
     155}}}
     156
     157When the nodes rebooted they will have a new interface eth3.1700 that is configured in the
     15810.17.0.0/24 subnet.
     159
     160 
     161