BGP in depth lab 13 of 14
Troubleshooting path selection and policy
Every session is up and the graphs look fine, yet customers are complaining. Six policy faults across IOS, Junos, EOS and RouterOS are hiding in Kestrel Fibre's network. None of them shows up as a down session. Work from symptoms to causes with each vendor's tools, and prove each fix with the path it actually chooses.
Run this lab
It needs Standard: its 6 nodes are set to 7 vCPU and 7,936 MB in total.
In your workspace: Shared, then BGP in depth guided labs, then 13 - Troubleshooting path selection and policy
- Level
- Advanced
- Time
- About 120 minutes
- Nodes need
- 7 vCPU, 7,936 MB
- Smallest plan
- Standard
The scenario
All of Kestrel Fibre's BGP sessions are Established, so the monitoring is green. These are the rules the design says should hold:
| # | Rule |
|---|---|
| 1 | Outbound traffic leaves through R1 (local preference 150 on routes from UP) |
| 2 | R2 tags routes from customers, matched by AS path, with 64500:100 |
| 3 | R2 sets local preference 120 on customer routes that carry 64500:120 |
| 4 | R1 and SRX1 send only tagged customer routes to UP; SRX1 adds one prepend, so UP prefers R1 |
| 5 | Every router in AS 64500 can reach every customer route |
And these are the complaints:
| Ticket | Who says | What they say |
|---|---|---|
| 1 | Finance | "Why is our traffic going out through the expensive SRX1 link?" |
| 2 | R1's owner | "R1 can see EOS1's prefix, but can't use it" |
| 3 | EOS1's customer | "We send 64500:120, and it does nothing" |
| 4 | CHR1's customer | "UP can't reach us, though Kestrel can" |
| 5 | CHR1's customer | "Our second block, 192.0.2.128/25, isn't reachable from anywhere" |
| 6 | Network design | "UP should have two paths to each customer. It has one" |
| Device | Interface | Address | Connects to |
|---|---|---|---|
| R1 | Loopback0 | 10.255.0.1/32 | |
| R1 | Gi0/0 | 10.0.12.1/30 | R2 Gi0/0 |
| R1 | Gi0/1 | 172.16.1.1/30 | UP Gi0/0 |
| R2 | Loopback0 | 10.255.0.2/32 | |
| R2 | Gi0/0 | 10.0.12.2/30 | R1 Gi0/0 |
| R2 | Gi0/1 | 10.0.23.1/30 | SRX1 ge-0/0/0 |
| R2 | Gi0/2 | 172.16.3.1/30 | EOS1 Ethernet1 |
| R2 | Gi0/3 | 172.16.4.1/30 | CHR1 ether1 |
| SRX1 | ge-0/0/0 | 10.0.23.2/30 | R2 Gi0/1 |
| SRX1 | ge-0/0/1 | 172.16.2.1/30 | UP Gi0/1 |
| SRX1 | lo0 | 10.255.0.3/32 | |
| UP | Loopback0 | 10.255.0.9/32 | |
| UP | Loopback1 | 198.51.100.1/24 | |
| UP | Gi0/0 | 172.16.1.2/30 | R1 Gi0/1 |
| UP | Gi0/1 | 172.16.2.2/30 | SRX1 ge-0/0/1 |
| EOS1 | Ethernet1 | 172.16.3.2/30 | R2 Gi0/2 |
| EOS1 | Loopback0 | 10.255.0.10/32 | |
| EOS1 | Loopback1 | 203.0.113.1/25 | |
| CHR1 | ether1 | 172.16.4.2/30 | R2 Gi0/3 |
| CHR1 | lan1 | 192.0.2.1/25 | |
| CHR1 | lan2 | 192.0.2.129/25 |
What you’ll practise
- Work from a traffic symptom to the rung of the decision process that caused it
- Find an unreachable next hop on an iBGP route
- Find a Junos policy term that never accepts
- Find a leftover local preference that moved all traffic
- Find a community that was never sent
- Find an AS-path regular expression that matches nothing
- Find a RouterOS chain that rejects by default
The tasks
- Method
- Ticket 1, the wrong exit
- Ticket 2, unusable next hop
- Ticket 3, the community that never arrived
- Ticket 4, the expression that matches nothing
- Ticket 5, end of the chain
- Ticket 6, the term that doesn't accept
- Prove every rule
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
- R1
Gi0/0to R2Gi0/0 - R2
Gi0/1to SRX1ge-0/0/0 - R1
Gi0/1to UPGi0/0 - SRX1
ge-0/0/1to UPGi0/1 - R2
Gi0/2to EOS1Ethernet1 - R2
Gi0/3to CHR1ether1
| Node | Device | Image in Add Node | Set to |
|---|---|---|---|
| R1 | Cisco IOSv | vios-adventerprisek9-m.spa.159-3.m9 | 1 vCPU, 512 MB |
| R2 | 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 |
| UP | Cisco IOSv | vios-adventerprisek9-m.spa.159-3.m9 | 1 vCPU, 512 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 |
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
13 - Troubleshooting path selection and policyand 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
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.