Kinds#
Containerlab launches, wires up and manages container-based labs. The steps required to launch a vanilla debian
or centos
container image aren't at all different. On the other hand, Nokia SR Linux launching procedure is nothing like the one for Arista cEOS.
Things like required syscalls, mounted directories, entrypoint and commands to execute are all different for the containerized NOS'es. To let containerlab understand which launching sequence to use, the notion of a kind
was introduced. Essentially kinds
abstract away the need to understand certain setup peculiarities of different NOS'es.
Given the following topology definition file, containerlab is able to know how to launch node1
as an SR Linux container and node2
as a cEOS one because they are associated with the kinds:
name: srlceos01
topology:
nodes:
node1:
# node1 is of nokia_srlinux kind
kind: nokia_srlinux
type: ixrd2l
image: ghcr.io/nokia/srlinux
node2:
# node2 is of ceos kind
kind: arista_ceos
image: ceos:4.32.0F
links:
- endpoints: ["node1:e1-1", "node2:eth1"]
Containerlab supports a fixed number of platforms. Most platforms are identified with both a short and a long kind
name; these names can be used interchangeably.
Within each predefined kind, we store the necessary information that is used to successfully launch the container. The following kinds are supported by containerlab:
Name | Short/Long kind name | Status | Packaging |
---|---|---|---|
Nokia SR Linux | nokia_srlinux | supported | container |
Nokia SR OS | nokia_sros | supported | VM |
Arista cEOS | arista_ceos | supported | container |
Arista vEOS | arista_veos | supported | VM |
Juniper cRPD | juniper_crpd | supported | container |
Juniper vMX | juniper_vmx | supported | VM |
Juniper vQFX | juniper_vqfx | supported | VM |
Juniper vSRX | juniper_vsrx | supported | VM |
Juniper vJunos-router | juniper_vjunosrouter | supported | VM |
Juniper vJunos-switch | juniper_vjunosswitch | supported | VM |
Juniper vJunosEvolved | juniper_vjunosevolved | supported | VM |
Cisco XRd | cisco_xrd | supported | container |
Cisco XRv9k | cisco_xrv9k | supported | VM |
Cisco XRv | cisco_xrv | supported | VM |
Cisco CSR1000v | cisco_csr1000v | supported | VM |
Cisco Nexus 9000v | cisco_n9kv | supported | VM |
Cisco 8000 | cisco_c8000 | supported | VM+ |
Cisco Catalyst 9000v | cisco_cat9kv | supported | VM |
Cisco IOL | cisco_iol | supported | container |
Cisco FTDv | cisco_ftdv | supported | VM |
Cumulus VX | cumulus_cvx | supported | container |
Aruba ArubaOS-CX | aruba_aoscx | supported | VM |
SONiC | sonic | supported | container |
SONiC VM | sonic_vm | supported | VM |
Dell FTOS10v | dell_ftos | supported | VM |
Dell SONiC | dell_sonic | supported | VM |
Mikrotik RouterOS | mikrotik_ros | supported | VM |
Huawei VRP | huawei_vrp | supported | VM |
IPInfusion OcNOS | ipinfusion_ocnos | supported | VM |
OpenBSD | openbsd | supported | VM |
Keysight ixia-c-one | keysight_ixia-c-one | supported | container |
Ostinato | linux | supported | container |
Check Point Cloudguard | checkpoint_cloudguard | supported | VM |
Fortinet Fortigate | fortinet_fortigate | supported | VM |
Palo Alto PAN | paloalto_panos | supported | VM |
Linux bridge | bridge | supported | N/A |
Linux container | linux | supported | container |
RARE/freeRtr | rare | supported | container |
Openvswitch bridge | ovs-bridge | supported | N/A |
External container | ext-container | supported | container |
Host | host | supported | N/A |
Refer to a specific kind documentation article for kind-specific details.