Changes in Release 1.4¶
New Functionality in Release 1.4.3¶
IOS XRv support (initial configuration, IPv4+IPv6, OSPFv2/v3, IS-IS, BGP)
MPLS, LDP and L3VPN support on FRR
Rewrite Linux container deployment to remove Python and
ip
dependencies
New Functionality in Release 1.4.2¶
Stefano Sasso added numerous Juniper-related improvements:
Juniper vMX support
Junos BFD, VRF, MPLS, SR-MPLS, and MPLS/VPN support
Full VLAN support on vMX and routed VLAN interfaces on vSRX
Other few features include:
CSR 1000v VLAN and VXLAN support
VyOS containerlab support by Oleg A. Arkhangelsky
New Functionality in Release 1.4.1¶
Cisco ASAv support: IPv4, IPv6, IS-IS and BGP support, libvirt box building instructions
VRRP and anycast gateway on Dell OS10
Add support for all EVPN bundle services
FRR: default version is 8.4.0
Install ansible-pylibssh in Ansible installation script
New Functionality in Release 1.4.0¶
EVPN asymmetric IRB on Arista EOS, Cumulus Linux, Dell OS10, Nokia SR Linux, Nokia SR OS and VyOS
Anycast gateway on Arista EOS, Cumulus Linux, Nokia SR OS and Nokia SR Linux
VRRP on Arista EOS, Cisco IOSv/CSR, Cisco Nexus OS, Cumulus Linux and Nokia SR OS
EVPN MPLS transport on Arista EOS and Nokia SR Linux
MPLS/LDP support on Nokia SR OS
New address allocation algorithm for links with small IPv4 prefixes
Control allocation of VNI identifiers with vxlan.vlans attribute
Specify EVPN-enabled VLANs and VRFs with evpn.vlans and evpn.vrfs lists
VLAN interfaces are created for all VLANs listed in node vlans dictionary even when there’s no physical interface using a particular VLAN.
VLANs and VRFs mentioned in group vlans/vrfs dictionaries are copied into all group members, resulting in VLAN interfaces and VRFs on all group members.
node_data is deprecated – you can specify node attributes directly in group data.
unmanaged devices participate in data transformation process but are not part of virtual lab topology.
Devices in unprovisioned group are not configured during the netlab initial process.
Routing protocols could be disabled for the whole VRF
Strict validation of topology, node, group, VLAN, VRF, and addressing attributes (see also Breaking changes)
Implement ‘device quirks’ framework to deal with implementation limitations of individual virtual network devices
EVPN proxy-ARP plugin
Breaking changes¶
Release 1.4.0 introduced behind-the-scenes functionality that might break existing topologies:
vni attribute is assigned to VLANs only if the topology uses VXLAN module. In release 1.3, the vni attribute was assigned by the VLAN module.
vlan.auto_vni attribute is no longer used. Specify VXLAN-enabled VLANs with vxlan.vlans if you don’t want to assign vni values to all VLANs.
EVPN module using VXLAN transport still takes control of all VLANs with vni attribute and VRFs with evpn attribute, but it’s not recommended to rely on that behavior. Specify EVPN-enabled VLANs and VRFs with evpn.vlans and evpn.vrfs lists.
Flexible address allocation algorithm might change IP addresses on links with small IPv4 prefixes.
Node, VLAN, and VRF attributes are checked – topologies that used extra node attributes not related to configuration modules would no longer work. Use extra_attribute.nodes to define your own node attributes
Provider-specific node attributes have been moved into provider-specific namespace. For example, runtime attribute became clab.runtime.
Interface (node-to-link attachment) attributes are checked – topologies using extra interface attributes not related to configuration modules would no longer work. Use extra_attribute.interfaces to define your own interface attributes.
Address pool attributes are checked. Topologies that included extra attributes in address pools (even though they were useless) would break.
ip attribute within an address pool is no longer valid. Use ipv4.
ip attribute within a prefix dictionary is no longer valid. Use ipv4.
The tests for unique VNI values are stricter and might break topologies that used duplicate VNI values in VLANs or VRFs.
Stricter checking of VLANs on VLAN trunks breaks nonsense topologies that had a non-VLAN node connected to a trunk with no native VLAN, or that had a single node using a particular VLAN on the trunk.
Group data is thoroughly checked, including node attributes. This might break topologies that used invalid node attributes or attributes for non-active modules in node_data.
Group node attribute inheritance sometimes produced incorrect results in releases prior to 1.4, in particular when combined with BGP-based groups. Resolved circular dependency between groups and BGP module might result in slightly different (but correct) group membership and node data.
Bug Fixes in Release 1.4.3¶
Minor vMX SR-MPLS fixes
Don’t create vagrant-libvirt virtual network during libvirt installation
Documentation fixes: VRF and SR-MPLS module supported platforms
Use provider-specific configuration templates and deployment scripts
Support for generic initial device readiness check
Use sysctl instead of echo for Cumulus and FRR
Validate IS-IS node or link type (L1/L2/L1-2)
FRR: don’t lose interface IPv6 address after VRF enslavement
FRR: use “ip ospf passive”
VyOS: remove hard-coded MPLS and LDP on loopback (dummy) interface
Bug Fixes in Release 1.4.2¶
Fix external provider template
Missing ifupdown ‘auto’ flag on Cumulus VLAN interfaces
Updates to accomodate changes in SR Linux release 22.11.1
Generalize docker_shell handling in ‘netlab connect’
IGP BFD status should not be present on interfaces without IGP
Use vagrant-libvirt plugin version 0.11.2
CSR 1000v initial box config needs interface name as DHCP client ID
Increase vSRX CPU quota and command execution timeout
Test multi-access network in “netlab test clab”
Set correct first-hop gateway on VLANs with partial FHRP support
Report errors on VXLAN-enabled nodes with no links
Move to python-box 6.1.0 and force ruamel to emit YAML 1.1 documents
Fix VyOS wrong BGP macro invocation
SR Linux/SR OS: don’t assume VRF module is being used with EVPN
Check for device-specific raw Vagrantfile template
Use new- or old-style Python formatting strings when creating interface names
Bug Fixes in Release 1.4.1¶
Merge group modules with node modules (needed for overlapping groups)
Don’t create VXLAN-enabled VLANs on nodes that don’t need them
Fix VLAN lookup for node-local VLANs defined on a neighbor node
Enforce string type for VLAN names
Bug Fixes in Release 1.4.0¶
Validate module names early in transformation process
Resolve circular dependency between groups and BGP module
Check for transformation errors before initializing modules
Add environment variables to installation scripts to stop LTS 22.04 popups
Polish interface labels in graphs
Deal with partially-overlapping VLAN trunks
Use topology defaults instead of hard-coded lists to drive VLAN interface logic
Copy global EVPN data into nodes before checking VRF IRB support