netlab 1.6.4: Support for Multi-Lab Projects; More BGP Goodies
Features in netlab release 1.6.4 were driven primarily by the needs of my BGP labs project:
- bgp.session plugin (formerly known as ebgp.utils plugin) got support for BFD, passive BGP peers and remove-private-as option.
- bgp.policy plugin implements basic BGP routing policy tools, including per-neighbor weights, local preference and MED.
- You can enable external tools in user defaults and use default groups to create user- or project-wide groups in the defaults files.
- Version-specific lab topology files allow netlab to select a lab topology that is a best fit for the netlab release you’re running.
Numerous platforms already support the new BGP nerd knobs:
- Arista EOS, Cisco IOSv, Cisco IOS/XE, Cumulus Linux and FRR support all new BGP session nerd knobs and BGP policy features.
- Stefano Sasso contributed bgp.session, bgp.policy and ebgp.multihop support for Aruba AOS-CX
- Jeroem van Bemmel contributed ebgp.multihop support for SR Linux and SR OS
- You can use BFD for OSPFv2, OSPFv3 and BGP on FRR
I also made several changes to make plugins easier to use (more about that in a separate blog post):
- Plugins can use global module variables as metadata to tell netlab what they want/expect/offer.
_requires
metadata handles mandatory plugin dependencies_config_name
plugin metadata can be used instead of an API call to get the name of plugin template directory- Plugins are sorted based on their dependencies documented in
_execute_after
metadata
Finally, a hodgepodge of other features:
- bgp.session plugin can apply BGP session attributes to IBGP and EBGP sessions.
- netlab show attributes command displays valid lab topology attributes and their expected data types. Failed validation checks tell you about that command to make your troubleshooting a bit easier.
- netlab show defaults command displays user/system defaults without starting a lab.
- For people who don’t believe in prefix consistency we added configurable IPv6 prefix length to address pools
Upgrading
To get more details and learn about additional features included in release 1.6.4, read the release notes. To upgrade, execute pip3 install --upgrade networklab
.
New to netlab? Start with the Getting Started document and the installation guide.
Need help? Open a discussion or an issue in netlab GitHub repository. There’s also a netlab channel in networktocode Slack team, but you will get faster response time reporting your challenges in GitHub.