Tested network labs you can copy and deploy: the containerlab topology, the device configs, and what the lab was tested on. Cisco IOS, Juniper vJunos, Arista cEOS, Nokia SR Linux, FRR, SONiC and MikroTik RouterOS, from CCNA practice to EVPN-VXLAN fabrics and router hardening. Every lab here was deployed and checked on a real run.
Need a lab for a change, a design review, a certification or a customer demo? Find it below, clone the repo and run one command. Each lab also links to the prompt that builds it in NetPilot, where an AI agent builds the same lab in the browser with nothing to install. All the prompts are in example-prompts.
| Lab | Vendor | What it builds | Cert | Image | Tested on | Prompt | Tutorial |
|---|---|---|---|---|---|---|---|
| ccna-ospf-mtu | Cisco IOS | Two IOL routers in OSPF area 0 and a host on each LAN, one stray MTU to find. Includes the fixed lab as a Packet Tracer .pkt |
CCNA | bring your own | IOL 17.12.1 | prompt | read · watch |
| hub-spoke-ospf | Cisco IOS | A head office and two branches in OSPF area 0, an area mismatch to plant and find, and the handover document an agent wrote | bring your own | IOL 17.12.1 | prompt | read · watch | |
| jncia-practice | Juniper vJunos | Two vJunos-routers and two hosts, seven exercises mapped to the JN0-106 objectives | JNCIA-Junos | bring your own | vJunos 26.2R1.7, containerlab 0.77.0 | prompt | read |
| evpn-vxlan-spine-leaf | Juniper vJunos | A spine and two leaves: OSPF underlay, BGP EVPN overlay, VLAN 10 on VNI 10010 | bring your own | vJunos 26.2R1.7, containerlab 0.77.0 | prompt | read | |
| ebgp-three-as-arista-nokia-frr | Arista cEOS, Nokia SR Linux, FRR | Three routers in three autonomous systems with eBGP and loopback reachability end to end | bring your own (cEOS), free, public (SR Linux, FRR) | cEOS 4.36.1F, SR Linux, FRR 8.4 | prompt | read | |
| ospf-three-vendor-cisco-arista-junos | Cisco IOL, Arista cEOS, Juniper cRPD | Three routers from three vendors in OSPF area 0 with loopback reachability end to end | bring your own | IOL 17.12.1, cEOS 4.36.1F, cRPD 23.2R1.13 | prompt | read · watch | |
| two-switches | Arista cEOS | Two cEOS switches and two hosts with eBGP, configured at deploy | bring your own | cEOS 4.36.1F, containerlab 0.77.0 and 0.82.0 | prompt | read | |
| mlag-pair | Arista cEOS | An MLAG pair with VARP, a host on an LACP bond and a third switch on an MLAG port channel | bring your own | cEOS 4.36.1F, containerlab 0.77.0 and 0.82.0 | prompt | read | |
| two-switches | SONiC | Two SONiC switches on one link, configured by hand | free, public | sonic-vs 202511, containerlab 0.77.0 and 0.82.0 | prompt | read | |
| bgp-leaf-spine | SONiC | Two spines, two leaves and two hosts with eBGP and ECMP, configured at deploy | free, public | sonic-vs 202511, containerlab 0.77.0 and 0.82.0 | prompt | read | |
| evpn-l2vni | SONiC | One spine, two leaves and two hosts with VLAN 100 stretched over VNI 10100, configured at deploy | free, public | sonic-vs 202511, containerlab 0.77.0 and 0.82.0 | prompt | read | |
| chr-two-routers | MikroTik RouterOS | Two CHR routers with OSPF over one link | free, public | RouterOS 7.24.5, containerlab 0.82.0 | prompt | read | |
| mtcna-practice | MikroTik RouterOS | Gateway, ISP, web server and two PCs for DHCP, bridging, NAT, firewall, queues and PPPoE | MTCNA | free, public | RouterOS 7.24.5, containerlab 0.82.0 | prompt | read |
| dual-wan-pcc | MikroTik RouterOS | Dual WAN PCC load balancing with failover on RouterOS 7 | free, public | RouterOS 7.24.5, containerlab 0.82.0 | prompt | read | |
| mikrotrick-hardening | MikroTik RouterOS | An exposed edge router, the audit after MikroTrick, and a firewall that keeps management on the LAN | free, public | RouterOS 7.24.5, containerlab 0.82.0 | prompt | read |
Each vendor folder has its own README with how to get the image, the memory each node needs, and what to know about that image: Cisco, Juniper, Arista, SONiC, MikroTik.
You need containerlab and Docker on a Linux host. Some images also need KVM, which the vendor README says.
git clone https://github.com/netpilot-labs/network-labs
cd network-labs/sonic/bgp-leaf-spine
sudo containerlab deploy -t bgp-leaf-spine.clab.ymlRemove it when you are done:
sudo containerlab destroy -t bgp-leaf-spine.clab.yml --cleanup"Bring your own" images are the vendor's software under the vendor's license, and this repository never includes them. The vendor README says where to get each one and how to build it.
- mikrotik/chr-launcher: runs the official
mikrotik/chrimage unmodified in containerlab with one launcher script. It became the nativemikrotik_chrkind, which shipped in containerlab v0.82.0.
The test harnesses and results behind our containerlab contributions, so you can rerun them:
- benchmarks/containerlab/mikrotik-chr-kind-matrix: the test matrix for the
mikrotik_chrkind (244 checks on amd64 and arm64, with and without KVM, across three RouterOS releases), plus the scripts for the follow-up PRs on interface count, neighbor discovery and the management VRF. - benchmarks/containerlab/mikrotik-ros-save-compare:
containerlab saveonmikrotik_rosnodes,mainagainst the shared SSH export.
Found a lab that no longer deploys on a newer image, or want a scenario added? Open an issue with the lab and what you ran. A new lab is a folder under its vendor with the topology, the configs and a README that says what it was tested on.
BSD 3-Clause. The topologies, configs and scripts are by the NetPilot team. Vendor images are not included. NetPilot is not affiliated with or endorsed by Cisco, Juniper, Arista, the SONiC project, MikroTik or the containerlab project. All trademarks belong to their owners.
NetPilot is AI for network engineers: https://www.netpilot.io