Automated Validation of BGP Labs
In late 2023, I started playing with the idea of having automated validation in netlab. The early implementation was used in BGP labs, and a user liked it so much that he opened an issue saying:
I would suggest providing netlab validate for each lab.
Numerous rounds of yak-shaving later, I merged a humongous commit that adds automated validation to these lab exercises:
- Redistribute IGP Information Into BGP
- Select Preferred EBGP Peer with Weights
- Filter Transit Routes
- Filter Advertised Prefixes
- Minimize the Size of Your BGP Table
- Select Preferred Uplink with BGP Local Preference
- Use MED to Influence Incoming Traffic Flow
- Use AS-Path Prepending to Influence Incoming Traffic Flow
- Attach BGP Communities to Outgoing BGP Updates
- Use BGP Communities in Routing Policies
- BGP Route Server in an Internet Exchange Point
- Dynamic BGP Peers
The automated validation can be used on Arista EOS, Cumulus Linux, and FRR1 and requires validation plugins included in netlab release 1.8.3.
Some other lab exercises already supported automated validation:
- Configure a Single EBGP Session
- Configure Multiple EBGP Sessions
- Advertise IPv4 Prefixes to BGP Neighbors
- Configure BGP for IPv6
- Advertise Default Route in BGP
- EBGP Sessions over IPv6 LLA Interfaces
- Reuse a BGP AS Number Across Multiple Sites
- Fix AS-Path in Environments Reusing BGP AS Numbers
- Use Multiple AS Numbers on the Same Router
- BGP Session Templates
-
Want to run validation on other platforms? Please implement the BGP and OSPF validation plugins (they have to pass all the validation plugin integration tests) and submit a PR. Being a realist, I’m not holding my breath ;) ↩︎