Skip to content

Latest commit

 

History

History

poc_autoconf

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

This is a Proof of Concept (PoC) implementation of an autoconfiguration setup to be used with ARTEMIS.

Setup architecture

 ----------------          -------------          -------------
| ExaBGP Monitor |        | MONITOR AS  |        |  CLIENT AS  |
|    AS65001     |  eBGP  |   AS65003   |  eBGP  |   AS65004   |
|      exa       | ------ | r03 (goBGP) | ------ | r04 (goBGP) |
|    1.1.1.11    |        |   1.1.1.13  |        |  1.1.1.14   |
 ----------------          -------------          -------------
        |
     ARTEMIS

Auto-configuration steps

  1. AS65004 announces 1K routes.
  2. AS65003 sees them and relays them to the exaBGP monitor for auto-configuration.
  3. ARTEMIS writes the configuration file automatically.

How to run

  1. In docker-compose.yaml, edit volumes to point to the PoC's files:

    version: '3.4'
    services:
      configuration:
        ...
        volumes:
          ...
          - ./poc_autoconf/configs/artemis/:/etc/artemis/
          ...
      ...
      fileobserver:
        ...
        volumes:
          ...
          - ./poc_autoconf/configs/artemis/:/etc/artemis/
          ...
    
  2. Run the following command and check the ARTEMIS UI:

    docker-compose -f docker-compose.yaml -f docker-compose.pocautoconf.yaml up -d
    

    After it is up and running, activate ARTEMIS exabgp tap.

  3. Connect to r04 and announce a new prefix:

    docker-compose -f docker-compose.yaml -f docker-compose.pocmitigatedeaggregate.yaml exec r04 sh
    gobgp global rib add 192.168.0.0/16 -a ipv4
    
  4. Check in the UI that the configuration has been updated. You can repeat this to see a corresponding withdrawal:

    docker-compose -f docker-compose.yaml -f docker-compose.pocmitigatedeaggregate.yaml exec r04 sh
    gobgp global rib del 192.168.0.0/16 -a ipv4
    
  5. For stress-testing, create 500 routes of the form 192.$i.$j.0/24 and 500 routes of the form 2001:db8:$i:$j::/64 where i in (1 .. 10) and j in (1 .. 100):

    docker-compose -f docker-compose.yaml -f docker-compose.pocmitigatedeaggregate.yaml exec r04 sh
    ./add_routes.sh
    
  6. Check in the UI that the configuration has been updated. You can repeat this to see all corresponding withdrawals:

    docker-compose -f docker-compose.yaml -f docker-compose.pocmitigatedeaggregate.yaml exec r04 sh
    gobgp global del all -a ipv4
    gobgp global del all -a ipv6