Installation

  1. Strongly suggested: install pip and setup a Virtualenv:
# on Debian/Ubuntu:
sudo apt-get install python-virtualenv

# on CentOS:
sudo yum install epel-release
sudo yum install python-pip python-virtualenv

# setup a virtualenv
mkdir -p ~/.virtualenvs/arouteserver
virtualenv ~/.virtualenvs/arouteserver
source ~/.virtualenvs/arouteserver/bin/activate

More: virtualenv installation and usage.

  1. Install the program.

    • If you plan to run built-in Live tests on your own or to contribute to the project, clone the GitHub repository locally and install dependencies:
    # from within the previously created arouteserver directory
    git clone https://github.com/pierky/arouteserver.git ./
    export PYTHONPATH="`pwd`"
    pip install -r requirements.txt
    
    • If you plan to just use the program to build configurations or to run your own live tests scenarios, you can install it using pip:
    pip install arouteserver
    
  2. Setup your system layout (confirmation will be asked before each action):

# if you installed from GitHub
export PYTHONPATH="`pwd`"
./scripts/arouteserver setup

# if you used pip
arouteserver setup

The program will ask you to create some directories (under ~/arouteserver by default) and to copy some files there. These paths can be changed by editing the arouteserver.yml program configuration file or by using command line arguments. More information in the configuration section.

External programs

ARouteServer uses the following external programs:

  • (mandatory) bgpq3 is used to gather information from IRRDBs.

    To install it:

    mkdir /path/to/bgpq3/directory
    cd /path/to/bgpq3/directory
    git clone https://github.com/snar/bgpq3.git ./
    # make and gcc packages required
    ./configure
    make
    make install
    
  • (optional) Docker is used to perform live validation of configurations.

    To install it, please refer to its official guide.

  • (optional) KVM is also used to perform live tests of OpenBGPD configurations on an OpenBSD virtual machine.

    To install it:

    apt-get install qemu-kvm virtinst
    

    More details: https://wiki.debian.org/KVM

  • (optional) rtrlib and bird-rtrlib-cli; indirectly ARouteServer needs these tools to load RPKI data into BIRD.

    To install them:

    curl -o rtrlib.zip -L https://github.com/rtrlib/rtrlib/archive/v0.3.6.zip
    unzip rtrlib.zip
    
    cd rtrlib-0.3.6 && \
        cmake -D CMAKE_BUILD_TYPE=Release . && \
        make && \
        make install
    
    curl -o bird-rtrlib-cli.zip -L https://github.com/rtrlib/bird-rtrlib-cli/archive/v0.1.1.zip
    unzip bird-rtrlib-cli.zip
    
    cd bird-rtrlib-cli-0.1.1 && \
        cmake . && \
        make
    

    More details: https://github.com/rtrlib/rtrlib/wiki/Installation

    To configure bird-rtrlib-cli please refer to the README.

Upgrading

To upgrade the program, download the new version...

# if you cloned the repository from GitHub,
# from within the local repository's directory:
git pull origin master

# if you installed it with pip:
pip install --upgrade arouteserver

... then sync the local templates with those distributed in the new version:

arouteserver setup-templates

If local templates have been edited, make a backup of your files in order to merge your changes in the new ones later. To customize the configuration of the route server with your own options, please consider using Site-specific custom configuration files instead of editing the template files.