Testing realistic scenarios

Some realistic scenarios have been tested using ARouteServer by feeding it with lists of clients pulled from actual IXPs’ members lists.

  • Euro-IX JSON member list files exposed by the IXPs reported below have been used to automatically generate ARouteServer clients.yml file. AS-SETs and max-prefix limits from PeeringDB have been taken into account when they were not available in the Euro-IX JSON file.

    List of IXPs used to run these tests:

    • AMS-IX, VLAN ID 501 (“ISP”)

    • BCIX, VLAN ID 1 (“BCIX Peering LAN”)

    • BIX, VLAN ID 1 (“IPv4 Peeing LAN”) and 2 (“IPv6 Peeing LAN”)

    • GR-IX

    • INEX, VLAN ID 2 (“Peering VLAN #1”)

    • LONAP, VLAN ID 1 (“LONAP Peering LAN #1”)

    • SIX, VLAN ID 2 (“MTU 1500”)

    • STHIX - Stockholm

    • SwissIX

    The files produced by the clients-from-euroix command can be found within the tests/real/clients directory (see it on GitHub).

  • A rich ARouteServer setup has been used to build BIRD and OpenBGPD configurations, in order to enable as many features as possible: filters based on “same AS” NEXT_HOP, invalid AS_PATHs, transit-free ASNs, IRRDB information, and also max-prefix limits and BGP communities for blackhole filtering, selective announcement, prepending…

    The full description of the configuration can be found in the general.html file, automatically generated from the general.yml file.

  • For each IXP, configurations for BIRD and OpenBGPD (both 6.0 and 6.2) have been finally built using ARouteServer and loaded into an instance of their respective daemon, to verify that no errors occurred:

    • for BIRD, a Docker container has been used;

    • for OpenBGPD 6.0, a virtual server has been instantiated on Vultr in order to have enough resources to process the configuration;

    • for OpenBGPD 6.2, only a few configurations were tested because of lack of resources on my machines :-/

Results can be found within the tests/real/last file (here on GitHub). They are also reported below.

Real configs: AMS-IX, BIRD, IPv4, build ... ok
Real configs: AMS-IX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 801.256s

OK
Building config for bird, IPv4: 664 seconds
Building config for bird, IPv6: 137 seconds


======================================================================
Real configs: AMS-IX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 625.545s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 626 seconds


======================================================================
Real configs: AMS-IX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 642.808s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 643 seconds


======================================================================
Real configs: AMS-IX, BIRD, IPv4, load ... ok
Real configs: AMS-IX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 23.333s

OK
Loading config for bird, IPv4: 5 seconds
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: AMS-IX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 2474.119s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 2469 seconds


======================================================================
Real configs: AMS-IX, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 1 test in 0.004s

OK (SKIP=1)


======================================================================
Real configs: BCIX, BIRD, IPv4, build ... ok
Real configs: BCIX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 252.759s

OK
Building config for bird, IPv4: 206 seconds
Building config for bird, IPv6: 46 seconds


======================================================================
Real configs: BCIX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 195.231s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 196 seconds


======================================================================
Real configs: BCIX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 192.919s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 193 seconds


======================================================================
Real configs: BCIX, BIRD, IPv4, load ... ok
Real configs: BCIX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.258s

OK
Loading config for bird, IPv4: 3 seconds
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: BCIX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 275.215s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 271 seconds


======================================================================
Real configs: BCIX, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 1 test in 0.004s

OK (SKIP=1)


======================================================================
Real configs: BIX_IPv4, BIRD, IPv4, build ... ok
Real configs: BIX_IPv4, BIRD, IPv6, build ... SKIP: IPv4 only
Real configs: BIX_IPv6, BIRD, IPv4, build ... SKIP: IPv6 only
Real configs: BIX_IPv6, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 4 tests in 142.915s

OK (SKIP=2)
Building config for bird, IPv4: 111 seconds


======================================================================
Building config for bird, IPv6: 32 seconds


======================================================================
Real configs: BIX_IPv4, OpenBGPD 6.0, build ... ok
Real configs: BIX_IPv6, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 201.500s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 103 seconds


======================================================================
Building config for openbgpd 6.0, IPv4 & IPv6: 98 seconds


======================================================================
Real configs: BIX_IPv4, OpenBGPD 6.2, build ... ok
Real configs: BIX_IPv6, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 205.375s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 106 seconds


======================================================================
Building config for openbgpd 6.2, IPv4 & IPv6: 99 seconds


======================================================================
Real configs: BIX_IPv4, BIRD, IPv4, load ... ok
Real configs: BIX_IPv4, BIRD, IPv6, load ... SKIP: IPv4 only
Real configs: BIX_IPv6, BIRD, IPv4, load ... SKIP: IPv6 only
Real configs: BIX_IPv6, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 4 tests in 18.206s

OK (SKIP=2)
Loading config for bird, IPv4: 3 seconds


======================================================================
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: BIX_IPv4, OpenBGPD 6.0, load ... ok
Real configs: BIX_IPv6, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 128.880s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 59 seconds


======================================================================
Loading config for openbgpd 6.0, IPv4 & IPv6: 60 seconds


======================================================================
Real configs: BIX_IPv4, OpenBGPD 6.2, load ... SKIP: Lack of resources
Real configs: BIX_IPv6, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 2 tests in 0.008s

OK (SKIP=2)


======================================================================


======================================================================
Real configs: GR-IX, BIRD, IPv4, build ... ok
Real configs: GR-IX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 50.569s

OK
Building config for bird, IPv4: 33 seconds
Building config for bird, IPv6: 18 seconds


======================================================================
Real configs: GR-IX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 61.728s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 62 seconds


======================================================================
Real configs: GR-IX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 61.141s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 61 seconds


======================================================================
Real configs: GR-IX, BIRD, IPv4, load ... ok
Real configs: GR-IX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.477s

OK
Loading config for bird, IPv4: 4 seconds
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: GR-IX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 40.555s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 35 seconds


======================================================================
Real configs: GR-IX, OpenBGPD 6.2, load ... ok

----------------------------------------------------------------------
Ran 1 test in 135.300s

OK
Loading config for openbgpd 6.2, IPv4 & IPv6: 120 seconds


======================================================================
Real configs: INEX, BIRD, IPv4, build ... ok
Real configs: INEX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 55.797s

OK
Building config for bird, IPv4: 36 seconds
Building config for bird, IPv6: 20 seconds


======================================================================
Real configs: INEX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 73.090s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 73 seconds


======================================================================
Real configs: INEX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 73.857s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 73 seconds


======================================================================
Real configs: INEX, BIRD, IPv4, load ... ok
Real configs: INEX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.180s

OK
Loading config for bird, IPv4: 3 seconds
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: INEX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 44.156s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 39 seconds


======================================================================
Real configs: INEX, OpenBGPD 6.2, load ... ok

----------------------------------------------------------------------
Ran 1 test in 155.570s

OK
Loading config for openbgpd 6.2, IPv4 & IPv6: 138 seconds


======================================================================
Real configs: LONAP, BIRD, IPv4, build ... ok
Real configs: LONAP, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 109.184s

OK
Building config for bird, IPv4: 77 seconds
Building config for bird, IPv6: 32 seconds


======================================================================
Real configs: LONAP, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 135.533s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 136 seconds


======================================================================
Real configs: LONAP, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 137.810s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 138 seconds


======================================================================
Real configs: LONAP, BIRD, IPv4, load ... ok
Real configs: LONAP, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.279s

OK
Loading config for bird, IPv4: 4 seconds
Loading config for bird, IPv6: 4 seconds


======================================================================
Real configs: LONAP, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 86.025s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 81 seconds


======================================================================
Real configs: LONAP, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 1 test in 0.005s

OK (SKIP=1)


======================================================================
Real configs: SIX, BIRD, IPv4, build ... ok
Real configs: SIX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 244.815s

OK
Building config for bird, IPv4: 194 seconds
Building config for bird, IPv6: 51 seconds


======================================================================
Real configs: SIX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 226.218s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 226 seconds


======================================================================
Real configs: SIX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 228.808s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 228 seconds


======================================================================
Real configs: SIX, BIRD, IPv4, load ... ok
Real configs: SIX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.345s

OK
Loading config for bird, IPv4: 3 seconds
Loading config for bird, IPv6: 4 seconds


======================================================================
Real configs: SIX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 202.955s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 198 seconds


======================================================================
Real configs: SIX, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 1 test in 0.004s

OK (SKIP=1)


======================================================================
Real configs: STHIX, BIRD, IPv4, build ... ok
Real configs: STHIX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 115.921s

OK
Building config for bird, IPv4: 86 seconds
Building config for bird, IPv6: 30 seconds


======================================================================
Real configs: STHIX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 126.877s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 127 seconds


======================================================================
Real configs: STHIX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 127.479s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 128 seconds


======================================================================
Real configs: STHIX, BIRD, IPv4, load ... ok
Real configs: STHIX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.163s

OK
Loading config for bird, IPv4: 3 seconds
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: STHIX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 87.129s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 82 seconds


======================================================================
Real configs: STHIX, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 1 test in 0.004s

OK (SKIP=1)


======================================================================
Real configs: SwissIX, BIRD, IPv4, build ... ok
Real configs: SwissIX, BIRD, IPv6, build ... ok

----------------------------------------------------------------------
Ran 2 tests in 195.399s

OK
Building config for bird, IPv4: 152 seconds
Building config for bird, IPv6: 43 seconds


======================================================================
Real configs: SwissIX, OpenBGPD 6.0, build ... ok

----------------------------------------------------------------------
Ran 1 test in 177.015s

OK
Building config for openbgpd 6.0, IPv4 & IPv6: 177 seconds


======================================================================
Real configs: SwissIX, OpenBGPD 6.2, build ... ok

----------------------------------------------------------------------
Ran 1 test in 179.282s

OK
Building config for openbgpd 6.2, IPv4 & IPv6: 179 seconds


======================================================================
Real configs: SwissIX, BIRD, IPv4, load ... ok
Real configs: SwissIX, BIRD, IPv6, load ... ok

----------------------------------------------------------------------
Ran 2 tests in 18.255s

OK
Loading config for bird, IPv4: 3 seconds
Loading config for bird, IPv6: 3 seconds


======================================================================
Real configs: SwissIX, OpenBGPD 6.0, load ... ok

----------------------------------------------------------------------
Ran 1 test in 189.827s

OK
Loading config for openbgpd 6.0, IPv4 & IPv6: 185 seconds


======================================================================
Real configs: SwissIX, OpenBGPD 6.2, load ... SKIP: Lack of resources

----------------------------------------------------------------------
Ran 1 test in 0.004s

OK (SKIP=1)


======================================================================