netlab 2.0.0: Hosts, Bridges, and SRv6
netlab release 2.0.0 is out. I spent the whole week fixing bugs and running integration tests, so I’m too brain-dead to go into the details. These are the major features we added (more about them in a few days; the details are in the release notes):
- Well-defined node roles (host, router, bridge) are now available on multiple platforms
- The firewall.zonebased plugin allows you to configure a rudimentary firewall
- SRv6: BGP L3VPN support is now available for FRRouting, so you can go out and kick its (free) tires.
- bridge nodes can be used as simple bridges or to implement multi-access links
- netlab defaults command provides sysctl-like CLI interface to user/system defaults.
Other changes include:
- netlab is gathering usage statistics into a local file that is not shared with anyone, but can be inspected or managed with netlab usage
- We use the routing module to configure static routes on host devices. VRF-aware devices can use a default route; other devices get more specific routes for address pools and named prefixes.
- Multiple EVPN import/export route targets allow you to build complex EVPN-based services like common services or hub-and-spoke connectivity
- I wanted to have better graphs, so I implemented node/link styles for D2 graphs
- Finally, we implemented ‘delete communities matching a list’ in routing policies
On the other hand, there’s time for a few retirements:
- It’s time to allow Cumulus Linux 4.x to rest. While there are no plans to remove it from netlab, we will not add new features or run integration tests.
- VirtualBox and direct Windows/macOS installations are obsolete.
But wait, there’s more:
- Names of defaults.const.validate constants can be used as wait times in the validation wait parameter
- You can use all and device types in the node selection expressions used in netlab inspect, netlab report and netlab exec commands
- We use a different Ansible task list when reloading device configuration, which gives you the ability to reload device configuration on SR Linux
- If you insist (but you shouldn’t), you can use int values as offset of management IP addresses in the management subnet.
- You can combine default tcpdump flags with user filter in the netlab capture command
- We moved to Vagrant version to 2.4.3-1
- netlab checks reserved ranges (local network, multicast) during IPv4/IPv6 address/prefix validation. It also warns about EBGP ‘bgp’ attributes used on intra-AS links/vlans
Not enough? How about new device features? Here are just a few of them:
- Unnumbered interfaces on Aruba CX
- You can configure a half-dozen new BGP features on Bird, and use it in LAG and VLAN environments
- We started supporting numerous BGP features and routing policies on Dell OS10 and Junos
- There’s also MAC-VRF implementation for Junos
- Finally, there’s SRv6 with IS-IS and L3VPN services over SRv6 on FRRouting
Upgrading or Starting from Scratch?
- 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.