Network Emulator for Mobile Universes


NEmu - Network Emulator For Mobile Universes

What is it?

NEmu (Network Emulator for Mobile Universes) is a distributed virtual network environment which fully runs without any administrative rights. It manages fleet of QEMU virtual machines hosted on one or several physical hosts in order to build a virtual topology. It provides a self-script (launcher and interpreter) and a python module for easily creating heterogeneous, dynamic, mobile and distributed virtual networks.

NEmu is not python-nemu.


Table of contents

  1. What is it?
  2. Table of contents
  3. For who?
  4. Concepts
  5. Use Case
  6. License
  7. Publications & Talks


For who?

NEmu is designed for anybody who wants to run native applications on a customized network without having access to a physical wide distributed infrastructure. NEmu can be useful for many instances:



NEmu is based on several concepts:

Flexibility and Heterogeneity

Customized design of the network topology, with custom properties and configurations of each virtual node (OS, hardware, etc.) and each virtual link (bandwidth, delay, bit error rate, max burst, etc.)


Virtual nodes can be hosted by different physical hosts.


Different virtual networks can lay on the same infrastructure without impacting each other. Also, a virtual network is not aware of being virtualized.


Faults in a virtual network do not affect another one. It also does not have any impact on the real physical infrastructure.


Virtual networks and the physical infrastructure are completely independent. It is possible to merge a virtual topology built on an infrastructure to another one.

Legacy support

Emulation of various former and present devices and architectures.


Optional services to simplify the use of the virtual network (DHCP, DNS, NFS, HTTP, SSH, NTP, RIP, OSPF, NAT, QoS, Firewall, etc.).


Fully execution without any administrative rights on the physical infrastructure.


A virtual entity can join or leave the topology dynamically without perturbing the overall virtual network.


A mobility model can be generated in order to virtually and autonomously move several entities over the space and the time, and thus modify the network connectivity.

Community aspect

A virtual network can be composed by several virtual sub-networks provided by different people from different locations.


Use case

Let us consider the following network:


The configuration of this network in NEmu would be:

InitNemu() # Creates a new session

VSwitch('switch', niface=3) # New switch with 3 ports
VSlirp('slirp') # New external connection (Internet)

VHost('a', hds=[VFs('debian.img')], nics=[VNic()]) # New host with 1 NIC
VHost('b', hds=[VFs('windows.img')], nics=[VNic()]) # New host with 1 NIC
VHost('c', hds=[VFs('freebsd.img')], nics=[VNic(), VNic()]) # New host with 2 NICs

Link('a', 'switch:0') # Connects a to switch interface 0
Link('b', 'switch:1') # Connects b to switch interface 1
Link('c:0', 'switch:3') # Connects c to switch interface 2
Link('c:1', 'slirp') # Connects c to the real world

StartNemu() # Starts the virtual network



NEmu is a free software under the LGPL v3 License.
NEmu is written and maintained by Vincent Autefage.

NEmu uses some third party components in order to build virtual networks:


Publications & Talks