Supported Platforms

Supported Virtual Network Devices

netlab supports these virtual network devices or their physical equivalents (when using external virtualization provider). If you want to use an unsupported device in a netlab-managed lab, use an unknown device or contribute a new device implementation.

Virtual network device netlab device type
Arista vEOS eos
Aruba AOS-CX ❗ arubacx
Cisco ASAv asav
Cisco CSR 1000v csr
Cisco IOSv iosv
Cisco IOS XRv iosxr ❗
Cisco Nexus 9300v nxos
Cumulus Linux 4.x/5.x cumulus
Cumulus Linux 5.0 (NVUE) cumulus_nvue ❗
Dell OS10 dellos10
Fortinet FortiOS ❗ fortios
FRR 7.5.0 frr
Generic Linux host linux
Juniper vMX vmx
Juniper vPTX (vJunos EVO) ❗ vptx
Juniper vSRX 3.0 vsrx
Mikrotik RouterOS 6 (CHR) routeros
Mikrotik RouterOS 7 (CHR) ❗ routeros7
Nokia SR Linux ❗ srlinux
Nokia SR OS ❗ sros
VyOS 1.4 ❗ vyos

Notes:

To specify the device type of a node in your virtual lab:

  • Specify device property in node data

nodes:
- name: c_ios
  device: iosv
- name: c_csr
  device: csr
  • Use defaults.device setting in lab topology

defaults:
  device: cumulus

nodes: [ s1, s2, s3 ]

See lab topology overview for more details.

Supported Virtualization Providers

netlab create can generate configuration files for these virtualization providers:

You cannot use all supported network devices with all virtualization providers. These are the supported combinations (use netlab show images command to display the current system settings).

Virtual network device Vagrant
Libvirt
Vagrant
Virtualbox
Containerlab
Arista vEOS ✅ ✅ ✅
Aruba AOS-CX ✅ ❌ ❌
Cisco ASAv ✅ ❌ ❌
Cisco IOSv ✅ ✅ ❌
Cisco IOS XRv ✅ ❌ ❌
Cisco CSR 1000v ✅ ✅ ❌
Cisco Nexus 9300v ✅ ✅ ❌
Cumulus Linux ✅ ✅ ✅❗
Cumulus Linux 5.0 (NVUE) ✅ ✅ ✅❗
Dell OS10 ✅ ❌ ✅
Fortinet FortiOS ✅ ❌ ❌
FRR 7.5.0 ❌ ❌ ✅❗
Generic Linux (Ubuntu/Alpine)❗ ✅ ✅ ✅
Juniper vMX ❌ ❌ ✅❗
Juniper vPTX ✅ ❌ ❌
Juniper vSRX 3.0 ✅ ✅ ✅❗
Mikrotik RouterOS 6 ✅ ❌ ❌
Mikrotik RouterOS 7 ✅ ❌ ❌
Nokia SR Linux ❌ ❌ ✅
Nokia SR OS ❌ ❌ ✅
VyOS ✅ ❌ ✅❗

Note:

  • external provider can be used with all devices supported by netlab.

Configuration files for Virtualbox and KVM/libvirt environments specify the number of virtual CPUs and memory allocated to individual network devices. These are the default values; you can change them with node parameters.

Virtual network device netlab device type CPUs memory libvirt NIC model
Arista vEOS eos 2 2048 virtio (libvirt default)
Aruba AOS-CX arubacx 2 4096 virtio (libvirt default)
Cisco ASAv asav 1 2048 virtio (libvirt default)
Cisco IOSv iosv 1 512 e1000
Cisco IOS XRv iosxr 2 8192 e1000
Cisco CSR 1000v csr 2 4096 virtio (libvirt default)
Cisco Nexus 9300v nxos 2 6144 ❗ e1000
Cumulus Linux cumulus 2 1024 virtio (libvirt default)
Cumulus Linux 5.0 (NVUE) cumulus_nvue 2 1024 virtio (libvirt default)
Dell OS10 dellos10 2 2048 e1000
Fortinet FortiOS fortios 1 1024 virtio (libvirt default)
Generic Linux host linux 1 1024 virtio (libvirt default)
Juniper vSRX 3.0 vsrx 2 4096 virtio (libvirt default)
Juniper vPTX vptx 4 8192 virtio (libvirt default)
Mikrotik RouterOS 6 routeros 1 256 virtio (libvirt default)
Mikrotik RouterOS 7 routeros7 2 256 e1000
VyOS vyos 2 1024 virtio (libvirt default)

