Supported Platforms¶
Table of Contents
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 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:
vagrant-libvirt, including support for veryisolated private networks and UDP point-to-point tunnels.
External – meta virtualization provider that allows you to configure external physical or virtual devices with netlab
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 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) |
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 | ✅ | ✅ |
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 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 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 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 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 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 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:
Set device node attribute to unknown.
Specify Vagrant box name or container name with image node attribute.
Specify clab.kind node attribute according to containerlab documentation when using containerlab virtualization provider.
- 1(1,2)
Use netlab show module-support command to display the current system settings