Jump to: navigation, search

Difference between revisions of "Neutron/DynamicRouting/TestingDynamicRouting"

Line 9: Line 9:
 
An ugly schema of the environment will be the following:
 
An ugly schema of the environment will be the following:
  
(TODO)
+
 
  
 
== Prepare devstack ==
 
== Prepare devstack ==
Line 59: Line 59:
 
Before run devstack, you should install Ryu BGP driver. Ryu uses olso.config for declare and load configuration options and last version throws a conflict exception. You'd rather install last version from source:
 
Before run devstack, you should install Ryu BGP driver. Ryu uses olso.config for declare and load configuration options and last version throws a conflict exception. You'd rather install last version from source:
  
<code>
+
  $ git clone https://github.com/osrg/ryu
$ git clone https://github.com/osrg/ryu
+
  $ cd ryu && sudo python setup.py install
$ cd ryu && sudo python setup.py install
 
</code>
 
  
 
now you can run devstack.
 
now you can run devstack.
 +
 +
== Prepare quagga ==
 +
 +
Install Quagga in another virtual machine with a bridged interface. This interface gets IP address 192.168.2.65

Revision as of 07:37, 25 August 2014

Tutorial to test Dynamic Routing

This page explains how to test the Dynamic Routing functionality. Currently this feature is not merged yet and it should be ready for Juno.

Environment to Test

We want to test how Dynamic Routing Agent (dr_agent) is able to exchange routes from Neutron to a uplink Quagga instance. To do so, we are going to deploy a Virtual Machine with devstack and another Virtual Machine with a quagga instance. It will not be a real scenario deployment because we will need to do a trick in the gateway router, but the purpose of this tutorial is just see how the dr_agent works advertising and discovering routes as well as the exposed neutron resources through the python-neutronclient tool.

An ugly schema of the environment will be the following:


Prepare devstack

Just deploy a devstack in a Virtual Machine with a bridged interface. Let's supose this bridged interface gets the 192.168.2.38 address. There is a WIP patch in gerrit to allow depoy the dr-agent here.

To let devstack clone the under-review BGP code (neutron and python-neutronclient), use the following local.conf:

 !/usr/bin/env bash
 [[local|localrc]]
 
 THE_PASSWORD=dummy
 DATABASE_PASSWORD=${DATABASE_PASSWORD:-$THE_PASSWORD}
 RABBIT_PASSWORD=${RABBIT_PASSWORD:-$THE_PASSWORD}
 SERVICE_TOKEN=${SERVICE_TOKEN:-$THE_PASSWORD}
 SERVICE_PASSWORD=${SERVICE_PASSWORD:-$THE_PASSWORD}
 ADMIN_PASSWORD=${ADMIN_PASSWORD:-$THE_PASSWORD}
 
 SCREEN_LOGDIR=/tmp
 
 NEUTRON_REPO=https://review.openstack.org/openstack/neutron
 NEUTRON_BRANCH=refs/changes/38/115938/1
 NEUTRONCLIENT_REPO=https://review.openstack.org/openstack/python-neutronclient
 NEUTRONCLIENT_BRANCH=refs/changes/18/111318/5
 
 #disable heat, too much time for the Fedora image
 disable_service h-eng
 disable_service h-api
 disable_service h-api-cfn
 disable_service h-api-cw
  
 # enable neutron
 disable_service n-net
 enable_service q-svc
 enable_service q-dhcp
 enable_service q-meta
 enable_service q-lbaas
 enable_service q-agt
 enable_service q-l3
 
 # enable dynamic routing agent (NEW!)
 enable_service q-dragent
 
 HOST_IP=192.168.2.38

please note the enable_service q-dragent line is the one that deploys the dr-agent and the branches used in gerrit mention the patchset. So for check the last version you should see if the last part of the branch name is the last patchset available.

Before run devstack, you should install Ryu BGP driver. Ryu uses olso.config for declare and load configuration options and last version throws a conflict exception. You'd rather install last version from source:

 $ git clone https://github.com/osrg/ryu
 $ cd ryu && sudo python setup.py install

now you can run devstack.

Prepare quagga

Install Quagga in another virtual machine with a bridged interface. This interface gets IP address 192.168.2.65