routing-lab/lab002-openbgpd-ix-routeserver/README.md

38 lines
1.7 KiB
Markdown

# 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](https://github.com/alice-lg/alice-lg) looking class connecting to all 3 BGP routers is started on [http://localhost:7340](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:
```shell-session
$ 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.