marionnet.org — a virtual network laboratory
Three puppet penguins in front of Marionnet windows: a virtual network laboratory

A networking lab on a single computer

Marionnet is free software that recreates a local TCP/IP network (Ethernet, and soon Wi-Fi) on a GNU/Linux host. Its machines and routers are emulated: each one boots a real system on its own kernel (User Mode Linux). Hubs, switches and cables, on the other hand, are simulated. You wire up the network with the mouse, then administer each machine from the command line, as in a networking lab.

Marionnet is primarily an educational tool: it is meant for teaching and learning computer networks and TCP/IP protocols.

Why no Cisco routers or Windows machines?

You can model an enterprise network with Marionnet, but that is not its purpose, which is why it does not imitate commercial equipment. Faithfully reproducing a vendor’s equipment (Cisco, Juniper, Huawei…) or a proprietary system (Windows, macOS) would require licences and, in a university setting, would advertise commercial products. Such systems would also need full virtualisation, such as KVM. KVM itself is very fast, thanks to the processor’s hardware support, but it cannot make the systems it runs any lighter: Windows 11, for instance, needs at least 4 GB of memory, whereas a Debian 13 machine in Marionnet gets 192 MB by default. By sticking to lightweight GNU/Linux systems, Marionnet stays fast and frugal.

The demonstration video

A 2014 demonstration (10 min, no sound, French interface). The interface has changed little since, but the engine has changed a lot.

Quick installation guide Full installation guide

Debian, Ubuntu, Fedora, Rocky Linux, AlmaLinux and openSUSE Leap 16: through apt, dnf or zypper, or with the installer.

What's new in 2026

In 2026, Marionnet reaches the real network through a NAT bridge (including IPv6) or a LAN bridge. It can be driven by a script or by an AI, it has an exam mode, it ships with a Linux 6.12 kernel and a Debian 13 image, and it installs from signed repositories.

Everything that is new

GNU/Linux machines

Each machine boots its own Linux kernel on its own file system. Standard tools such as ip, ping and tcpdump are available, as well as graphical programs such as Wireshark or a web browser, and you can run services.

Visual cabling

The palette offers hubs, switches, routers, and straight or crossover cables. As in a physical lab, a cable can be unplugged and plugged in elsewhere while the network runs.

Internet access

A NAT bridge or a LAN bridge joins the virtual network to the host’s network. Marionnet builds the bridge itself; the host’s administrator allows it once, with a sudoers rule.

Made for teaching

You can simulate faults on device ports, such as packet loss. Exam mode records each student’s session, and a lab can later be replayed and graded by a script.

Controlling Marionnet from a script, or from an AI

Started with the --control-socket option, Marionnet also accepts commands sent from a terminal with mrnctl, while the mouse keeps working; each one shows up in the window immediately, so a plain script can drive Marionnet. Teachers do not need to know these commands, though: an AI agent can write them for them, guided by the skill that ships with Marionnet (a guide written for the agent), to build a lab, run it, then grade the students’ sessions.

Scripting and AI: the guides →

$ marionnet --control-socket /tmp/marionnet.sock &
$ mrnctl new /tmp/demo.mar
$ mrnctl add machine m1
$ mrnctl add machine m2
$ mrnctl add switch s1 --ports=4
$ mrnctl connect c1 m1:eth0 s1:port1
$ mrnctl connect c2 m2:eth0 s1:port2
$ mrnctl ifconfig-set m1 eth0 ipv4-address 10.0.0.1/24
$ mrnctl ifconfig-set m2 eth0 ipv4-address 10.0.0.2/24
$ mrnctl start-all
$ mrnctl exec m1 -- ping -c 3 10.0.0.2
Screenshot: on the left, the Marionnet window draws two machines linked to a switch; on the right, a terminal shows the mrnctl commands that built this network, started it, then pinged m2 from m1.
A driven session: the terminal on the right, Marionnet on the left.

A university project since 2005

Marionnet was created at LIPN, the computer science laboratory of Université Paris 13 (now Sorbonne Paris Nord), to teach networking at the IUT de Villetaneuse and at the Institut Galilée. Written by Jean-Vincent Loddo and Luca Saiu, it has been used in lab sessions since 2007, first at these two institutes, then at other universities, in France and abroad, from Italy to Brazil and the United States.

The project and the team →

Drawing by Silviu Bârsanu: three students handle puppet penguins above the word marionnet
Drawing by Silviu Bârsanu (1965-2021)