Changes in Release 26.05
New Functionality
Junos OSPF/IS-IS route redistribution, VRF IS-IS instances, and OSPF interface parameters
Streamline and speed up the FortiOS initial device configuration by @a-v-popov
Support for global BGP routes with SRv6 next hops (inspired by proof-of-concept by @jvbemmel) on FRR and IOS XR
Support for Juniper cSRX container by @leec-666
We changed the minimum supported Python version to 3.10. New netlab versions will thus no longer run on Ubuntu 20.04.
You can define scripts (for example, device license management) that are executed at various points in the
netlab upandnetlab downprocesses.
Minor improvements
The netlab restart command has been rewritten and now identifies lab topology from the snapshot file
Identify devices that cannot have their configurations collected/reloaded and generate warnings or errors during netlab collect, netlab up –reload, or netlab config –reload.
Device configuration reloads now have a dedicated normalization phase, making
netlab up --reload,netlab config --reload, and related workflows more consistent across supported platforms.graph.linkorderandgraph.rankare easier to use in topology graph definitions.The multilab plugin now serializes concurrent up and down operations with a mutex lock.
netlab down now prints the core provider commands it is about to execute.
Minimum supported containerlab release is now 0.75.0.
New Device Features
FortiOS:
Generate API token during initial device configuration
Optional “allow any” policy in initial configuration
Streamline and speed up the initial device configuration (which could be a breaking change if you use an old FortiOS version without a license).
Cisco IOS XR:
SRv6 next hops for global BGP prefixes
FRRouting:
SRv6 next hops for global BGP prefixes
Upgraded to release 10.6.1
Skip control-plane initial configuration during config reloads
Junos:
Route redistribution into OSPFv2/OSPFv3 and IS-IS
IS-IS VRF instances
OSPFv2/OSPFv3 interface parameters (timers, router priority, passwords)
Nokia SR Linux:
Upgraded default container release to 26.3.2
Fixes in Configuration Templates
Arista EOS:
Check OSPF address family when configuring passive interfaces
Cisco ASAv:
Clean up the collected configuration
Generate partial initial configuration for configuration reloads
Cisco IOS XE:
Rewrite SRv6 templates to use per-neighbor data structures
Cisco IOS XR:
Use
replace=configwhen reloading device configuration
Extreme Networks EXOS:
Normalize interface configuration
FortiOS:
Use a 1-based OSPF network index
Junos:
User-defined policies use
acceptinstead ofnext-policyBGP routing policies no longer need an internal community
Nokia SR OS:
Use the common filename suffix when saving configurations
Breaking changes
We made major changes to the fortinet initial device configuration playbook:
The playbook generates an API token for the netlab user (which should have been added during the Vagrant box creation process). Set
netlab_generate_api_tokennode/group variable toFalseto disable this step.The configuration deployment process uses HTTPS instead of HTTP (which just redirects to HTTPS in most cases). This might not work if you’re using a Fortinet device without a license. Set the following node/group variables to use HTTP:
ansible_httpapi_use_ssl: false
ansible_httpapi_port: 80
The playbook tries to reach the FortiOS HTTPS server immediately after switching to multi-VDOM mode and will retry several times. When needed, use these node/group variables to increase the wait time.
Other breaking changes:
netlab no longer supports Python 3.8/3.9 or Ubuntu 20.04. We also stopped building the legacy
netsim-toolsstub package that hadnetworklabas its only requirement.The SRv6 allocate_loopback parameter is no longer supported and does nothing. Change the loopback address pool if you want to allocate the loopback prefixes from within the SRv6 prefix[1].
The ‘reload device configuration’ functionality relied on initial.reload: False feature flag to detect devices that do not support it. We added an explicit initial.reload feature to all devices, and changed the default behavior to “device does not support configuration reloads”. This might prevent configuration reloads from working on custom devices until their feature definitions are updated.
Bug Fixes
Use Arista cEOS containers in MPLS integration tests
Check the supported BGP neighbor type before enabling EVPN AF (#3329)
EVPN control-plane-only nodes can use per-transport settings.
Correct lab topology names in graph creation scripts
Fix the mismatch between a plugin configuration name and its internal name (#3334)
Split configuration normalization from initial config deployment (#3332)
Set the
normalizeargument when callinginitialfromconfigConsistent device features.initial.{collect,reload} flags (#3352)
Do a device readiness check before reloading configuration (#3347)
Use the common normalization step in
netlab config --reload(#3349)Initial configuration is no longer needed when reloading IOS configurations
Pass netlab collect verbosity level to the Ansible playbook
Remove sets from topology subsets rendered into JSON (#3356)
Make CI/CD tests work with ruamel
Check for VLAN/VRF-enabled nodes attached to VLAN/VRF links (#3373)
Warn about links having irrelevant module attributes (#3374)
Limit SRv6 services to IBGP (#3377)
Use
shlex.splitandshlex.joininrun_command(#3376)Don’t crash when a configuration file cannot be created
Build per-neighbor SRv6 data structures (#3383)
Disable SRv6 support on Nokia SR OS
Parametrize transformation tests and anchor the pytest environment (#3391)
Change vSRX QEMU machine type (#3399)
Junos configuration cannot start with ‘delete:’ (#3400)
Documentation Fixes
Document the features.initial.normalize device flag
Document the
nodefaultnetlab inspect expressionCleanup SRv6 documentation