Marionnet

Last updated
Marionnet
Original author(s) Jean-Vincent Loddo, Luca Saiu
Developer(s) Jean-Vincent Loddo, Luca Saiu
Stable release
0.94.0 / January 31, 2018;6 years ago (2018-01-31) [1]
Written in OCaml
Operating system Linux
Platform x86, x86 64
Size 3.3 MB [1]
Type Network virtualization
License GPLv2+
Website www.marionnet.org

Marionnet is a virtual network laboratory: it allows users to define, configure and run complex computer networks without any need for physical setup. Only a single, possibly even non-networked Linux host machine is required to simulate a whole Ethernet network complete with computers, routers, hubs, switches, cables, and more Support is also provided for integrating the virtual network with the physical host network.

Contents

History

Marionnet was born in April 2005 as a simple textual interface to Netkit, written in OCaml by Jean-Vincent Loddo at the Paris 13 University for his own networking course.

The code has since been completely rewritten and redesigned in September 2005, in order to remove the dependency from Netkit and to ease the construction of a graphical interface, partly built on DOT. The architecture was further extended and the system made more general when Luca Saiu joined the project in 2007, contributing in particular to the dynamic reconfiguration aspects.

The system is now in active use in several universities in Metropolitan France [2] [3] and other countries. [4]

Current development

Marionnet has reached a fairly stable state and is being successfully used for teaching networks in several universities around the world. The current development is centered around making the system easier to use for the average end user, with a particular emphasis on documentation. Internationalization is on the way (mostly in the marionnet_i18n branch) through GNU Gettext.

So far Marionnet has been presented at two international Computer Science conferences, many French events [5] and at FOSDEM. [6]

Design

Marionnet design. Marionnet design layers.svg
Marionnet design.

On top of a Linux host, the emulation of guest machines is achieved through User Mode Linux technology that allows to run many Linux kernels in user space as regular processes.

VDE - Virtual Distributed Ethernet project is responsible of linking together Uml machines in a virtual network, its purpose is to emulate cable, hub and switch devices allowing also to introduce perturbations in the communication.

On top of this raw emulated network Marionnet acts as a coherent manager and as a GUI.

Marionnet is an example of a complex concurrent application written in a functional language, using relatively advanced programming techniques. [7]

Features

Performance

Marionnet has showed good performance with complex networks (~15 machines) even on relatively old machines, remaining very responsive. The main concern is disk usage but that largely depends on the distribution of choice; pinocchio is the custom distro that was developed to meet average needs.

Uses

The main goal of Marionnet is the teaching of computers networks in university laboratories, [8] although it could be a valuable tool also for high schools. Despite being teaching-oriented Marionnet may be used to emulate networks for test or development purposes. [9] It is quite easy to set up, fast even with complicated configurations and the possibility of reverting filesystem changes on virtual machines makes it quite flexible.

Simulation of a complex network in Marionnet. Marionnet lets you use devices such as hubs, switches and routers, making possible the construction of a comprehensive training environment in computer networks. Complex network marionnet.png
Simulation of a complex network in Marionnet. Marionnet lets you use devices such as hubs, switches and routers, making possible the construction of a comprehensive training environment in computer networks.

See also

Related Research Articles

<span class="mw-page-title-main">Graphical user interface</span> User interface allowing interaction through graphical icons and visual indicators

A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">Terminal emulator</span> Program that emulates a video terminal

A terminal emulator, or terminal application, is a computer program that emulates a video terminal within some other display architecture. Though typically synonymous with a shell or text terminal, the term terminal covers all remote terminals, including graphical interfaces. A terminal emulator inside a graphical user interface is often called a terminal window.

<span class="mw-page-title-main">Bochs</span>

Bochs is a portable x86-32 and x86-64 IBM PC compatible emulator and debugger mostly written in C++ and distributed as free software under the GNU Lesser General Public License. It supports emulation of the processor(s), memory, disks, display, Ethernet, BIOS and common hardware peripherals of PCs.

PearPC is an architecture-independent PowerPC platform emulator capable of running many PowerPC operating systems, including pre-Intel versions of Mac OS X, Darwin and Linux. It is released under the terms of the GNU General Public License (GPL). It can be executed on Microsoft Windows, Linux, FreeBSD and other systems based on POSIX-X11. The first official release was made on May 10, 2004.

<span class="mw-page-title-main">QEMU</span> Free virtualization and emulation software

QEMU is a free and open-source emulator. It emulates a computer's processor through dynamic binary translation and provides a set of different hardware and device models for the machine, enabling it to run a variety of guest operating systems. It can interoperate with Kernel-based Virtual Machine (KVM) to run virtual machines at near-native speed. QEMU can also do emulation for user-level processes, allowing applications compiled for one architecture to run on another.

<span class="mw-page-title-main">NetworkManager</span> Software

NetworkManager is a daemon that sits on top of libudev and other Linux kernel interfaces and provides a high-level interface for the configuration of the network interfaces.

In computer networking, TUN and TAP are kernel virtual network devices. Being network devices supported entirely in software, they differ from ordinary network devices which are backed by physical network adapters.

<span class="mw-page-title-main">Multiseat configuration</span> Single computer that supports multiple local users at the same time

A multiseat, multi-station or multiterminal system is a single computer which supports multiple independent local users at the same time.

<span class="mw-page-title-main">Kernel-based Virtual Machine</span> Virtualization module in the Linux kernel