Configuration Deployments

Ansible playbooks included with netlab can deploy and collect device configuration on these network operating systems:

Operating system Deploy configuration Collect configuration
Arista EOS ✅ ✅
Aruba AOS-CX ✅ ❌
Cisco ASAv ✅ ✅
Cisco IOS / IOS XE ✅ ✅
Cisco IOS XRv ✅ ✅
Cisco Nexus OS ✅ ✅
Cumulus Linux ✅ ✅
Dell OS10 ✅ ✅
Fortinet FortiOS ✅ ✅
FRR container ✅ ❌
Generic Linux ✅ ❌
Juniper vMX ✅ ✅
Juniper vSRX 3.0 ✅ ✅
Juniper vPTX ✅ ✅
Mikrotik RouterOS 6 ✅ ✅
Mikrotik RouterOS 7 ✅ ✅
Nokia SR Linux ✅ ✅
Nokia SR OS ✅ ✅
VyOS ✅ ✅

Initial Device Configurations

The following system-wide features are configured on supported network operating systems as part of initial device configuration:

Operating system Hostname IPv4 hosts LLDP Loopback
IPv4 address
Loopback
IPv6 address
Arista EOS ✅ ✅ ✅ ✅ ✅
Aruba AOS-CX ✅ ❌ ✅ ✅ ✅
Cisco ASAv ✅ ✅ ❌ ❌ ❌
Cisco IOS/IOS XE ✅ ✅ ✅ ✅ ✅
Cisco IOS XRv ✅ ✅ ✅ ✅ ✅
Cisco Nexus OS ✅ ✅ ✅ ✅ ✅
Cumulus Linux ✅ ✅ ✅ ✅ ✅
Cumulus Linux 5.0 (NVUE) ✅ ✅ ✅ ✅ ✅
Dell OS10 ✅ ✅ ✅ ✅ ✅
Fortinet FortiOS ✅ ❌ ✅ ✅ ✅
FRR 7.5.0 ✅ ✅ ❌ ✅ ✅
Generic Linux ✅ ✅ ✅❗ ✅ ✅
Juniper vMX ✅ ❌ ✅ ✅ ✅
Juniper vPTX ✅ ❌ ✅ ✅ ✅
Juniper vSRX 3.0 ✅ ❌ ✅ ✅ ✅
Mikrotik RouterOS 6 ✅ ✅ ✅❗ ✅ ✅
Mikrotik RouterOS 7 ✅ ✅ ✅❗ ✅ ✅
Nokia SR Linux ✅ ✅ ✅ ✅ ✅
Nokia SR OS ✅ ✅ ✅ ✅ ✅
VyOS ✅ ✅ ✅ ✅ ✅

The following interface parameters are configured on supported network operating systems as part of initial device configuration:

