Labtris
Migration guide

Migrating from GNS3

GNS3 has been the free entry point to network labs for over a decade. Two things it does really well: an enormous public appliance registry, and Dynamips-based routing for classic IOS you cannot legally run any other way.

Labtris imports the GNS3 registry directly, so every appliance definition (228 of them) becomes a Labtris template without you re-authoring anything. The rest of this page maps concepts and calls out the differences that matter.

Last checked against GNS3 3.0.6 stable, 2.2.61 on the maintained 2.2 branch, and the 3.1.0a6 pre-release in October 2026. Comparisons go stale; if something here is wrong now, please say so.

At a glance

What changes if you switch.

The differences worth knowing before reading anything else. The concept map further down answers the other question — where each thing you already use ended up.

Licence
GNS3
GPL-3.0. Copyleft — it sets terms on whatever you build around it.
Labtris
MIT. Which is also why GNS3 was not used as the base for this: the licence, not the engineering.
What do you install?
GNS3
The Qt desktop client is still the complete one. 3.0 bundles a web UI, but a workstation install is the default path.
Labtris
A browser. Nothing on your workstation.
Appliance library
GNS3
228 community-maintained definitions — the most valuable asset in this category.
Labtris
The same 228. Labtris imports the GNS3 registry natively rather than competing with it.
Classic Cisco IOS
GNS3
Dynamips and IOU — real IOS emulation nothing else does, and why a lot of labs cannot leave.
Labtris
Roadmap. The runtimes today are QEMU and Docker.
Assistant and MCP
GNS3
An AI copilot and an MCP server, still in the 3.1 alphas (a6, September 2026).
Labtris
Shipping, MCP-native. The gap here is months, not architecture.
Browser packet capture
GNS3
Wireshark, locally installed. A browser Wireshark is in the 3.1 alphas.
Labtris
In-browser Wireshark streamed from the server, or a raw pcap stream.
Can a link be slow in one direction?
GNS3
NIO filters at the node interface — awkward per link, and not asymmetric.
Labtris
Yes — per-direction netem and tbf on a first-class link.

Two of these go to GNS3, and they are not small: the registry and Dynamips are the reasons most GNS3 labs stay where they are. The 3.1 alphas are aimed at much of the rest of this table, so it is worth re-reading when 3.1 ships stable.

What GNS3 got right

Keep using these ideas.

  • The appliance registry. 228 community-maintained definitions covering almost anything you might want to boot — the single most valuable asset in this category, and Labtris imports it rather than competing with it.
  • Dynamips and IOU. Real Cisco IOS emulation that nothing else does, and the reason a lot of labs cannot leave.
  • GPL-3.0, a long history, and the largest user community of any network emulator.
  • 3.0 ships a bundled web UI and a real permissions model — projects have owners and audit rights, not just whoever has the shell.
  • 3.1 is building an AI copilot, an MCP server and Wireshark in the browser. Still alpha — 3.1.0a6 in September 2026, with no stable 3.1 yet — but they are heading for the same ground this page claims.
Where the friction came from

The reasons to look elsewhere.

  • The desktop client is still the complete one. 3.0's web UI is real and bundled with the server, but the Qt app remains the reference, so a workstation install is the default path.
  • Impairment support is via node-level `NIO filters` — awkward per-link, not asymmetric.
  • Multi-host means a GNS3 server on each machine behind one controller. It works; there is no overlay, so the machines have to be able to reach each other directly.
  • The registry is the appliance model: editing what a template does means re-authoring a `.gns3a` rather than changing a field.
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.

  • Client
    GNS3
    GNS3 desktop (Qt), or the web UI bundled since 3.0
    Labtris
    Browser only. Nothing to install on your workstation.
  • Appliance format
    GNS3
    `.gns3a` JSON in a public registry
    Labtris
    Native import of the whole GNS3 registry — 228 definitions become templates
  • Templates
    GNS3
    Fixed per definition; edits require re-authoring the `.gns3a`
    Labtris
    JSONB row, every field editable from the palette
  • Console
    GNS3
    Local terminal (telnet), or a browser tab via HTML5 console
    Labtris
    Serial in xterm.js, VNC/RDP via Guacamole — all in the same browser
  • Users
    GNS3
    Accounts with per-project permissions since 3.0
    Labtris
    Accounts and roles; destruction reserved to the lab's owner. Much the same idea
  • Impairment
    GNS3
    NIO filters at the node interface
    Labtris
    First-class link → per-direction netem + tbf
  • Capture
    GNS3
    Right-click a link → Wireshark, locally installed. A browser Wireshark is in the 3.1 alphas
    Labtris
    In-browser Wireshark GUI streamed over VNC, or a raw pcap stream to a JS dissector
  • Dynamips
    GNS3
    Native — one of GNS3's raison d'être
    Labtris
    Roadmap. The runtimes today are QEMU and Docker.
  • IOU
    GNS3
    Supported, iourc-based licensing
    Labtris
    Roadmap. Same iourc shape when it lands.
  • Multi-host
    GNS3
    Multiple GNS3 servers behind one controller
    Labtris
    Register another host, VXLAN builds the tunnel across them
  • Assistant
    GNS3
    An AI copilot and an MCP server, both still in the 3.1 alphas (a6)
    Labtris
    Shipping today, MCP-native. The gap here is months, not architecture
  • Licence
    GNS3
    GPL-3.0-or-later
    Labtris
    MIT (the emulator)
Bringing your lab across

Importing existing topologies.

The GNS3 registry. git clone https://github.com/GNS3/gns3-registry then POST /api/v1/system/registry/import with the path. Labtris parses every appliance definition and creates a template with the right RAM, NIC model, disk bus, iface scheme, console type, and — importantly — the URL to download the image from. It previews before applying, and tells you how many need a vendor login vs how many are open.

Topology files (.gns3). Not imported today. The shape is JSON but its schema is different enough that a real importer is a small project rather than a one-liner. If you need it, open an issue with one of your projects attached and we will look at it.

Docker images. Every GNS3 Docker template works — same `docker pull <image>` machinery on both sides. No template authoring needed on Labtris; drop the image name in and go.

The difference that is not a feature

Copyleft.

GNS3 is GPL-3.0-or-later. That is a deliberate choice and a defensible one — it guarantees every derivative stays open, which is exactly what a decade-old community project should want. Most people who run GNS3 never feel it.

You feel it when you want to embed rather than run. Link GPL-3.0 code into your own tool and your tool carries the same terms; there is no vendoring a piece of it into a BSD-licensed test harness, a vendor’s internal CI, or a product with a closed component. Labtris is MIT for that reason and no other: take the emulator, put it inside whatever you are building, ship it under your own licence, keep your changes if you want to. No conversation, no exception, no dual-licence form.

The cost is not theoretical. Their skills repository is GPL-3.0 as well, so ours is written from scratch rather than adapted from the work they had already done — slower for us, and no better for anybody reading either one. It is MIT, so you can take it into a GPL project; the reverse was not available to us.

If you are running a lab, this changes nothing and you should pick on the features. If you are building something that has a lab inside it, it is the whole decision.

Try Labtris.

Private beta: ask for access, install with the token you get back. No telemetry, no lock-in; the code you receive is MIT.