Fonctionnalités
Les composants
- Machines et routeurs. Ce sont des systèmes GNU/Linux émulés : une machine a jusqu’à huit cartes Ethernet et démarre la distribution et le noyau choisis dans sa fiche ; un routeur a de 4 à 16 ports.
- Hubs (répéteurs, ou concentrateurs), de 4 à 16 ports. Un hub est un composant très simple : il répète chaque trame sur tous ses ports. Il sert surtout aux TP où une machine espion capture le trafic du réseau.
- Switchs (commutateurs), de 4 à 16 ports. Un switch n’envoie une trame que vers le port de son destinataire : l’espion ne voit plus le trafic des autres machines, et des échanges entre paires de machines différentes se font en parallèle, sans se ralentir. Le switch est celui de la suite VDE, qui se configure dans un terminal (option Afficher le terminal VDE). Son langage de commandes n’a pas la syntaxe de l’IOS de Cisco, mais il en est proche par le sens (ports, VLAN, arbre couvrant) : l’étudiant y manipule les mêmes notions.
- Câbles droits et croisés. Le choix du bon câble revient à l’étudiant : comme dans la réalité, un câble mal choisi se comporte comme un câble absent. Depuis 2026, un switch peut aussi, comme la plupart des modèles actuels, détecter le câblage de lui-même (option Auto MDI-X) : un câble de la mauvaise nature fonctionne alors quand même.
- Nuage. Il figure une liaison de niveau 2 dont on ne détaille pas le contenu.
- Accès au réseau réel. Trois composants relient le réseau virtuel au réseau de l’hôte. Le Gateway ne demande aucun privilège ; le NAT bridge crée un réseau privé, avec DHCP, DNS et, au choix, IPv6 ; le LAN bridge place les machines virtuelles sur le réseau local de l’hôte.
Le dessin du réseau
Le réseau est dessiné automatiquement (par Graphviz), à chaque modification : l’étudiant n’a jamais à placer un composant, et le plus souvent il laisse le dessin tel quel. Une palette, à droite du dessin, permet pourtant de le régler, en trois groupes :
- Nœuds : la taille des icônes, sans changer leur disposition ; une disposition au hasard (le dé), quand le dessin ne convient pas, et le retour à la disposition ordinaire.
- Arêtes : le sens du dessin, de haut en bas ou de gauche à droite ; la longueur minimale des câbles ; l’inversion d’un câble, choisi dans une liste, qui le dessine dans l’autre sens et réorganise ainsi le graphe ; les lignes droites ou courbes.
- Étiquettes : la distance entre les icônes et les numéros de ports inscrits au bout des câbles.
Les réglages sont enregistrés avec le projet.
Le réseau se modifie pendant qu’il tourne
Comme sur du matériel, un câble se débranche et se rebranche ailleurs sans qu’on éteigne les machines, et un composant s’ajoute ou se retire pendant que le reste du réseau fonctionne. Chaque câble et chaque port peut en outre recevoir des défauts, dans chaque sens : un pourcentage de trames perdues, dupliquées ou aux bits inversés, et un délai compris entre un minimum et un maximum.
Les machines
- Les logiciels d’un système GNU/Linux y tournent comme ailleurs. Les applications graphiques, Wireshark par exemple, s’affichent sur l’écran de l’hôte.
- Les adresses saisies dans l’onglet Interfaces sont appliquées par la machine à son démarrage. Une configuration de démarrage, c’est-à-dire un script, peut aussi s’y exécuter quand la distribution le permet.
- Les disques sont en copie sur écriture : chaque machine n’enregistre que ses modifications par rapport à son image d’origine. Un projet enregistre ainsi l’état de toutes ses machines dans un fichier de taille raisonnable, et l’historique des états permet de reprendre une machine là où elle en était.
Pour l’enseignant
-
Le pilotage par script. Une interface de pilotage (option
--control-socket) permet de commander Marionnet depuis un script, ou par une IA, pendant que sa fenêtre reste ouverte et utilisable. On s’en sert pour préparer un TP puis, après la séance, pour vérifier et noter le travail de chaque étudiant. -
Le mode examen. Il range dans le projet quatre documents par machine : un relevé de son état final, l’historique horodaté des commandes tapées, la console du système et l’enregistrement du terminal, où figurent les commandes et ce qu’elles ont affiché.
Tout est fait pour qu’une IA puisse corriger les copies : le projet est enregistré en JSON, les documents sont du texte, et un skill livré avec Marionnet guide l’IA dans la correction et l’annotation. L’enseignant n’a qu’à énoncer ses assertions, c’est-à-dire ce qui doit être vrai à la fin de la séance : « m1 est relié au premier port du switch », « le routage est activé sur r1 », « m1 atteint m2 ». L’IA les traduit en un corrigé que l’outil
mrn-verifyvérifie sur chaque copie, assertion par assertion. Reste à lui dire comment noter sur la base de ces verdicts : ce que vaut chaque assertion, et ce qu’on fait de celle qui n’a pas pu être vérifiée, parce qu’une machine n’a pas été arrêtée proprement, par exemple. Pour chaque échec, l’IA cite la ligne du terminal qui le montre.
L’installation
Marionnet s’installe par le gestionnaire de paquets de la distribution, depuis des dépôts signés
(apt pour Debian et Ubuntu, dnf pour Fedora et la famille RHEL, zypper pour openSUSE). Sur
les autres distributions, une archive précompilée s’installe par un script. Les deux grosses
images de systèmes invités, Debian wheezy, l’image des versions précédentes, et trixie, l’actuelle
(Debian 7 et 13), se choisissent ensuite dans une liste, par
la commande marionnet-get-images. Enfin, les privilèges dont certains composants ont besoin
sont accordés par l’administrateur de la machine au moyen d’une règle sudoers, un bloc à la fois :
un bloc de base, puis un pour le NAT bridge et un pour le LAN bridge.
L’interface existe en treize langues : l’anglais d’origine et douze traductions. Ce qui a changé en 2026 est détaillé dans les Nouveautés 2026.





