routing-lab/lab002-openbgpd-ix-routeserver
2023-12-10 12:41:41 +01:00
..
alice-lg feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00
as23/conf feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00
as42/conf feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00
as1337/conf feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00
ixrs/conf feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00
docker-compose.yml feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00
README.md feat: restructure, add lab002: route server 2023-12-10 12:41:41 +01:00

Lab 2: eBGP Routing with an OpenBGPD Route Server

Network Architecture

  • There are 3 AS: AS23, AS42 and AS1337
  • All eBGP routers are connected to the same bridge (like an IX)
  • There is another OpenBGPD server on the same bridge acting as an IX route server.

eBGP

  • Each AS runs an OpenBGPD router for eBGP peering.
  • Each AS peers with the route server fd00:d0ca:ffff:1::ffff.
  • 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: Verify that direct routes are configured in the FIB even though the routes were learned through the route server:

$ docker exec -it lab002-openbgpd-ix-routeserver-as23-1 /bin/sh
/ # ip -6 r | grep 'via fd00'
fd00:d0ca:42:1::/64 via fd00:d0ca:ffff:1::42 dev eth1  metric 1024
fd00:d0ca:1337:1::/64 via fd00:d0ca:ffff:1::1337 dev eth1  metric 1024
default via fd00:d0ca:23:1::1 dev eth0  metric 1024
/ # bgpctl show rib
flags: * = Valid, > = Selected, I = via IBGP, A = Announced,
       S = Stale, E = Error
origin validation state: N = not-found, V = valid, ! = invalid
aspa validation state: ? = unknown, V = valid, ! = invalid
origin: i = IGP, e = EGP, ? = Incomplete

flags  vs destination           gateway                lpref med aspath      origin
AI*>  N-? fd00:d0ca:23:1::/64   ::                     100   0               i
*>    N-? fd00:d0ca:42:1::/64   fd00:d0ca:ffff:1::42   100   0   65535 42    i
*>    N-? fd00:d0ca:1337:1::/64 fd00:d0ca:ffff:1::1337 100   0   65535 1337  i

TODO: I don't yet understand why the AS 65535 (route server) is added to the AS path despite transparent-as yes being configured.