Le projet Marionnet

Marionnet est un laboratoire de réseau virtuel : il permet aux utilisateurs de définir, configurer et lancer des réseaux complexes de machines sans besoin de support physique.

Un seul ordinateur équipé d'un système GNU/Linux est suffisant pour simuler un réseau Ethernet constitué d'ordinateurs, concentrateurs (hub), commutateurs (switch), routeurs, câbles droits et croisés. D'autres composants permettent éventuellement de relier le monde virtuel avec le réseau réel, si ce dernier est accessible par la machine hôte.

plan tp6

Historique

Marionnet est né en avril 2005 comme simple interface textuelle à l'ensemble de scripts Netkit, basés eux mêmes sur la technologie de virtualisation User Mode Linux. Dès cette première version, Marionnet a été écrit dans le langage de programmation fonctionnel OCaml par Jean-Vincent Loddo de L'Université Paris 13 pour ses propres enseignements.
Le code a été complètement réécrit en septembre 2005 pour équiper le logiciel d'une interface graphique tout en éliminant la dépendance à Netkit. Dès cette version, le réseau virtuel défini par l'utilisateur est représenté automatiquement au centre de la fenêtre du logiciel, pour éviter que l'utilisateur dessine lui même la topologie du réseau. Cette fonctionnalité est réalisée grâce à l'outil dot de la suite  graphviz. L'architecture du logiciel a été ensuite étendue par Luca Saiu, qui a rejoint le projet en 2007, en particulier pour permettre une reconfiguration dynamique ("à chaud") du réseau. Le logiciel est couramment utilisé dans plusieurs universités en France et à l'étranger.

Etat actuel
Marionnet est aujourd'hui dans un état assez stable et est utilisé avec succès dans plusieurs université à travers le monde, afin d'enseigner les réseaux. Actuellement le développement de Marionnet est focalisé sur la facilité d'utilisation de l'application avec un accent particulier sur la documentation. L'application est désormais international à travers GNU Gettext.
Jusqu'à maintenant Marionnet a été présenté à deux conférences internationales sur la science des ordinateurs, plusieurs évènement Français et au FOSDEM.
En 2010, pour alléger notre charge d'administration système, nous avons déplacé nos ressources de développement vers Launchpad.
À l'avenir, nous prévoyons d'inclure des paquets offciels pour Marionnet dans la plupart des distribution.

 

Conception

Sur la machine hôte GNU/Linux, la simulation des machines est réalisée grâce à la technologie User Mode Linux qui permet d'exécuter plusieurs noyau Linux dans l'espace utilisateur en tant que processus normal.
Le projet VDE - Virtual Distributed Ethernet permet l'interconnexion de machines UML dans un réseau virtuel, son rôle est de simuler des câbles, des hubs et switchs permettant aussi d'introduire des perturbations dans une communication.
Sur ce réseau simulé, Marionnet agit en tant que gérant mais aussi en tant qu'interface graphique.
Marionnet est un exemple d'application complexe écrite dans un langage de fonction, et utilisant dans techniques de programmation avancées.

Fonctionnalités

  • Reconfiguration dynamique des réseaux.
  • Tout type de logiciel GNU/Linux peut être exécuté sur les machines virtuelles.
  • Exploitation du serveur graphique (X) de l'hôte pour lancer les applications graphiques (wireshark...) sur les machines virtuelles.
  • Technologie Copy-on-write pour sauvegarder l'état des machines du réseau virtuel dans un fichier projet de taille raisonnable.
  • Deux systèmes de passerelle ("bridge" et "gateway") permettant de connecter le réseau virtuel au réseau réél de la machine hôte, donc à Internet.
  • Une interface graphique intuitive avec une représentation du réseau générée et mise à jour automatiquement.

Performance

Marionnet a montré de bonnes performances avec des réseaux complexes (~15 machines) même sur des machines relativement vieille, tout en restant très réactif. Son principal soucis est l'utilisation du disque mais ceci dépend surtout des destribution que vous choisissez; "guignol", tout comme l'ancienne "pinocchio", sont des distributions personnalisées qui ont été développées pour satisfaire les besoins courants.

Utilisation

Le principal objectif de Marionnet est d'enseigner les réseaux informatiques dans les laboratoires universitaires, mais il peut aussi être un précieux outil pour les lycées. Malgré le fait que Marionnet est orienté plutôt vers l'education, il peut aussi être utilisé pour simuler des réseaux à des fins de tests ou de développement. Il est facile à utiliser, rapide même avec des configuration complexe et la possibilité de revenir en arrière sur les changements effectués sur les fichiers systèmes des machines le rend souple