Supported Platforms¶
Supported Virtual Network Devices¶
netlab supports these virtual network devices or their physical equivalents (when using external virtualization provider).
Virtual network device |
netlab device type |
---|---|
Arista vEOS |
eos |
Aruba AOS-CX ❗ |
arubacx |
Cisco ASAv |
asav |
Cisco Catalyst 8000v ❗ |
cat8000v |
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 |
FRRouting (FRR) ❗ |
frr |
linux |
|
Juniper vMX ❗ |
vmx |
Juniper vPTX (vJunos EVO) ❗ |
vptx |
Juniper vSRX 3.0 ❗ |
vsrx |
vJunos-switch ❗ |
vjunos-switch |
Mikrotik RouterOS 6 (CHR) ❗ |
routeros |
Mikrotik RouterOS 7 (CHR) ❗ |
routeros7 |
Nokia SR Linux ❗ |
srlinux |
Nokia SR OS ❗ |
sros |
Sonic ❗ |
sonic |
VyOS 1.4 ❗ |
vyos |
netlab also supports the following daemons (control-plane software running in containers):
Daemon |
netlab device type |
---|---|
BIRD Internet Routing Daemon ❗ |
bird |
dnsmasq DHCP server ❗ |
dnsmasq |
Notes:
Use the netlab show devices command to display the list of supported devices and daemons.
You can specify the device type in the device property of the node data or the topology-wide defaults.device setting. See lab topology overview for more details.
If you want to use an unsupported device in a netlab-managed lab, use an unknown device or contribute a new device implementation.
The daemons run on top of Ubuntu Linux and use the same scripts as Linux for initial device configuration. See linux device for initial configuration capabilities.
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 |
Vagrant |
|
---|---|---|---|
Arista vEOS |
✅ |
||
Aruba AOS-CX |
❌ |
✅❗ |
|
Cisco ASAv |
❌ |
❌ |
|
Cisco Catalyst 8000v |
❌ |
✅❗ |
|
Cisco CSR 1000v |
✅ |
✅❗ |
|
Cisco IOSv |
✅ |
❌ |
|
Cisco IOS XRv |
❌ |
✅ |
|
Cisco Nexus 9300v |
✅ |
✅❗ |
|
Cumulus Linux |
✅ |
✅ |
✅❗ |
Cumulus Linux 5.0 (NVUE) |
✅ |
✅ |
✅❗ |
Dell OS10 |
❌ |
✅ |
|
Fortinet FortiOS |
✅ |
❌ |
❌ |
FRR |
✅❗ |
✅❗ |
✅ |
Generic Linux (Ubuntu/Alpine) ❗ |
✅ |
✅ |
✅ |
Juniper vMX |
❌ |
❌ |
✅❗ |
Juniper vPTX |
❌ |
✅❗ |
|
Juniper vSRX 3.0 |
✅ |
✅❗ |
|
vJunos-switch |
❌ |
❌ |
✅❗ |
Mikrotik RouterOS 6 |
✅ |
❌ |
❌ |
Mikrotik RouterOS 7 |
❌ |
❌ |
|
Nokia SR Linux |
❌ |
❌ |
✅ |
Nokia SR OS |
❌ |
❌ |
✅ |
Sonic |
❌ |
❌ |
|
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 |
CPUs |
memory |
libvirt NIC model |
---|---|---|---|---|
Arista vEOS |
eos |
2 |
2048 |
virtio |
Aruba AOS-CX |
arubacx |
2 |
4096 |
virtio |
Cisco ASAv |
asav |
1 |
2048 |
virtio |
Cisco Catalyst 8000v |
cat8000v |
2 |
4096 |
virtio |
Cisco CSR 1000v |
csr |
2 |
4096 |
virtio |
Cisco IOSv |
iosv |
1 |
512 |
e1000 |
Cisco IOS XRv |
iosxr |
2 |
8192 |
e1000 |
Cisco Nexus 9300v |
nxos |
2 |
6144 ❗ |
e1000 |
Cumulus Linux |
cumulus |
2 |
1024 |
virtio |
Cumulus Linux 5.0 (NVUE) |
cumulus_nvue |
2 |
1024 |
virtio |
Dell OS10 |
dellos10 |
2 |
2048 |
e1000 |
Fortinet FortiOS |
fortios |
1 |
1024 |
virtio |
FRR |
frr |
1 |
1024 |
virtio |
Generic Linux host |
linux |
1 |
1024 |
virtio |
Juniper vSRX 3.0 |
vsrx |
2 |
4096 |
virtio |
Juniper vPTX |
vptx |
4 |
8192 |
virtio |
Mikrotik RouterOS 6 |
routeros |
1 |
256 |
virtio |
Mikrotik RouterOS 7 |
routeros7 |
2 |
256 |
e1000 |
Sonic |
sonic |
2 |
4096 |
virtio |
VyOS |
vyos |
2 |
1024 |
virtio |
Tip
virtio is the default KVM/libvirt NIC model.
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[1] |
✅ |
✅ |
Cisco IOS XRv |
✅ |
✅ |
Cisco Nexus OS |
✅ |
✅ |
Cumulus Linux |
✅ |
✅ |
Dell OS10 |
✅ |
✅ |
Fortinet FortiOS |
✅ |
✅ |
FRR |
✅❗ |
✅❗ |
Generic Linux |
✅ |
❌ |
Junos[2] |
✅ |
✅ |
Mikrotik RouterOS 6 |
✅ |
✅ |
Mikrotik RouterOS 7 |
✅ |
✅ |
Nokia SR Linux |
✅ |
✅ |
Nokia SR OS |
✅ |
✅ |
Sonic |
✅ |
❌ |
VyOS |
✅ |
✅ |
Initial Device Configurations¶
The following system-wide features are configured on supported network operating systems as part of the initial device configuration:
Operating system |
Hostname |
IPv4 hosts |
LLDP |
Loopback |
Loopback |
---|---|---|---|---|---|
Arista EOS |
✅ |
✅ |
✅ |
✅ |
✅ |
Aruba AOS-CX |
✅ |
❌ |
✅ |
✅ |
✅ |
Cisco ASAv |
✅ |
✅ |
❌ |
❌ |
❌ |
Cisco IOS/IOS XE[1] |
✅ |
✅ |
✅ |
✅ |
✅ |
Cisco IOS XRv |
✅ |
✅ |
✅ |
✅ |
✅ |
Cisco Nexus OS |
✅ |
✅ |
✅ |
✅ |
✅ |
Cumulus Linux |
✅ |
✅ |
✅ |
✅ |
✅ |
Cumulus Linux 5.0 (NVUE) |
✅ |
✅ |
✅ |
✅ |
✅ |
Dell OS10 |
✅ |
✅ |
✅ |
✅ |
✅ |
Fortinet FortiOS |
✅ |
❌ |
✅ |
✅ |
✅ |
FRR |
✅ |
✅ |
❌ |
✅ |
✅ |
Generic Linux |
✅ |
✅ |
✅❗ |
✅ |
✅ |
Junos[2] |
✅ |
❌ |
✅ |
✅ |
✅ |
Mikrotik RouterOS 6 |
✅ |
✅ |
✅❗ |
✅ |
✅ |
Mikrotik RouterOS 7 |
✅ |
✅ |
✅❗ |
✅ |
✅ |
Nokia SR Linux |
✅ |
✅ |
✅ |
✅ |
✅ |
Nokia SR OS |
✅ |
✅ |
✅ |
✅ |
✅ |
Sonic |
✅ |
✅ |
❌ |
✅ |
✅ |
VyOS |
✅ |
✅ |
✅ |
✅ |
✅ |
The following interface parameters are configured on supported network operating systems as part of the initial device configuration:
Operating system |
Interface |
Interface |
MTU |
Additional |
---|---|---|---|---|
Arista EOS |
✅ |
✅ |
✅ |
✅ |
Aruba AOS-CX |
✅ |
❌ |
✅ |
✅ |
Cisco ASAv |
✅ |
❌ |
✅ |
❌ |
Cisco IOS/IOS XE[1] |
✅ |
✅ |
✅❗ |
✅ |
Cisco IOS XRv |
✅ |
✅ ❗ |
✅ |
❌ |
Cisco Nexus OS |
✅ |
✅ |
✅ |
✅ |
Cumulus Linux |
✅ |
✅ |
✅ |
✅ |
Cumulus Linux 5.0 (NVUE) |
✅ |
✅ |
❌ |
❌ |
Dell OS10 |
✅ |
❌ |
✅ |
✅ |
Fortinet FortiOS |
✅ |
✅ |
❌ |
❌ |
FRR |
✅ |
✅ |
✅ |
✅ |
Generic Linux |
❌ |
❌ |
✅ |
❌ |
Junos[2] |
✅ |
✅ |
✅ |
✅ |
Mikrotik RouterOS 6 |
✅ |
❌ |
✅ |
❌ |
Mikrotik RouterOS 7 |
✅ |
❌ |
✅ |
✅ |
Nokia SR Linux |
✅ |
❌ |
✅ |
✅ |
Nokia SR OS |
✅ |
❌ |
✅ |
✅ |
Sonic |
✅ |
✅ |
✅ |
✅ |
VyOS |
✅ |
❌ |
✅ |
✅ |
The following interface addresses are supported on various platforms:
Operating system |
IPv4 |
IPv6 |
Unnumbered |
---|---|---|---|
Arista EOS |
✅ |
✅ |
✅ |
Aruba AOS-CX |
✅ |
✅ |
❌ |
Cisco ASAv |
✅ |
✅ |
❌ |
Cisco IOSv |
✅ |
✅ |
❌ |
Cisco IOS XE[1] |
✅ |
✅ |
✅ |
Cisco IOS XRv |
✅ |
✅ |
✅ |
Cisco Nexus OS |
✅ |
✅ |
✅ |
Cumulus Linux |
✅ |
✅ |
✅ |
Cumulus Linux 5.0 (NVUE) |
✅ |
✅ |
✅ |
Dell OS10 |
✅ |
✅ |
❌ |
Fortinet FortiOS |
✅ |
✅ |
❌ |
FRR |
✅ |
✅ |
✅ |
Generic Linux |
✅ |
✅ |
❌ |
Junos[2] |
✅ |
✅ |
✅ |
Mikrotik RouterOS 6 |
✅ |
✅ |
❌ |
Mikrotik RouterOS 7 |
✅ |
✅ |
❌ |
Nokia SR Linux |
✅ |
✅ |
❌ |
Nokia SR OS |
✅ |
✅ |
✅ |
Sonic |
✅ |
✅ |
✅ |
VyOS |
✅ |
✅ |
✅ |
Tip
See Initial Configuration Integration Tests Results for more details.
Supported Configuration Modules¶
Routing protocol configuration modules are supported on these devices[3]
Operating system |
|||||
---|---|---|---|---|---|
Arista EOS |
✅ |
✅ |
❌ |
✅ |
✅ |
Aruba AOS-CX |
✅ |
❌ |
❌ |
✅ |
❌ |
Cisco ASAv |
❌ |
✅ |
❌ |
✅ |
❌ |
Cisco IOSv |
✅ |
✅ |
✅ |
✅ |
✅ |
Cisco IOS XE[1] |
✅ |
✅ |
✅ |
✅ |
✅ |
Cisco IOS XRv |
✅ |
✅ |
❌ |
✅ |
❌ |
Cisco Nexus OS |
✅ |
✅ |
✅ |
✅ |
❌ |
Cumulus Linux |
✅ |
❌ |
❌ |
✅ |
✅ |
Cumulus Linux 5.0 (NVUE) |
✅ |
❌ |
❌ |
✅ ❗ |
❌ |
Dell OS10 |
✅ ❗ |
❌ |
❌ |
✅ |
❌ |
Fortinet FortiOS |
✅ ❗ |
❌ |
❌ |
❌ |
❌ |
FRR |
✅ |
✅ |
❌ |
✅ |
✅ |
Junos[2] |
✅ |
✅ |
❌ |
✅ |
❌ |
Mikrotik RouterOS 6 |
✅ |
❌ |
❌ |
✅ |
❌ |
Mikrotik RouterOS 7 |
✅ |
❌ |
❌ |
✅ |
❌ |
Nokia SR Linux |
✅ |
✅ |
❌ |
✅ |
❌ |
Nokia SR OS |
✅ |
✅ |
❌ |
✅ |
❌ |
Sonic |
❌ |
❌ |
❌ |
✅ |
❌ |
VyOS |
✅ |
✅ |
❌ |
✅ |
❌ |
Routing protocol configuration modules are also supported on these daemons:
Operating system |
||||
---|---|---|---|---|
BIRD Internet Routing Daemon |
✅ ❗ |
❌ |
✅ ❗ |
❌ |
These devices support additional control-plane protocols or BGP address families:
Operating system |
||||
---|---|---|---|---|
Arista EOS |
✅ |
✅ |
✅ |
✅ |
Aruba AOS-CX |
✅ |
✅ |
✅ |
✅ |
Cisco CSR 1000v |
✅ |
❌ |
✅ |
✅ |
Cisco Catalyst 8000v |
✅ |
❌ |
❌ |
✅ |
Cisco IOSv |
✅ |
❌ |
✅ |
✅ |
Cisco Nexus OS |
✅ |
✅ |
❌ |
✅ |
Cumulus Linux |
✅ |
✅ |
❌ |
✅ |
Dell OS10 |
✅ |
✅ |
❌ |
❌ |
FRR |
✅ |
✅ |
✅ |
❌ |
Juniper vMX |
✅ |
❌ |
✅ |
❌ |
Juniper vPTX |
✅ |
❌ |
✅ |
❌ |
Juniper vSRX 3.0 |
✅ |
❌ |
❌ |
❌ |
vJunos-switch |
✅ |
❌ |
❌ |
❌ |
Mikrotik RouterOS 6 |
✅ |
❌ |
✅ |
❌ |
Mikrotik RouterOS 7 |
✅ |
❌ |
✅ |
❌ |
Nokia SR Linux |
✅ |
✅ |
❌ |
✅ |
Nokia SR OS |
✅ |
✅ |
✅ |
✅ |
VyOS |
✅ |
✅ |
✅ |
❌ |
Notes:
FRHP = First-Hop Redundancy Protocol (anycast gateway or VRRP)
Tip
See integration test results for more details.
The data plane configuration modules are supported on these devices[3]:
Operating system |
||||||
---|---|---|---|---|---|---|
Arista EOS |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
Aruba AOS-CX |
✅ |
✅ |
✅❗ |
❌ |
❌ |
|
Cisco Catalyst 8000v |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
Cisco CSR 1000v |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
Cisco IOSv |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
Cisco Nexus OS |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
Cumulus Linux |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
Cumulus Linux 5.0 (NVUE) |
❌ |
❌ |
❌ |
❌ |
❌ |
|
Dell OS10 |
✅ |
✅ |
✅ |
❌ |
❌ |
❌ |
FRR |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
Juniper vMX |
✅ |
✅ |
❌ |
✅ |
✅ |
❌ |
Juniper vPTX |
✅ |
✅ |
❌ |
✅ |
✅ |
❌ |
Juniper vSRX 3.0 |
❌ |
✅ |
❌ |
❌ |
❌ |
❌ |
vJunos-switch |
✅ |
✅ |
❌ |
❌ |
❌ |
❌ |
Mikrotik RouterOS 6 |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
Mikrotik RouterOS 7 |
✅ |
✅ |
❌ |
✅ |
❌ |
❌ |
Nokia SR Linux |
✅ |
❌ |
❌ |
❌ |
✅ |
❌ |
Nokia SR OS |
❌ |
❌ |
❌ |
❌ |
✅ |
✅ |
VyOS |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
Network services configuration modules are supported on these devices[3]
Operating system |
||
---|---|---|
Arista EOS |
✅ |
✅ |
Cisco CSR 1000v |
✅ |
✅ |
Cisco IOSv |
✅ |
✅ |
Cumulus Linux |
✅ |
✅ |
Network services configuration modules are also supported on these daemons:
Operating system |
||
---|---|---|
dnsmasq |
✅ |
✅ |
IPv6 Support¶
Core netlab functionality and all multi-protocol routing protocol configuration modules fully support IPv6. OSPFv3 is implemented only on some platforms.
Operating system |
IPv6 |
OSPFv3 |
IS-IS MT |
EIGRP |
BGP |
SR-MPLS |
---|---|---|---|---|---|---|
Arista EOS |
✅ |
✅ |
✅ |
❌ |
✅ |
✅ |
Aruba AOS-CX |
✅ |
✅ |
❌ |
❌ |
✅ |
❌ |
Cisco ASAv |
✅ |
❌ |
✅ |
❌ |
✅ |
❌ |
Cisco IOSv |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
Cisco IOS XE[1] |
✅ |
✅ |
✅ |
✅ |
✅ |
❌ |
Cisco Nexus OS |
✅ |
❌ |
✅ |
✅ |
✅ |
❌ |
Cumulus Linux |
✅ |
❌ |
✅ |
❌ |
✅ |
❌ |
Cumulus Linux 5.0 (NVUE) |
✅ |
❌ |
✅ |
❌ |
✅ |
❌ |
Dell OS10 |
✅ |
✅ |
❌ |
❌ |
✅ |
❌ |
Fortinet FortiOS |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
FRR |
✅ |
✅ |
✅ |
❌ |
✅ |
❌ |
Generic Linux |
✅ |
❌ |
❌ |
❌ |
❌ |
❌ |
Junos[2] |
✅ |
✅ |
✅ |
❌ |
✅ |
❌ |
Mikrotik RouterOS 6 |
✅ |
❌ |
❌ |
❌ |
✅ |
❌ |
Mikrotik RouterOS 7 |
✅ |
✅ |
❌ |
❌ |
✅ |
❌ |
Nokia SR Linux |
✅ |
❌ |
❌ |
❌ |
✅ |
✅ |
Nokia SR OS |
✅ |
❌ |
❌ |
❌ |
✅ |
✅ |
Sonic |
✅ |
❌ |
❌ |
❌ |
✅ |
❌ |
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.