wiki:GIR3.2_EnterpriseGENI

Version 36 (modified by lnevers@bbn.com, 8 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
  • 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 (e.g. Stanford, BBN, etc.): BBN
   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 foamctl bundle-certs
  $ sudo service nginx start
  $ sudo service foam start 

}}}

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)

Download all attachments as: .zip