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)
======================================================================