Changes in Release 26.09
New Functionality
The services module supports syslog clients and servers.
Syslog clients are implemented on Arista EOS, ArubaCX, Cisco IOS, Cisco IOS XR, Cisco Nexus OS, Junos, Mikrotik RouterOS7, Nokia SR Linux, Nokia SR OS, OpenBSD, and VyOS. Syslog server is implemented on dnsmasq.
DNS clients are now also available on ArubaCX, Cisco IOS XR, Cisco Nexus OS, Junos, Mikrotik RouterOS7, Nokia SR Linux, OpenBSD, and VyOS nodes.
LAG on Mikrotik RouterOS7
Cisco IOS XRd vRouter containers are fully supported (details).
The new netmiko device configuration mode configures virtual machines (Arista vEOS, Cisco IOS-based devices, FRRouting VMs) with the netmiko library over SSH instead of with Ansible modules.
ACL rules and prefix lists accept generic prefix sets: IPv4/IPv6 addresses and prefixes, named prefixes, VLAN prefixes, address pools, link prefixes, or sets of prefixes from links with a specified role.
Minor improvements
netlab status displays memory usage per node and per lab.
Debugging can be enabled with the
NETLAB_DEBUGenvironment variable instead of the--debugCLI argument (details).Linux, FRR, and Cumulus nodes use L4 hashing for ECMP load balancing.
FRR release bumped to 10.7.1; SR Linux release bumped to 26.7.2.
The routing.acl.in/routing.acl.out attributes are link attributes and can be used on links and interfaces, global VLAN definitions, or node VLAN definitions.
New Device Features
Arista EOS:
Syslog client
netmiko-based configuration
ArubaCX:
DNS and Syslog clients
Cisco IOS:
Syslog client
netmiko-based configuration
Cisco IOS XR:
DNS and Syslog client
Cisco Nexus OS:
DNS and Syslog client
dnsmasq:
Syslog server
FRR:
netmiko-based configuration of virtual machines
Release bumped to 10.7.1
Junos:
DNS and Syslog client
Mikrotik RouterOS7:
DNS and Syslog clients
Link aggregation (LAG)
Nokia SR Linux:
DNS client and static host mappings
Syslog client
Container image bumped to release 26.7.2
Nokia SR OS:
Syslog client
OpenBSD:
DNS and Syslog clients
VyOS:
DNS and Syslog clients
WireGuard tunnels
BGP confederations
Fixes in Configuration Templates
IS-IS configuration templates use the isis.metric attribute; isis.cost is normalized into it.
Arista EOS:
OSPF and IS-IS SR-MPLS label ranges can overlap
Cisco IOS:
EVPN transport triggers a warning
RIPng parser is no longer confused by BGP output
Uses the
dns viewcommand with dns.transport_vrfIOSvL2 does not use DNS views
Cisco IOS XR:
OSPFv2/v3 adjacency logging
XRd vRouter SSH retry timers adjusted
Cisco Nexus OS:
OSPFv2/v3 adjacency logging
CDP is disabled globally with the
no cdp enablecommand
Linux:
The
node_configinitial-configuration script works with the services moduleDNS client configuration works on KinD-based and file-based container links (the
/etc/resolv.conffile is mapped into containers by device quirks only when custom DNS servers are configured).
Breaking changes
We’re sunsetting the libvirt provider. It will remain part of netlab, and we’ll fix eventual bugs, but it won’t get new features, and we won’t run device integration tests with it. Moving forward, we’re focusing exclusively on the containerlab (clab) provider.
Cisco IOSv has been deprecated: its support level is now ‘minimal’, and its ancient SSH implementation is described in the caveats. If you rely on IOSv, consider migrating to another Cisco IOS-based platform.
Bug Fixes
netlab detects containerlab-reserved node names.
MLAG peer-links are rejected on ESI-LAG-only devices.
netlab test handles user interrupts (Ctrl-C) without crashing.
Plugin hooks can be defined at a late transformation stage.
log.error()andlog.warning()accept adoc_urlparameter that links the error or warning message to relevant documentation.Validation test specs support parent devices, template devices, and custom data types in
_keytypevalidation.The check.config plugin considers files created by configlets.
netlab install boxes uses the official procedure to create the HashiCorp repository.
bgp.remove_private_asis always processed as a dictionarynetlab createhonors the.cfgconfig file suffix request and validates the topology download timeout and scheme (#3856, #3767)Thread lock around containerlab config printouts (#3777)
Multiserver VXLAN links generate valid containerlab configuration (#3830)
libvirt checks access to the system QEMU socket (#3877)
libvirt uses
kvm-okfrom the PATH or/usr/sbin(#3860)Building custom Vagrant boxes always forces the use of the libvirt Vagrant provider (#3832)
The
Cisco IOS XRd vRouterconfiguration no longer contains bogus nestedgroup_varsNetmiko sessions switch to ‘enable’ mode after session establishment
_node_configis considered when generating the configuration script shebang (#3824)The package name is displayed with the error raised from
__init__(#3823)Network services feature check is performed only when needed (#3814)
Podman node memory and status information is correct (#3804)
Documentation Fixes
Generate OSPF, BGP, BGP sessions, IS-IS, generic routing, DNS, and provider-specific platform support tables from device settings
Used the device settings for the collect/deploy config, node roles, and alternate device configuration method tables
Updated the “Feature tables” and plugin hooks developer documentation
Updated the testing documentation based on the actual GitHub Actions workflows
Documented the
bgp.sessionplugin data structures for template developersDocumented the no-VLAN-on-bonded-links caveat
Documented the multiserver VXLAN MTU caveat
Documented that hosts do not inherit topology modules and its impact on DNS clients
Updated the VyOS caveats and Vagrant box building procedure
Documented the Cisco IOS XRd vRouter container deployment
Fixed a typo in EIGRP documentation
Documented VyOS multi-topology IS-IS support