Jump to: navigation, search

Neutron/DynamicRouting/TestingDynamicRouting

< Neutron‎ | DynamicRouting
Revision as of 07:21, 25 August 2014 by Devvesa (talk | contribs) (Created page with "= 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 Jun...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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:

(TODO)

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 stuff (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.