Changes in Release 26.07
New Functionality
The multiserver plugin distributes containerlab devices across multiple servers.
The GRE tunnel plugin supports GRE tunnels on Cisco IOS, FRR, VyOS, and Junos (vSRX and vJunos-router).
The WireGuard tunnel plugin supports WireGuard tunnels on FRR.
The bgp.session plugin and the OSPF module support graceful restart on Arista EOS, BIRD, FortiOS, and FRR
The bgp.policy plugin supports the bgp.role attribute on FRR and BIRD.
Minor changes and improvements
The netlab status command displays IPv6 management addresses.
Validation plugins can check BFD state in BGP neighbor details, use platform-independent parameters, and mark expected failures.
Configuration templates can use directories in the
package:extratemplate search path.Filter static route node next hops by link name
New Device Features
Arista EOS:
BGP graceful restart
BIRD:
BGP confederations
VXLAN data plane and EVPN MAC VRFs
Anycast gateways
Indirect static routes
VRFs, including BGP, OSPF, static routing, and route leaking
OSPF default route origination, graceful restart, and BFD
Unify BIRD Dockerfile variants. The BIRD container version you want to build is now selected with the netlab clab build
--versionparameter
FortiOS:
BGP
OSPF route import, default route origination, and graceful restart
FRR:
BGP and OSPF graceful restart
GRE and WireGuard tunnels
Junos:
GRE tunnels on vSRX and vJunos-router
Mikrotik RouterOS7:
New BGP configuration templates work with recent software releases (tested with release 7.21.4)
BFD for OSPF
BGP per-address-family activation
VXLAN, including IPv6 VTEPs
OpenBSD:
VLANs
Nokia SR Linux:
Inter-VRF route leaking
Nokia SR OS/SR SIM:
Use correct interface names in BFD configuration templates
VyOS:
GRE tunnels
Fixes in Configuration Templates
Aruba CX:
Configure VRF BGP session parameters
BIRD:
Configure IBGP sessions with the BGP source interface
Correct VRF static route configuration
Use Debian Trixie as the base image for BIRD containers
Install procps in BIRD containers
Start the BIRD daemon after the data-plane configuration creates the required interfaces
Cisco IOL L2:
BFD does not work with OSPFv3
Dell OS10:
Reject topologies with tagged VLAN 1
Extreme EXOS:
Reject topologies with tagged VLAN 1
FRR:
Write device logs to
/var/log/frrand include a configurable frr.logfile attributeMirror file logging to container
stdoutwhen doing debuggingUnify Linux interface sysctl settings across uplinks, VLAN, and tunnel interfaces
Mikrotik RouterOS7:
Block untagged frames on trunks without a native VLAN
Support native routed VLANs and prevent invalid tagged VLAN 1 configuration
Nokia SR Linux:
Reject topologies that use more than one MPLS/VPN route target
OpenBSD:
Use node/group variables for OpenBSD username/password
VyOS:
Configure EVPN L3VNI and BFD profiles correctly
Breaking changes
The VirtualBox provider has been removed.
BIRD v3 is now the default BIRD version. Specify an older version explicitly if needed.
Mikrotik RouterOS BGP templates use the current BGP configuration syntax. Use a recent RouterOS release; 7.21.4 was used in our tests.
Bug Fixes
FortiOS configuration collection works with current FortiOS releases returning HTTP 405, and configuration deployment falls back to the CLI only after rejected API commands (#3465, #3466)
netlab initialno longer fails when a device log file is absent (#3471)The anycast validation plugin handles devices without a
gateway.protocolattribute (#3474)vMX SSH readiness uses an appropriate timeout (#3483, #3486)
netlab statusgenerates correct IPv6 tool URLs (#3550)Ping validation uses the complete packet length, and BGP neighbor validation correctly handles address-family activation (#3579, #3580, #3591)
Fix: Ensure the VRF BGP data always has ‘neighbors’ list (#3614)
Fix missing ‘f’ for Python f-strings (#3598)
Generic ‘include module/plugin config into initial config’ framework (#3593)
Add BFD checks to bgp_neighbor_details validation plugin (#3534)
Fix bgp_neighbor validation plugin implementations (#3580)
Add ‘_expect_fail’ parameter to validation tests (#3578)
Convert built-in plugins to module names (#3575)
Standardize tested device names in integration tests (#3536)
‘Get node interface’ utility functions
Use correct literal IPv6 addrs in tool URLs (#3550)
When needed, add static default routes when originating BGP default routes (#3527)
Speed up static routing tests with small OSPF timers
_remove_when_false: remove dicts with False values (#3517)
Support per-module dataplane script and control-plane config for daemons (#3512)
Check returned STDERR and STDOUT in validation tests (#3502)
Refactor clab provider into multiple files (#3473)
Do not try to extract warnings without a log file (#3471)
Simplify main ‘lab_commands’ function (#3464)
Check device support for bgp.remove_private_as values (#3463)
Documentation Fixes
Documented how to increase netlab initial wait times (#3619)
Updated the BFD-for-BGP support table (#3620)
Improved command descriptions in the README (#3493)
Reorganized plugin manual-page documentation and clarified multiserver plugin tables
Split and cleaned up data-type validation documentation (#3516)