Realistic benchmarks for GoBGP and BIRD - euro-ix/rs-workshop-july-2017 GitHub Wiki

This page has the progress report of the Realistic benchmarks for GoBGP and BIRD team.

Setting up ARouteServer

Assume you have vagrant set up on your machine.

Build a new virtual machine with ubuntu

vagrant init "bento/ubuntu-16.04
vagrant up

Log into the VM: vagrant ssh

Then follow the instructions from ARouteServer documentation. These are:

# setup a virtualenv in the current users home directory, change path if desired, use virtualenvwrapper if desired.
# the basic way to set it up
mkdir -p ~/.virtualenvs/arouteserver
virtualenv ~/.virtualenvs/arouteserver
source ~/.virtualenvs/arouteserver/bin/activate

# clone repository. Hint: do not use `~/arouteserver` as this is the default configuration directory. E.g. use `~/development/arouteserver` or something similar.
git clone https://github.com/pierky/arouteserver.git
cd ~/development/arouteserver.

# install requirements through pip
pip install -r requirements.txt

# before running any ARouteServer command you need to tell the python interpreter where to find the sources
export PYTHONPATH="`pwd`"

# setup ARouteServer on your system, see hints below
./scripts/arouteserver setup

# finish working on arouteserver
deactivate

If you want you may install virtualenvwrapper to ease the setup of your development environment. You may add export PYTHONPATH="`pwd`"to the post-activate hook of virtualenvwrapper. Then all you have to do is cd ~/development/arouteserver and workon arouteserver.

Else, if you start working again on the project do:

cd  ./arouteserver
export PYTHONPATH="`pwd`"

Building the program configuration

ARouteServer program configuration can be entered manually or generated from various sources (Euro-IX JSON, etc.). source PeeringDB is not meant to generate ready to use configurations as the data quality in PeeringDB has large variations. These need to be inspected manually for sure!

Build configuration based on EURO-IX JSON

$ ./scripts/arouteserver clients-from-euroix --cfg /home/user/arouteserver.yml --url file:///home/user/euroix.json 1 --vlan 1 -o /home/user/arouteserver/clients.yml

Generate GoBGP config

$ ./scripts/arouteserver gobgp --cfg /home/user/arouteserver/arouteserver.yml --ip-ver 4 -o /tmp/gobgp_with_filters.conf