This is me getting some hands-on experience with routing protocols by building a small docker-compose based lab environment.
alice-lg | ||
as23/conf | ||
as42/conf | ||
as1337/conf | ||
docker-compose.yml | ||
LICENSE | ||
README.md |
Routing Lab
Hi, this is me getting some hands-on experience with routing protocols by building a small docker-compose based lab environment.
The contents of this repository are licensed under the MIT license, so feel free to fork, reuse and expand it.
Important
This lab environment uses IPv6 exclusively. IPv6 support must be enabled in Docker beforehand!
Network Architecture
- There are 3 AS: AS23, AS42 and AS1337
- Each pair of AS' has its own direct interconnect in a dedicated docker network.
- Exception: There are two AS23-AS42 interconnects, each in its own docker network.
- The IP range used in each interconnect is
fd00:d0ca:<ASN1><ASN2>:<IC#>::/64
, where AS1337 uses13
instead.<IC#>
is the interconnect ID (as there's tw between AS23 and AS42).
eBGP
- Each AS runs an OpenBGPD router for eBGP peering.
- An alice-lg looking class connecting to all 3 BGP routers is started on http://localhost:7340.
- Each AS announces the
fd00:d0ca:<ASN>:1::/64
prefix.
Example: traceroute from AS42 eBGP router to AS23 eBGP router: When the link is taken offline, the traffic is routed via AS1337 instead:
routing-lab-as42-1:/ # traceroute fd00:d0ca:23:1::10
traceroute to fd00:d0ca:23:1::10 (fd00:d0ca:23:1::10), 30 hops max, 72 byte packets
1 fd00:d0ca:23:1::10 (fd00:d0ca:23:1::10) 0.022 ms 0.016 ms 0.014 ms
routing-lab-as42-1:/ # bgpctl -s /run/bgpd.sock.42 neigh as23_1 down
request processed
routing-lab-as42-1:/ # traceroute fd00:d0ca:23:1::10
traceroute to fd00:d0ca:23:1::10 (fd00:d0ca:23:1::10), 30 hops max, 72 byte packets
1 routing-lab-as1337-1.routing-lab_as42_as1337_1 (fd00:d0ca:4213:1::1337) 0.059 ms 0.016 ms 0.020 ms
2 fd00:d0ca:23:1::10 (fd00:d0ca:23:1::10) 0.031 ms 0.019 ms 0.017 ms
routing-lab-as42-1:/ # bgpctl -s /run/bgpd.sock.42 neigh as23_1 up
request processed
routing-lab-as42-1:/ # traceroute fd00:d0ca:23:1::10
traceroute to fd00:d0ca:23:1::10 (fd00:d0ca:23:1::10), 30 hops max, 72 byte packets
1 fd00:d0ca:23:1::10 (fd00:d0ca:23:1::10) 0.017 ms 0.018 ms 0.018 ms