07World 3 Pro lab

How Networks Work | Pro lab for Level 3-6

Your First eBGP Session

Establish an eBGP session between two containerized FRR routers in different Autonomous Systems and prove prefix exchange with BGP table evidence.

Time45 minutes
EnvironmentDocker Engine or Docker Desktop
StackFRR 10.3.1, Docker Compose, vtysh
OutputBGP table dumps and session evidence
00

Prove two Autonomous Systems can exchange routes

Two FRR routers in AS 65001 and AS 65002 form an eBGP session. Each advertises one prefix. You verify that both routers learn the remote prefix through BGP.

Session state

show bgp summary confirms Established state and prefix count.

Routing table

show ip bgp shows learned prefixes with next hops and AS paths.

Peer evidence

BGP table entries with peerId confirm the route crossed an AS boundary.

PredictionBefore building, write how many prefixes r1 will have in its BGP table and what AS path it will show for 192.168.2.0/24.
01

Understand the topology

Two routers connected by one Docker bridge network.

mls1-bgp-r1AS 65001 / 10.1.12.2
mls1-bgp-r2AS 65002 / 10.1.12.3
Link10.1.12.0/28 bridge
r1 advertises192.168.1.0/24
r2 advertises192.168.2.0/24
ProtocoleBGP (external BGP)
02

Check prerequisites and pull image

Docker and Docker Compose must be available. The FRR image is about 200 MB.

Terminal (no sudo needed)
./scripts/mission-act2-bgp.sh doctor
./scripts/mission-act2-bgp.sh prep
Success
Docker and Docker Compose report PASS. FRR image is pulled.
Boundary
All containers use mls1-bgp prefixed names. No host networking is changed.
03

Build the lab and wait for convergence

Start both routers and wait for BGP sessions to reach Established state.

Build and verify
./scripts/mission-act2-bgp.sh build lab01
./scripts/mission-act2-bgp.sh verify lab01
Success
All 6 checks pass: containers running, sessions established, prefixes learned.
04

Inspect router state

Connect to each router and examine the BGP session, routing table and received prefixes.

Connect to r1
./scripts/mission-act2-bgp.sh connect r1
Inside vtysh on r1
show bgp summary
show ip bgp
show running-config
Key evidence on r1State/PfxRcd shows 1 (Established, one prefix received). The BGP table shows 192.168.2.0/24 with next hop 10.1.12.3 and AS path "65002 i". Type exit to leave, then repeat on r2.
05

Collect timestamped evidence

Save BGP summaries, routing tables, neighbor details and running configs to a local results folder.

Evidence collection
./scripts/mission-act2-bgp.sh evidence lab01
Output
A timestamped directory under results/ with BGP summaries, table dumps, running configs and a manifest.
Evidence contractThe BGP summary proves session state. The BGP table proves prefix learning with AS paths. The running config proves the exact neighbor and network statements that produced the exchange.
06

Explain what the evidence proves

Answer these questions using your collected evidence.

  1. Why does 192.168.1.0/24 on r1 show next hop 0.0.0.0 and weight 32768?
  2. Why does 192.168.2.0/24 on r1 show AS path "65002 i"?
  3. What would happen if you changed r2's remote-as to a wrong number?
  4. What does this evidence prove, and what can it not prove?
07

Destroy cleanly

Remove both containers and the Docker network. Evidence remains in the local results folder.

Cleanup
./scripts/mission-act2-bgp.sh destroy lab01