Changes in Release 26.11

New Functionality

  • New devices: IP Infusion OcNOS (vrnetlab container) and Extreme VOSS

  • The new netlab node command can start, stop, restart, pause, or unpause individual containerlab nodes without touching the rest of the lab. netlab status lists stopped nodes as Exited.

  • netlab validate can print the validation results as a JSON document

  • The netlab config command uses the device configuration mode (for example, netmiko) instead of always running an Ansible playbook

  • Netmiko is the default configuration deployment method for Cisco IOS XR and Cisco Nexus OS

  • netlab collect uses netmiko to collect configurations from Arista EOS, Cisco IOS, Cisco IOS XR, and Cisco Nexus OS devices, and runs an Ansible playbook only when needed

  • The device readiness checks use netmiko to check the SSH server and netlab connect (instead of Ansible task lists) to check interface readiness

  • New external tool: network-xray

Minor improvements

  • netlab waits for vrnetlab containers to become healthy by default

  • The netlab install containerlab script defines the Docker repository in the deb822 format and limits the Docker repository key to that repository

  • Commands executed on lab devices (for example, readiness checks) can have a timeout

  • The netmiko parameters are defined as device features, and the netmiko configuration error patterns capture the whole error message

New Device Features

Cisco ASAv:

  • Loopback interface

  • Static routes

  • IBGP

  • OSPFv3

  • BGP and OSPF route import (redistribution)

IP Infusion OcNOS:

  • OSPFv2, OSPFv3, IS-IS, and BGP

  • BFD, static routes, VLANs, VRFs, and STP

  • OSPF and IS-IS BFD configured on individual interfaces

  • VRF OSPF instances support the same features as the global OSPF process

  • MTU on VLAN interfaces

Extreme VOSS:

  • Initial configuration, VLANs, and static routes

ArubaOS-CX and Extreme EXOS:

  • Transparent management IP address in containerlab (vrnetlab) containers

Fixes in Configuration Templates

Cisco Nexus OS:

  • vrnetlab Nexus OS containers boot as a layer-2 switch. netlab shuts down all interfaces before configuring them, and enables an interface only after it is fully configured.

  • The netmiko error pattern recognizes configuration error messages without the leading % sign

Cisco IOS XR:

  • netlab waits before starting the netmiko configuration process to avoid “another config session is active” errors

Breaking Changes

  • The minimum supported containerlab version is 0.80.0

  • Older vrnetlab containers might fail to become healthy when running with the containerlab version 0.80.0. If you experience this, rebuild those containers using the latest vrnetlab code.

  • netlab uses netmiko to configure Cisco IOS XR and Cisco Nexus OS devices. If you used netlab install ansible to install Ansible, you already have netmiko installed. Otherwise, install it with netlab install netmiko, or set the netlab_config_mode device group variable (or node parameter) to an empty value to keep using Ansible playbooks.

  • The netmiko_* device group variables were replaced with netmiko.* device features. Move any customized netmiko_* group variables (for example, netmiko_device_type) into the device features.

  • netlab waits for vrnetlab containers to become healthy. Set the defaults.providers.clab.healthy_timeout parameter to zero to disable that check.

Bug Fixes

  • Captured command output is thread-safe, so parallel readiness checks do not see each other’s output (#3990)

  • Updated the netlab collect section headers to match other multi-step commands (#3981)

  • netlab collect collects configurations only from nodes that support configuration collection (#3980), including OcNOS

  • Consistent handling of the –limit/node CLI parameter (#3979)

  • Created a package from the netlab collect CLI module (#3978)

  • Validation tests executed with docker exec see both stdout and stderr (#3977)

  • FRR bgp_prefix validation works with best=False (#3968)

  • Corrected the error message reported when a device does not support VRFs (#3967)

  • Use correct names for MPLS kernel modules (#3963)

Documentation Fixes