Operating system Interface
description
Interface
bandwidth
MTU
Arista EOS ✅ ✅ ✅
Aruba AOS-CX ✅ ❌ ✅
Cisco ASAv ✅ ❌ ✅
Cisco IOS/IOS XE ✅ ✅ ✅❗
Cisco IOS XRv ✅ ✅ ❗ ✅
Cisco Nexus OS ✅ ✅ ✅
Cumulus Linux ✅ ✅ ✅
Cumulus Linux 5.0 (NVUE) ✅ ✅ ❌
Dell OS10 ✅ ❌ ✅
Fortinet FortiOS ✅ ✅ ❌
FRR 7.5.0 ✅ ✅ ✅
Generic Linux ❌ ❌ ✅
Juniper vMX ✅ ✅ ✅
Juniper vPTX ✅ ✅ ✅
Juniper vSRX 3.0 ✅ ✅ ✅
Mikrotik RouterOS 6 ✅ ❌ ✅
Mikrotik RouterOS 7 ✅ ❌ ✅
Nokia SR Linux ✅ ❌ ❌
Nokia SR OS ✅ ❌ ❌
VyOS ✅ ❌ ✅

The following interface addresses are supported on various platforms:

Operating system IPv4
addresses
IPv6
addresses
Unnumbered
interfaces
Arista EOS ✅ ✅ ✅
Aruba AOS-CX ✅ ✅ ❌
Cisco ASAv ✅ ✅ ❌
Cisco IOS/IOS XE ✅ ✅ ❗
Cisco IOS XRv ✅ ✅ ✅
Cisco Nexus OS ✅ ✅ ✅
Cumulus Linux ✅ ✅ ✅
Cumulus Linux 5.0 (NVUE) ✅ ✅ ✅
Dell OS10 ✅ ✅ ❌
Fortinet FortiOS ✅ ✅ ❌
FRR 7.5.0 ✅ ✅ ❌
Generic Linux ✅ ✅ ❌
Juniper vMX ✅ ✅ ✅
Juniper vPTX ✅ ✅ ✅
Juniper vSRX 3.0 ✅ ✅ ✅
Mikrotik RouterOS 6 ✅ ✅ ❌
Mikrotik RouterOS 7 ✅ ✅ ❌
Nokia SR Linux ✅ ✅ ❌
Nokia SR OS ✅ ✅ ✅
VyOS ✅ ✅ ✅

Supported Configuration Modules

Routing protocol configuration modules are supported on these devices1

Operating system OSPF IS-IS EIGRP BGP BFD EVPN FHRP
Arista EOS ✅ ✅ ❌ ✅ ✅ ✅ ✅
Aruba AOS-CX ✅ ❌ ❌ ✅ ✅ ✅ ✅
Cisco ASAv ❌ ✅ ❌ ✅ ❌ ❌ ❌
Cisco IOSv ✅ ✅ ✅ ✅ ✅ ❌ ✅
Cisco IOS XE ✅ ✅ ✅ ✅ ✅ ❌ ✅
Cisco IOS XRv ✅ ✅ ❌ ✅ ❌ ❌ ❌
Cisco Nexus OS ✅ ✅ ✅ ✅ ✅ ✅ ✅
Cumulus Linux ✅ ❌ ❌ ✅ ❌ ✅ ✅
Cumulus Linux 5.0 (NVUE) ✅ ❌ ❌ ✅ ❌ ❌ ❌
Dell OS10 ❗ ❌ ❌ ✅ ✅ ✅ ❌
Fortinet FortiOS ❗ ❌ ❌ ❌ ❌ ❌ ❌
FRR 7.5.0 ✅ ✅ ❌ ✅ ❌ ✅ ❌
Juniper vMX ✅ ✅ ❌ ✅ ✅ ❌ ❌
Juniper vPTX ✅ ✅ ❌ ✅ ✅ ❌ ❌
Juniper vSRX 3.0 ✅ ✅ ❌ ✅ ✅ ❌ ❌
Mikrotik RouterOS 6 ✅ ❌ ❌ ✅ ✅ ❌ ❌
Mikrotik RouterOS 7 ✅ ❌ ❌ ✅ ✅ ❌ ❌
Nokia SR Linux ✅ ✅ ❌ ✅ ✅ ✅ ✅
Nokia SR OS ✅ ✅ ❌ ✅ ✅ ✅ ✅
VyOS ✅ ✅ ❌ ✅ ✅ ✅ ❌

Notes:

  • FRHP = First-Hop Redundancy Protocol (anycast gateway or VRRP)

