BGP in depth lab 14 of 14
Capstone - a small ISP edge
Your last job at Kestrel Fibre: build the whole BGP edge from a one-page design, with no steps to follow. A route reflector on IOS, a transit edge on Junos, a peering edge on EOS and a customer edge on RouterOS, all tagging routes on the way in, preferring customers over peers over transit, and sending only what they should.
Run this lab
It needs Standard: its 7 nodes are set to 8 vCPU and 8,448 MB in total.
In your workspace: Shared, then BGP in depth guided labs, then 14 - Capstone - a small ISP edge
- Level
- Advanced
- Time
- About 150 minutes
- Nodes need
- 8 vCPU, 8,448 MB
- Smallest plan
- Standard
The scenario
Kestrel Fibre is moving to a new edge. The design below is all you get. There are no steps: read it, plan the order, and build it. Everything you need is in the earlier labs.
The design
| Role | Router | Peer | Session details |
|---|---|---|---|
| Route reflector | CORE | SRX1, EOS1, CHR1 as clients | Loopbacks, sending communities |
| Transit edge | SRX1 | TRANSIT, AS 64496 | MD5 key Kestrel-T1 |
| Peering edge | EOS1 | PEER, AS 64497 | MD5 key Kestrel-P1 |
| Customer edge | CHR1 | CUST, AS 64510 |
| Rule | Requirement |
|---|---|
| Next hop | Each edge sets itself as next hop towards the reflector |
| Tagging | Routes get a community where they enter: transit 64500:1000, peer 64500:2000, customer 64500:3000 |
| Preference | Local preference: customer 200, peer 150, transit 100 |
| Customer filter | From CUST, accept only 203.0.113.0/24 |
| Export to TRANSIT and PEER | Only routes tagged customer |
| Inbound engineering | Towards TRANSIT, add one extra copy of AS 64500, so that the world prefers to come in through PEER |
| Export to CUST | A default route only |
| Prefix | Announced by | Expected at CORE |
|---|---|---|
| 198.51.100.0/24 | TRANSIT and PEER | Through EOS1, local preference 150 |
| 192.0.2.0/24 | TRANSIT | Through SRX1, local preference 100 |
| 198.18.77.0/24 | PEER | Through EOS1, local preference 150 |
| 203.0.113.0/24 | CUST | Through CHR1, local preference 200 |
| 10.50.0.0/16 | CUST, by mistake | Rejected |
| Device | Interface | Address | Connects to |
|---|---|---|---|
| CORE | Loopback0 | 10.255.0.1/32 | |
| CORE | Gi0/0 | 10.0.1.1/30 | SRX1 ge-0/0/0 |
| CORE | Gi0/1 | 10.0.2.1/30 | EOS1 Ethernet1 |
| CORE | Gi0/2 | 10.0.3.1/30 | CHR1 ether1 |
| SRX1 | ge-0/0/0 | 10.0.1.2/30 | CORE Gi0/0 |
| SRX1 | ge-0/0/1 | 172.16.1.1/30 | TRANSIT Gi0/0 |
| SRX1 | lo0 | 10.255.0.2/32 | |
| EOS1 | Ethernet1 | 10.0.2.2/30 | CORE Gi0/1 |
| EOS1 | Ethernet2 | 172.16.2.1/30 | PEER Gi0/0 |
| EOS1 | Loopback0 | 10.255.0.3/32 | |
| CHR1 | loopback | 10.255.0.4/32 | |
| CHR1 | ether1 | 10.0.3.2/30 | CORE Gi0/2 |
| CHR1 | ether2 | 172.16.3.1/30 | CUST Gi0/0 |
| TRANSIT | Loopback0 | 10.255.0.8/32 | |
| TRANSIT | Loopback1 | 198.51.100.1/24 | |
| TRANSIT | Loopback2 | 192.0.2.1/24 | |
| TRANSIT | Gi0/0 | 172.16.1.2/30 | SRX1 ge-0/0/1 |
| PEER | Loopback0 | 10.255.0.7/32 | |
| PEER | Loopback1 | 198.51.100.1/24 | |
| PEER | Loopback2 | 198.18.77.1/24 | |
| PEER | Gi0/0 | 172.16.2.2/30 | EOS1 Ethernet2 |
| CUST | Loopback0 | 10.255.0.9/32 | |
| CUST | Loopback1 | 203.0.113.1/24 | |
| CUST | Loopback2 | 10.50.0.1/16 | |
| CUST | Gi0/0 | 172.16.3.2/30 | CHR1 ether2 |
What you’ll practise
- Turn a written design into working configuration on four vendors
- Build iBGP with a route reflector and next-hop-self on every edge
- Classify routes with communities at the point of entry
- Enforce customer, peer and transit preference with local preference
- Stop transit between providers with an export policy based on communities
- Prove the design from outside the AS
The tasks
- Plan the order
- Build iBGP
- Build the edges
- Prove it
The Lab Tasks pane has the scenario, these tasks, the checks to run, hints and the full solution.
Topology and devices
The network as it opens in EVE-NG, drawn from the lab’s own canvas, and the image each node runs.
Every link, as text
- CORE
Gi0/0to SRX1ge-0/0/0 - CORE
Gi0/1to EOS1Ethernet1 - CORE
Gi0/2to CHR1ether1 - SRX1
ge-0/0/1to TRANSITGi0/0 - EOS1
Ethernet2to PEERGi0/0 - CHR1
ether2to CUSTGi0/0
| Node | Device | Image in Add Node | Set to |
|---|---|---|---|
| CORE | Cisco IOSv | vios-adventerprisek9-m.spa.159-3.m9 | 1 vCPU, 512 MB |
| SRX1 | Juniper vSRX NextGen template | vsrxng-23.4R2-S3.9 | 2 vCPU, 4,096 MB |
| EOS1 | Arista vEOS | veos-4.33.1.1F | 1 vCPU, 2,048 MB |
| CHR1 | MikroTik RouterOS | mikrotik-7.14.2 | 1 vCPU, 256 MB |
| TRANSIT | Cisco IOSv | vios-adventerprisek9-m.spa.159-3.m9 | 1 vCPU, 512 MB |
| PEER | Cisco IOSv | vios-adventerprisek9-m.spa.159-3.m9 | 1 vCPU, 512 MB |
| CUST | Cisco IOSv | vios-adventerprisek9-m.spa.159-3.m9 | 1 vCPU, 512 MB |
How to open this lab
Sign in to your workspace at
lab.cloudlabbox.com.In File Manager, open Shared, then the folder
BGP in depth guided labs.Open
14 - Capstone - a small ISP edgeand start its nodes, then open Lab Tasks for the scenario and the steps.
The lab is read-only. You can start the nodes and configure the devices, but changes to the topology can’t be saved. To change it, rebuild it in your own folder.
More BGP in depth labs
Related labs in other courses
CloudLabBox is independent of Arista Networks, Cisco, Juniper Networks and MikroTik. The lab follows exam topics and isn’t vendor training material; vendor names identify the exams and the images in the workspace.