Changes in Release 25.07

New Functionality

  • The ospf.areas plugin supports OSPFv2 and OSPFv3 stub areas, NSSA areas, and area ranges.

  • The BGP routing policies plugin supports aggregate BGP routes

  • The BGP configuration module supports BGP confederations

  • The evpn.multihoming plugin implements EVPN Ethernet Segment Identifiers and EVPN-based MLAG/multihoming

  • Updated installation process: The user-interfacing part of the installation scripts has been moved to the Python code, resulting in a more consistent user interface. The netlab install command also checks the Linux distribution you’re using and refuses to start Debian/Ubuntu installation scripts on non-Debian-ish distributions.

  • Baseline OpenBSD support (box-building procedure and initial configuration)

  • Network Unit Testing System (NUTS) external tool integration (#2433)

Minor improvements

  • Display device support level and major testing caveats in netlab show devices printout

  • Display major per-image caveats in netlab show images printout

  • Add --provider argument to netlab show images

  • Add ‘pool’ attribute to VRF loopbacks, giving you finer control over the allocation of VRF loopback addresses.

  • Add nodes to device-specific netlab groups, allowing you to specify device-based node attributes.

  • Check whether external tools were successfully started (mostly used to detect containers that have no ARM support)

  • Add ‘remove box’ functionality to netlab libvirt command

  • Sort netlab install scripts in dependency order (#2469)

  • New report: names of selected nodes (to be used in bash scripts) (#2420)

New Device Features

Arista EOS:

  • Support for OSPF areas, BGP aggregate routes, and BGP confederations

  • EVPN-based multihoming

Aruba CX:

  • Support for OSPF areas

Cisco IOS:

  • Support for OSPF areas, BGP aggregate routes, and BGP confederations

  • STP and (simple) LAG on IOSvL2 and IOLL2

  • Tunnel interfaces on IOSv/IOSvL2 can be unnumbered

Cumulus NVUE:

  • Support for OSPF areas

  • OSPF default route

  • Static routes

Dell OS10:

  • Support for OSPF areas, BGP aggregate routes, and BGP confederations

  • Use VLAN interfaces for traditional VLANs and virtual networks for VXLAN-backed VLANs

  • Route redistribution (import) into OSPF and BGP

  • Multihop EBGP sessions

Fortinet:

  • Support vrnetlab containers

  • Enable multi-vdom mode (the data-plane VDOM is specified in the netlab_vdom variable)

  • Zone-based firewall configuration

FRR:

  • Support for OSPF areas, BGP aggregate routes, and BGP confederations

Junos:

  • Support for OSPF areas

  • EVPN-based multihoming

SR Linux:

  • Support for OSPF areas

  • VRF multihop EBGP sessions

VyOS:

  • Link aggregation (LAG) support

Fixes in Configuration Templates

Arista EOS:

  • Add configuration parameters needed to reload the device configuration on cEOS containers (#2408)

Aruba CX:

  • Replace “clear soft out” with “BGP session reset” (#2526)

Cisco IOS:

  • Update default IOSv username/password for the vrnetlab clab image (#2378)

  • Configure EIGRP on unnumbered interfaces (#2458)

  • The IS-IS network type cannot be configured on unnumbered tunnel interfaces

  • Configure IETF 3-way IS-IS handshake on p2p links and tunnels (#2463)

  • Enable IOSvL2 under the containerlab provider

Cumulus NVUE:

  • MLAG VTEP nexthop fixes (#2434)

Dell OS10:

  • Correct BGP default locpref feature flag (#2359)

SR Linux:

  • Use a different process ID for VRF instances of OSPFv3 (#2379)

  • Bump SR Linux release to 25.3.3

SR OS:

  • Set default EVPN encapsulation to VXLAN

  • Restructure the OSPF configuration template and simplify the IS-IS configuration template

Integration Tests

We started collecting the netlab create warnings in the integration tests to show the reduced functionality of some implementations (for example, the bird daemon does not support VRFs).

Other changes:

  • Add dual-stack VRF to IPv6 VRF integration tests

Bug Fixes

  • Device-specific wait time takes precedence in validation tests

  • Add “meta device” flag to parent-only and test devices

  • Cisco IOSvL2 cannot be a route server

  • Add ‘flatten’ option to data.append_to_list to handle list-to-list adds

  • Fix: calculate BGP default values from valid values of BGP attributes (#2462)

  • IOS: Allow “no switchport” on LAG interfaces on L2 images (#2504)

  • Fix: Use a workaround to do a real clone of the topology data

  • MLAG VTEP plugin enhancements (#2406)

  • Fix: Allow the box creation process to skip the VM start

  • Cumulus NVUE: Add quirk to check for the mlag.vtep plugin when VXLAN is used in combination with MLAG (#2432)

  • Activate VRF IGP interfaces only when there are viable neighbors (#2524)

  • LAG: Refuse to work with bridge devices, things like IP allocation don’t behave as expected (#2531)

  • Fix: Cisco IOS/XE takes forever to redistribute into IPv6 BGP AF

  • Fix: More robust suzieq tool definition (#2501)

  • Fix: Handle the messed-up status of packages on Ubuntu derivatives (#2507)

  • Fix: Mark phantom links used to create multihop EBGP sessions (#2502)

  • Fix: add ‘partial_success’ logging function

  • Cleanup: use consistent quotes in graphite tool commands

  • Fix: no underscores in topology.name generated from input directory (#2497)

  • Fix: ensure bgp.neighbors is defined for BGP-enabled routing instances (#2492)

  • Fix: Gracefully handle apt-get locking errors (#2473)

  • More nuanced ‘ipv4.unnumbered’ feature test checks interface type (#2459)

  • Add end-to-end path check to OSPF ‘network type’ integration tests

  • Create a vagrant pin file in apt preferences to stop potential upgrades (#2437)

  • CL NVUE: ignore ospf.passive flag when merging loopbacks (#2411)

  • Implement generic ‘optional device features’ check (#2400)

  • Loopback prefixes can be different from /32 or /128

  • Remove incorrect Jinja2 markup from the addressing report

  • Cleanup plugin settings after a change in topology initialization (#2375)

  • Load plugins before initializing device data

  • Fix data transformation for simple subtypes of list/dict structures

  • Configure BGP after IGP protocols (#2353)

  • Fix: Be more careful when fetching VRF routing protocol data

  • Fix: Override validation test ‘level’ with device-specific value

  • FRR: Don’t complain about STP when it’s disabled (#2413)

Documentation Fixes

  • Document the need to have the ‘default’ libvirt storage pool (#2515)

  • Update EIGRP documentation (#2447)

  • Document the interactions between IGPs and VXLAN-backed VLANs

  • Document undesired interactions between EVPN and VRF routing protocols (#2519)

  • Adjust data transformation documentation (#2532)

  • Document the dependencies between netlab and vrnetlab usernames/pwds (#2386)

  • Explain the support status of individual platforms (#2392)

  • Update the list of data types (#2421)

  • Update the list of contributors

  • Clarify STP stub_port_type setting (#2484)

  • Some external tools cannot establish SSH sessions to IOL nodes

Developer Documentation

  • Explain shared OSPF configuration macros

  • Updated “initial configuration” developer documentation

  • ospf.areas implementation notes