Changes between Initial Version and Version 1 of GIR2.1_BGPMux


Ignore:
Timestamp:
03/14/11 21:58:29 (13 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GIR2.1_BGPMux

    v1 v1  
     1= BGPMux Evaluation =
     2
     3BGPMux (a.k.a. dtunnel) version 53 was downloaded from the SVN repository http://davis.gtnoise.net/svn/dtunnel/ with the login/password provided.
     4
     5Time frame:  This evaluation took place June 14-29, 2010.
     6
     7= BGPMux Findings =
     8
     9Initial SVN revision 56 was missing the following files: ref.bib, rfc.bib and data.py. Verified that files
     10are in the next svn revision 57.
     11
     12With a revoked certificate, the server process is started and no failure is reported to user.
     13Logs show an un-handled error and the revoked certificate message, this may be missed, if user does
     14not look at the logs, also process should not be started if cert is revoked. Verified that files
     15are in the next svn revision 57.
     16
     17With a properly started server, starting a client results in a twisted exception. Verified that files
     18are in the next svn revision 57.
     19
     20Using Version 57, new problem was found with tools not handling scenario where ProtoGENI cannot get
     21the requested node information.  Handler added and new rspec to be provided. (revision 58)
     22
     23
     24= BGPMux How-to =
     25
     26The package is delivered with a README that captures all software pre-requisites and installation steps:
     27{{{
     28This file describes the distribution of the Aggregate Manager (AM) for
     29BGP-mux.
     30
     311. INSTALLING AM
     32
     33Before running AM make sure that you have following Python libraries
     34installed and working:
     351) Twisted
     362) Pexpect
     373) Pxssh
     38
     392. RUNNING AM
     40
     41Just run:
     42./server.py
     43
     44this will start the AM engine which will bind to a TCP port 8080.
     45
     46AM accepts requests from XMLRPC clients and implements 'RedeemTicket'
     47method. Method accepts only one parameter which is an XML string
     48formatted as RSpec.
     49
     50AM needs emulab.net credentials to perform Resolve() calls to Emulab AM.
     51Right now credentials are hardcoded to point to /home/valas/.ssl
     52directory in ProtoGENI.py file. If you plan to test AM please change the
     53pointers to point to your Emulab AM credentials.
     54
     553. TESTING AM
     56
     57A sample RSpec is in the file flash-rspec.xml. Note that this file is
     58extended version of "official" RSpec and contains some additional
     59attributes necessary for our script to establish a client tunnel and BGP
     60session.
     61
     62We also provide a sample client. To feed in an XML file "RedeemTicket"
     63call, simply execute:
     64./client.py flash-rspec.xml
     65
     664. KNOWN BUGS
     67
     68AM should run as close (in terms of network delay) to the Mux as
     69possible. Jitter and delay can cause expect script sessions to timeout.
     70}}}
     71
     72The sample rspec provided flash-rspec.xml:
     73{{{
     74<rspec type="request" xmlns="http://www.protogeni.net/resources/rspec/0.1">
     75 <node component_uuid="urn:publicid:IDN+emulab.net+node+pc1" component_manager_uuid="28a10955-aa00-11dd-ad1f-001143e453fe" virtual_id="pc1" virtualization_type="emulab-vnode" exclusive="1">
     76   <node_type type_name="pc" type_slots="1"/>
     77
     78   <interface virtual_id="control"/>
     79 </node>
     80 <node component_uuid="gtnoise.net+node+atlanta_mux" component_manager_uuid="f00" virtual_id="atlanta_mux" virtualization_type="emulab-vnode" exclusive="1">
     81   <node_type type_name="bgpmux" type_slots="1">
     82     <field key="upstream_as" value="2637"/>
     83     <field key="prefix" value="168.62.16.0"/>
     84     <field key="netmask" value="21"/>
     85   </node_type>
     86   <interface virtual_id="control"/>
     87 </node>
     88 <link virtual_id="link0">
     89   <link_type name="GRE">
     90     <field key="key" value="0"/>
     91     <field key="ttl" value="0"/>
     92   </link_type>
     93   <interface_ref virtual_node_id="atlanta_mux" tunnel_ip="192.168.0.1" virtual_interface_id="control"/>
     94   <interface_ref virtual_node_id="pc1" tunnel_ip="192.168.0.2" virtual_interface_id="control"/>
     95 </link>
     96</rspec>
     97}}}
     98
     99Start the server process, which takes over TCP port 8080 with Twisted Web httpd 8.2.0:
     100{{{
     101$ sudo ./server.py
     102}}}
     103
     104Start the client:
     105{{{
     106$./client.py flash-rspec.xml
     107}}}