Labtris
Migration guide

Migrating from Cisco Modeling Labs

CML is Cisco's own emulation platform — polished web UI, first-party support, and reference nodes for the Cisco stack (IOSv, IOSvL2, IOS-XRv, NX-OSv, ASAv). If your employer already pays for it and your labs are Cisco-only, keep using it.

Labtris does not replace CML for what CML is best at. Instead, Labtris is where you put CML when one CML instance is not enough: run the CML VM as a QEMU node on Labtris, wire it out through a cloud network onto your real lab, and use Labtris around it for everything CML does not do well — non-Cisco images, per-direction impairment, browser-native packet capture, LLM-driven topology work, and more nodes than one licence lets you spin up.

What Cisco CML got right

Keep using these ideas.

  • Ships templates for Cisco's own images so you do not hand-craft the boot params — IOSv, IOSvL2, IOS-XRv, NX-OSv, ASAv all just work.
  • Polished web UI with a canvas, integrated web terminals, and a pyATS runner.
  • Official Cisco support channel; if a Cisco image misbehaves, you have someone to escalate to.
  • Vetted reference topologies from Cisco Learning and DevNet — good starting points.
Where the friction came from

The reasons to look elsewhere.

  • Per-simulation node cap — hitting the ceiling is a purchasing conversation, not an infra one.
  • Cisco-only by design; non-Cisco vendors are your problem, and the workflow around them is second-class.
  • Substantial VM footprint (16 GB minimum for anything real) and locked to Cisco's release cadence.
  • Cannot self-host on an air-gapped machine without a licence-server exception.
  • One CML is one instance — no native way to spread a large lab across two boxes.
Concept map

What you know, and what it's called here.

Same primitives, mostly. A few things are actually different — those get their own row.

ConceptIn Cisco CMLIn Labtris
Where CML runsA VM you provision (VMware, KVM, ESXi)As a QEMU node on Labtris. Wire it into a lab, expose it out through a cloud network, treat it like any other appliance.
Cisco vendor imagesFirst-party templates includedRun CML inside Labtris and use CML's own images from there. Labtris does not redistribute Cisco images (nobody legally can).
Non-Cisco imagesExtras / your problemFirst-class: Juniper, Arista, PAN-OS, VyOS, Nokia SR Linux, containerlab kinds — anything that boots under QEMU or Docker.
Node limitLicensed — per-simulation seat countNone. The limit is your host RAM.
Multi-hostOne CML per boxRegister a second host, VXLAN builds the tunnel across them, one logical lab spans both.
Topology formatYAML (CML's native)JSON. `.unl` and `.clab.yml` import today; CML YAML importer is on the roadmap.
ConsoleWeb terminalSerial via xterm.js, VNC/RDP via Guacamole — one browser, every guest type.
ImpairmentPer-link (delay/jitter/loss/BW)Same, plus per-direction (A→B ≠ B→A), plus live-edit without link flap.
Packet captureRight-click, download pcapSame — plus a browser-native dissector so you do not need Wireshark installed locally.
Assistant / MCPNoneMCP server + browser assistant. An LLM drives topology, wires, config, captures — with the same permissions as the signed-in user.
LicenceCommercial (Personal / Enterprise)Apache-2.0
Bringing your lab across

Importing existing topologies.

Run CML as a Labtris node. Grab the CML controller OVA / qcow2 you already have, upload it with labtris-image add cml-controller.qcow2 or through the palette. It boots as a QEMU node like any other, with as much RAM and vCPU as you give it. Connect it out to your real management network with a Cloud segment; connect it to your lab bridges with plain veth links. From CML's perspective it is running on a VM host; from Labtris's, it is one node among many.

Why this shape. CML is licensed per instance. Nothing stops you running several CML instances as separate Labtris nodes on the same host, each with its own licence, wired together at L2 — and now the aggregate node count is the sum of the licences, not one. Meanwhile the non-Cisco half of a mixed-vendor lab runs natively on Labtris and talks to the CML side over a shared segment.

Topology YAML importer. On the roadmap. If you have a large corpus of CML labs you need to moveinto Labtris directly (not into a CML VM), open an issue and share one — the schema is documented, it is a small project.

Try Labtris in five minutes.

Nothing to sign up for, no telemetry, no lock-in — the whole thing is under Apache-2.0 in one GitHub repo.