This is the first of many posts about the IMUNES network emulation tool which will cover in depth topics and news about the tool. New posts will be submitted as we implement new features and explain how IMUNES works internally.

IMUNES is an efficient and fast IP network emulator that can run 100s and even 1000s of virtual network nodes on one physical machine. Every virtual node has its own copy of the network stack, file system and separate process space for running applications. It provides a clean, consistent and repeatable environment for testbeds, laboratory environments for learning, honeypots and others.

Installation

The entire installation process on FreeBSD and Linux is covered on the front page of our main Github repository.

The main prerequisites for fetching and installing IMUNES are git and GNU make. Currently two operating systems are supported:

  • FreeBSD (RELEASE > 9.3) and
  • various Linux flavors (recommended kernel > 3.19 for reasonable performance).

IMUNES is written in Tcl/Tk version 8.6 and the GUI and frontend is OS independent and can run on any supported platform. The main requirements for running the IMUNES GUI and frontend are the following:

  • tcl 8.6
  • tk 8.6
  • tcllib

Additional packages needed for full GUI functionality are the following:

  • wireshark
  • socat
  • ImageMagick
  • xterm

For executing IMUNES experiments (topologies) additional support is needed from the operating system:

  • On FreeBSD the options VIMAGE option must be included in the kernel configuration that is currently used.

  • On Linux IMUNES requires Docker (version 1.6 or greater), OpenvSwitch and nsenter to work properly.

After all prerequisites are available, the installation is performed as follows:

git clone https://github.com/imunes/imunes.git
cd imunes
make install

License

IMUNES is licensed under the very permissive and liberal BSD license and is copyrighted as a product of the University of Zagreb, Croatia as stated here. IMUNES was developed at the Faculty of Electrical Engineering and Computing.

The license enables usage of IMUNES and all its components for private purposes and does not require adding developed improvements back to the IMUNES repository. This development model has been recognized and in part supported by the following organizations:

  • Ericsson Nikola Tesla Zagreb
  • Boeing Defense, Space and Security
  • FreeBSD / NLnet Foundation
  • ICSI / University California, Berkeley