Version 38 (modified by 13 years ago) (diff) | ,
---|
Enterprise GENI Evaluation
The Enterprise-GENI solution is composed of four main entities:
- OpenFlow-based Substrate Version ??: Switches that communicate using the OpenFlow protocol to the OpenFlow controller. Software version available include
- Indigo
- Pica8
- FlowVisor Version 0.8.1.2 : Custom-build OpenFlow controller that isolates experiment control traffic.
- Opt In Manager Version 0.2.5 : Administrative application for OpenFlow-based network.
- Expedient Version 4.0.2: Portal for defining experiment resources.
- NOX Zaku branch: An OpenFlow Controller providing flow level control of network traffic.
- SNAC An OpenFlow Controller which is a NOX module. Not covered here.
- FOAM Version 0.2.2 will replace the Expedient Aggregate Manager and Opt In Manager. Version? Location?
Evaluation Time Frame: September 26, 2011
Enterprise GENI Findings
Initial review of the FlowVisor deployment page and FlowVisor 0.8.1.2 found the following issues.
Enterprise GENI How-to
FlowVIsor Installation and Configuration
Using instructions from https://openflow.stanford.edu/display/flowvisor/fv_deploy, installed the Ubuntu package FlowVisor Version 0.8.1.2. First, add the following to /etc/apt/sources.list file:
deb http://updates.flowvisor.org/openflow/downloads/GENI/DEB unstable/binary-$(ARCH)/
Install package:
sudo apt-get update && sudo apt-get install flowvisor
Before proceeding to configuration step, should modify the SSL_KEYPASSWD in the file /usr/etc/flowvisor/envs.sh to define the password to be used by the fv-admin profile:
You can now start the FlowVisor, note if this is a new FlowVisor installation, the SSL keystor must be generated, below is a capture of the process:
$ sudo /usr/sbin/flowvisor /usr/etc/flowvisor/config.xml Starting FlowVisor Running with FV_JVM_ARGS=-server -Xms100M -Xmx1000M -XX:OnError=flowvisor-crash-logger -XX:+UseConcMarkSweepGC --- Setting logging level to NOTE java.lang.RuntimeException: SSL Key Store file not found: '/usr/etc/flowvisor/mySSLKeyStore' Please generate with `fvconfig generateCert` at org.flowvisor.api.APIServer.spawn(APIServer.java:85) at org.flowvisor.FlowVisor.run(FlowVisor.java:143) at org.flowvisor.FlowVisor.main(FlowVisor.java:191) $ sudo fvconfig generateCert Trying to generate SSL Server Key with passwd from scripts/envs.sh Generating cert with common name == mallorea.gpolab.bbn.com $ sudo /usr/sbin/flowvisor /usr/etc/flowvisor/config.xml & [1] 1283 Starting FlowVisor Running with FV_JVM_ARGS=-server -Xms100M -Xmx1000M -XX:OnError=flowvisor-crash-logger -XX:+UseConcMarkSweepGC --- Setting logging level to NOTE
The FlowVisor configuration that is delivered includes sample slices that should be deleted:
fvctl --passwd-file=/root/.fvp deleteSlice alice fvctl --passwd-file=/root/.fvp deleteSlice bob
Issues found, captured in email. (and bugs?)
FOAM Installation and Configuration
Followed the install from package instruction found at the [ https://openflow.stanford.edu/display/FOAM/install FOAM install] page. Created a file foam.list in the directory /etc/apt/sources.list.d/ containing the following:
deb http://updates.flowvisor.org/openflow/downloads/GENI/DEB unstable/all/
Installed the foam package and initialize the FOAM database:
$ sudo apt-get update $ sudo apt-get install foam $ sudo -u www-data foamctl init-db Certificates Directory [/opt/foam/etc/gcf-ca-certs]: Site Tag [mallorea.gpolab.bbn.com]: FlowVisor Hostname: mallorea.gpolab.bbn.com FlowVisor XMLRPC Port [8080]: FlowVisor JSON RPC Port [8081]: fvadmin user password:
Set up the FOAM administrative account password:
sudo foamctl set-password
Removed the default nginx site:
sudo rm /etc/nginx/sites-enabled/default
Installed a trusted root certificate from pgeni.gpolab.bbn.com, bundled the certificate and started the FOAM services:
$ sudo wget http://www.pgeni.gpolab.bbn.com/ca-cert/pgeni.gpolab.bbn.com.pem -O /opt/foam/etc/gcf-ca-certs/pgeni.gpolab.bbn.com.pem $ sudo wget https://emulab.net/genica.bundle -O /opt/foam/etc/gcf-ca-certs/emulab.pem --no-check-certificate $ sudo foamctl bundle-certs $ sudo service nginx start $ sudo service foam start
Once the FOAM services are started generated a simple RSPEC using instructions from the Example RSPEC and Convert Expedient to FOAM RSPEC page:
<?xml version="1.1" encoding="UTF-8"?> <rspec xmlns="http://www.protogeni.net/resources/rspec/2" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/2" xs:schemaLocation="http://www.protogeni.net/resources/rspec/2 http://www.protogeni.net/resources/rspec/2/request.xsd http://www.geni.net/resources/rspec/ext/openflow/2 http://www.geni.net/resources/rspec/ext/openflow/2/of-resv.xsd" type="request"> <openflow:sliver description="Luisa sliver description" email="lnevers@bbn.com" ref="http://www.bbn.com"> <openflow:controller url="tcp:mallorea.gpolab.bbn.com:9933" type="primary" /> <openflow:group name="mygroup"> <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:mallorea.gpolab.bbn.com+datapath:04:4d:00:12:e2:b8:a5:d0" component_manager_id="urn:publi cid:IDN+openflow:foam:mallorea.gpolab.bbn.com+authority+am" > <openflow:port name="GBE0/22" num="22"/> </openflow:datapath> </openflow:group> <openflow:match> <openflow:use-group name="mygroup" /> <openflow:packet> <openflow:dl_dst value="00:0c:29:9a:28:00,00:0c:29:1f:75:b0"/> </openflow:packet> </openflow:match> <openflow:match> <openflow:use-group name="mygroup" /> <openflow:packet> <openflow:dl_src value="00:0c:29:9a:28:00,00:0c:29:1f:75:b0"/> </openflow:packet> </openflow:match> </openflow:sliver> </rspec>
Using omni tools created a slice and got OF resources:
$ ./src/omni.py -n -a https://mallorea.gpolab.bbn.com:3626/foam/gapi createslice foamslice1 INFO:omni:Loading config file omni_config INFO:omni:Using control framework pgeni INFO:omni:Created slice with Name foamslice1, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+foamslice1, Expiration 2011-09-30 00:26:18 INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createslice: Options as run: aggregate: https://mallorea.gpolab.bbn.com:3626/foam/gapi framework: pgeni native: True Args: createslice foamslice1 Result Summary: Created slice with Name foamslice1, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+foamslice1, Expiration 2011-09-30 00:26:18 INFO:omni: ============================================================ ./src/omni.py -n -a https://mallorea.gpolab.bbn.com:3626/foam/gapi createsliver foamslice1 FOAM.rspec INFO:omni:Loading config file omni_config INFO:omni:Using control framework pgeni INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+foamslice1 expires within 1 day on 2011-09-30 00:26:18 UTC INFO:omni:Creating sliver(s) from rspec file FOAM.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+foamslice1 INFO:omni:Asked https://mallorea.gpolab.bbn.com:3626/foam/gapi to reserve resources. Result: INFO:omni:<?xml version="1.0" ?> INFO:omni:<!-- Reserved resources for: Slice: foamslice1 At AM: URL: https://mallorea.gpolab.bbn.com:3626/foam/gapi --> INFO:omni: <rspec type="manifest" xmlns="http://www.protogeni.net/resources/rspec/2" xmlns:openflow="http://www.geni.net/resources/rspec/ext/openflow/2" xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="http://www.protogeni.net/resources/rspec/2 http://www.protogeni.net/resources/rspec/2/request.xsd http://www.geni.net/resources/rspec/ext/openflow/2 http://www.geni.net/resources/rspec/ext/openflow/2/of-resv.xsd"> <openflow:sliver description="Luisa sliver description" email="lnevers@bbn.com" ref="http://www.bbn.com"> <openflow:controller type="primary" url="tcp:mallorea.gpolab.bbn.com:9933"/> <openflow:group name="mygroup"> <openflow:datapath component_id="urn:publicid:IDN+openflow:foam:mallorea.gpolab.bbn.com+datapath:04:4d:00:12:e2:b8:a5:d0" component_manager_id="urn:publicid:IDN+openflow:foam:mallorea.gpolab.bbn.com+authority+am"> <openflow:port name="GBE0/22" num="22"/> </openflow:datapath> </openflow:group> <openflow:match> <openflow:use-group name="mygroup"/> <openflow:packet> <openflow:dl_dst value="00:0c:29:9a:28:00,00:0c:29:1f:75:b0"/> </openflow:packet> </openflow:match> <openflow:match> <openflow:use-group name="mygroup"/> <openflow:packet> <openflow:dl_src value="00:0c:29:9a:28:00,00:0c:29:1f:75:b0"/> </openflow:packet> </openflow:match> </openflow:sliver> </rspec> INFO:omni: ------------------------------------------------------------ INFO:omni: Completed createsliver: Options as run: aggregate: https://mallorea.gpolab.bbn.com:3626/foam/gapi framework: pgeni native: True Args: createsliver foamslice1 FOAM.rspec Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+foamslice1 expires within 1 day(s) on 2011-09-30 00:26:18 UTC Reserved resources on https://mallorea.gpolab.bbn.com:3626/foam/gapi. INFO:omni: ============================================================
NOX Installation
Followed the NOX Installation instructions from the noxrepo.org web site. only evaluated Ubuntu instructions. Install dependencies:
$ cd /etc/apt/sources.list.d $ sudo wget http://openflowswitch.org/downloads/debian/nox.list $ sudo apt-get update $ sudo apt-get install nox-dependencies
Downloaded the NOX source code, but had to install the following undocumented packages for the instruction to work:
$ sudo apt-get install git-core
NOX installation
$ git clone git://noxrepo.org/nox $ cd nox $ git checkout zaku $ ./boot.sh $ mkdir build/ $ cd build/ $ ../configure $ make -j 5
Followed the Using NOX instructions from the noxrepo.org web site.
$ cd nox/build/src $ ./nox_core -v -i ptcp:6633
Installed the nox-gui pre-requisites and started nox-gui:
$ sudo apt-get install python-qt4 python-simplejson ???
Expedient Installation
Installed Expedient using the git repository instructions found in the Checkout Repository section of the Installing Expedient page, but first had to install pre-requisites:
$ sudo apt-get install python-2.6 $ sudo apt-get install xmlsec1 $ sudo apt-get install libxmlsec1-devel $ sudo apt-get install python-setuptools $ sudo apt-get install python-django $ sudo apt-get install python-django-registration $ sudo apt-get install python-decorator $ sudo apt-get install m2crypto $ sudo apt-get install python-imaging (PIL) $ sudo apt-get install python-dateutil $ sudo apt-get install python-crypto $ sudo apt-get install python-paramiko $ sudo apt-get install python-webob $ sudo apt-get install python-OpenSSL $ sudo apt-get install python-pyquery $ sudo apt-get install sphinxsearch $ sudo apt-get install python-pygments $ sudo apt-get install libxslt-dev $ sudo apt-get install python-zsi $ sudo apt-get install python-mysqldb $ sudo easy_install django-autoslug & sudo easy_install django-renderform
Checked out the code:
$ git clone git://openflow.org/expedient $ cd expedient/src/python $ PYTHONPATH=. python expedient/clearinghouse/bootstrap_local_settings.py expedient/clearinghouse/ Traceback (most recent call last): File "expedient/clearinghouse/bootstrap_local_settings.py", line 10, in <module> from expedient.clearinghouse.commands.utils import bootstrap_local_settings File "/home/lnevers/expedient/src/python/expedient/clearinghouse/commands/utils.py", line 12, in <module> from expedient.clearinghouse.defaultsettings.django import CONF_DIR File "/home/lnevers/expedient/src/python/expedient/clearinghouse/defaultsettings/django.py", line 104, in <module> "TEMPLATE_LOADERS", TEMPLATE_LOADERS, globals()) File "/home/lnevers/expedient/src/python/expedient/clearinghouse/defaultsettings/utils.py", line 31, in append_to_local_setting import localsettings ImportError: No module named localsettings lnevers@mallorea:~/expedient/src/python$
After running into several issues, stopped evaluation due to the documentation and source not being maintained.
Attachments (1)
- Feedback-Flowvisor0.8.1.2.txt (2.0 KB) - added by 13 years ago.
Download all attachments as: .zip