The following data plane configuration modules are supported on these devices1:

Operating system VLAN VRF VXLAN MPLS SR-MPLS SRv6
Arista EOS ✅ ✅ ✅ ✅ ✅ ❌
Aruba AOS-CX ✅ ✅ ✅ ❗ ❌ ❌
Cisco IOSv ✅ ✅ ❌ ✅ ❌ ❌
Cisco IOS XE ✅ ✅ ✅ ✅ ✅ ❌
Cisco Nexus OS ✅ ✅ ✅ ❌ ❌ ❌
Cumulus Linux ✅ ✅ ✅ ❌ ❌ ❌
Cumulus Linux 5.0 (NVUE) ❌ ❗ ❌ ❌ ❌ ❌
Dell OS10 ✅ ✅ ✅ ❌ ❌ ❌
Juniper vMX ✅ ✅ ❌ ✅ ✅ ❌
Juniper vPTX ✅ ✅ ❌ ✅ ✅ ❌
Juniper vSRX 3.0 ❌ ✅ ❌ ❌ ✅ ❌
Mikrotik RouterOS 6 ✅ ✅ ❌ ✅ ❌ ❌
Mikrotik RouterOS 7 ✅ ✅ ❌ ✅ ❌ ❌
Nokia SR Linux ✅ ❌ ❌ ❌ ✅ ❌
Nokia SR OS ❌ ❌ ❌ ❌ ✅ ✅
VyOS ✅ ✅ ✅ ✅ ❌ ❌

IPv6 Support

Core netlab functionality and all multi-protocol routing protocol configuration modules fully supports IPv6. OSPFv3 is implemented only on some platforms.

Operating system IPv6
addresses
OSPFv3 IS-IS MT EIGRP
IPv6 AF
BGP
IPv6 AF
SR-MPLS
Arista EOS ✅ ✅ ✅ ❌ ✅ ✅
Aruba AOS-CX ✅ ✅ ❌ ❌ ✅ ❌
Cisco ASAv ✅ ❌ ✅ ❌ ✅ ❌
Cisco IOSv ✅ ✅ ✅ ✅ ✅ ❌
Cisco IOS XE ✅ ✅ ✅ ✅ ✅ ❌
Cisco Nexus OS ✅ ❌ ✅ ✅ ✅ ❌
Cumulus Linux ✅ ❌ ✅ ❌ ✅ ❌
Cumulus Linux 5.0 (NVUE) ✅ ❌ ✅ ❌ ✅ ❌
Dell OS10 ✅ ✅ ❌ ❌ ✅ ❌
Fortinet FortiOS ✅ ❌ ❌ ❌ ❌ ❌
FRR 7.5.0 ✅ ✅ ✅ ❌ ✅ ❌
Generic Linux ✅ ❌ ❌ ❌ ❌ ❌
Juniper vMX ✅ ✅ ✅ ❌ ✅ ❌
Juniper vPTX ✅ ✅ ✅ ❌ ✅ ❌
Juniper vSRX 3.0 ✅ ✅ ✅ ❌ ✅ ❌
Mikrotik RouterOS 6 ✅ ❌ ❌ ❌ ✅ ❌
Mikrotik RouterOS 7 ✅ ✅ ❌ ❌ ✅ ❌
Nokia SR Linux ✅ ❌ ❌ ❌ ✅ ✅
Nokia SR OS ✅ ❌ ❌ ❌ ✅ ✅
VyOS ✅ ✅ ✅ ❌ ✅ ❌

Unknown Devices

You can use device type unknown to add unsupported devices to a netlab-managed virtual lab. netlab assumes an unknown device supports all configuration modules and will prepare the data structures and Ansible inventory you need to configure the device.

Unknown devices are placed in the unprovisioned group and are not configured by the netlab up or netlab initial commands.

To add an unknown device to a lab:


1(1,2)

Use netlab show module-support command to display the current system settings