Kernel-based Virtual Machine (KVM) is a free and open-source virtualization module in the Linux kernel that allows the kernel to function as a hypervisor. It was merged into the mainline Linux kernel in version 2.6.20, which was released on February 5, 2007. KVM requires a processor with hardware virtualization extensions, such as Intel VT or AMD-V. KVM has also been ported to other operating systems such as FreeBSD and illumos in the form of loadable kernel modules.

<span class="mw-page-title-main">VirtualBox</span> Open-source x86 virtualization application

Oracle VM VirtualBox is a hosted hypervisor for x86 virtualization developed by Oracle Corporation. VirtualBox was originally created by InnoTek Systemberatung GmbH, which was acquired by Sun Microsystems in 2008, which was in turn acquired by Oracle in 2010.

In computing, network virtualization is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network. Network virtualization involves platform virtualization, often combined with resource virtualization.

In computing, virtualization or virtualisation in British English is the act of creating a virtual version of something at the same abstraction level, including virtual computer hardware platforms, storage devices, and computer network resources.

<span class="mw-page-title-main">Emulator</span> System allowing a device to imitate another

In computing, an emulator is hardware or software that enables one computer system to behave like another computer system. An emulator typically enables the host system to run software or use peripheral devices designed for the guest system. Emulation refers to the ability of a computer program in an electronic device to emulate another program or device.

nanoHUB

nanoHUB.org is a science and engineering gateway comprising community-contributed resources and geared toward education, professional networking, and interactive simulation tools for nanotechnology. Funded by the United States National Science Foundation (NSF), it is a product of the Network for Computational Nanotechnology (NCN). NCN supports research efforts in nanoelectronics; nanomaterials; nanoelectromechanical systems (NEMS); nanofluidics; nanomedicine, nanobiology; and nanophotonics.

A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions inside a single terminal display, terminal emulator window, PC/workstation system console, or remote login session, or to detach and reattach sessions from a terminal. It is useful for dealing with multiple programs from a command line interface, and for separating programs from the session of the Unix shell that started the program, particularly so a remote process continues running even when the user is disconnected.

<span class="mw-page-title-main">SoftEther VPN</span> Open-source VPN client and server software

SoftEther VPN is free open-source, cross-platform, multi-protocol VPN client and VPN server software, developed as part of Daiyuu Nobori's master's thesis research at the University of Tsukuba. VPN protocols such as SSL VPN, L2TP/IPsec, OpenVPN, and Microsoft Secure Socket Tunneling Protocol are provided in a single VPN server. It was released using the GPLv2 license on January 4, 2014. The license was switched to Apache License 2.0 on January 21, 2019.

<span class="mw-page-title-main">Windows Subsystem for Linux</span> Compatibility layer for running Linux binary executables natively on Windows

Windows Subsystem for Linux (WSL) is a feature of Windows that allows developers to run a Linux environment without the need for a separate virtual machine or dual booting. There are two versions of WSL: WSL 1 and WSL 2. WSL 1 was first released on August 2, 2016, and acts as a compatibility layer for running Linux binary executables by implementing Linux system calls on the Windows kernel. It is available on Windows 10, Windows 10 LTSB/LTSC, Windows 11, Windows Server 2016, Windows Server 2019 and Windows Server 2022.

<span class="mw-page-title-main">Genode</span> Free and open-source software operating system

Genode is a free and open-source software operating system (OS) framework consisting of a microkernel abstraction layer and a set of user space components. The framework is notable as one of the few open-source operating systems not derived from a proprietary OS, such as Unix. The characteristic design philosophy is that a small trusted computing base is of primary concern in a security-oriented OS.

Enigma2, the second generation of Enigma software, is an application used in Linux-based Digital Video Broadcasting receivers or TV set-top boxes and Internet Protocol television receivers. It creates a graphical user interface to control the said devices using a remote control and provides features such as tuning available satellite transponders, cable channels and terrestrial television transmitters or accessing material via Internet Protocol television (IPTV), watching a TV program or listening to radio, time shifting, Digital video recorder, streaming media programs to other devices, etc. Other features are available through plugins – for example Electronic program guide (EPG), Hybrid Broadcast Broadband TV (HbbTV), access to TV archives and movie databases, playback of multimedia files, viewing photos, etc.

References

  1. 1 2 "marionnet in Launchpad". launchpad.net. Retrieved 2021-04-15.
  2. A practical exercise with Marionnet Archived 2008-12-30 at the Wayback Machine : Cédric Messiant, Paris 13 University (in French)
  3. Marionnet used at the IUT de Bézier Archived 2011-07-21 at the Wayback Machine , Université Montpellier 2.
  4. The University of La Reunion IUT mentions its adoption of Marionnet. Archived 2008-10-15 at the Wayback Machine
  5. "Some Marionnet presentations". Archived from the original on 2009-05-19. Retrieved 2009-02-20.
  6. FOSDEM talk about Marionnet. Archived 2009-02-28 at the Wayback Machine
  7. Status Report: Marionnet --- How to Implement a Virtual Network Laboratory in Six Months and Be Happy Archived 2011-01-25 at the Wayback Machine : ACM SIGPLAN Workshop on ML, Freiburg (Germany), 2007.
  8. Marionnet : un logiciel graphique pour l’apprentissage et l’enseignement des réseaux locaux d’ordinateurs Archived 2011-01-25 at the Wayback Machine : Premier Workshop pédagogique “Réseaux & Télécoms”, Saint-Pierre de la Réunion (France), 2007. In French.
  9. Marionnet: a virtual network laboratory and simulation tool Archived 2011-01-25 at the Wayback Machine : SimulationWorks, Marseille (France), 2008.