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 standalone systems, each booting its own kernel (User Mode Linux). Hubs, switches and cables are simulated by small programs on the host. You build the network in the graphical interface, 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. You can model an enterprise network with it, 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, which is much slower and more resource-hungry. By sticking to lightweight GNU/Linux systems, Marionnet stays fast and frugal.

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 installs from signed apt and dnf repositories, or with an installer. It reaches the real network through a NAT bridge (including IPv6) or a LAN bridge. It can be controlled by a script or by an AI, and it has an exam mode. A Linux 6.12 kernel and a Debian 13 image are now available alongside the older ones.

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 opens its window as usual, and the mouse still works in it. But it also accepts written commands at the same time, sent from a terminal with mrnctl: create machines, cable them, assign them IP addresses, start them, read what happens inside. Each command shows up in the window immediately, exactly as if it had been done with the mouse. Every answer is a line of JSON, so a script can drive Marionnet, and so can an AI agent that runs shell commands. Teachers therefore do not need to know these commands: the AI writes them, and the teacher follows along on screen. To guide the AI, Marionnet ships a skill, a guide written for the agent, which helps it design a lab with the teacher, run it, and grade the students’ sessions, exam mode included.

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. It is written by Jean-Vincent Loddo and Luca Saiu. Used in lab sessions at these two institutes since 2007, it was then adopted by other departments and universities in France, and it has also been used abroad, from Italy to Brazil and the United States. Its interface is now available in thirteen languages: the original English and twelve translations. Volunteers had started about ten of these translations; they were completed in 2026, and the missing ones were added at the same time.

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)