Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
UNetLab is a new generation software for networking lab. It can be considered the next major version of iou-web, but the software has been rewritten from scratch. The major advantage over GNS3 and iou-web itself is about multi-hypervisor support within a single entity. UNetLab allows to design labs using IOU, Dynamips and QEMU nodes without dealing with multi virtual machines: everything run inside a UNetLab host, and a lab is a single file including all information needed.


- UNetLab is licensed under the GNU GPLv3 until 1.0.2-1 (
- UNetLab is licensed under the BSD-new license from 1.0.2-2 (
- Dynamips is licensed under the GNU GPLv2 (
- IOUTools is licensed under the GNU GPLv2 (
- Linux is licensed under the GNU GPLv2 (
- QEMU is licensed under the GNU GPLv2 (
- Slim Framework is provided "AS IS" (
- EJS - JavaScript Templates is licensed under the MIT License "AS IS" ( and

UNetLab includes QEMU 2.4.0 (default), 2.0.2 (for nsvpx and win templates) and QEMU 1.3.1 (for IPS) configured and compiled with the following line:
./configure --prefix=/opt/qemu --target-list="i386-softmmu x86_64-softmmu" --enable-sdl --enable-vnc --disable-xen --enable-curses --enable-kvm --enable-uuid --audio-drv-list="alsa oss"

For QEMU 0.13, must:
- manually add to Makefile and 
    LIBS+=-lz -lrt -lm
- add to qemu-common.h the following lines:
    #define BIT(n) (1 << (n))
    #define BITS(n, m) (((0xffffffffU << (31 - n)) >> (31 - n + m)) << m)

QEMU for ESXi has been modified. See the patch for more information.

Kernel has been patched and recompiled to allow LLDP and LACP frames been forwarded by linux bridges. Patch has been provided by Bernhard Thaler (
Here the commands:

# apt-get upgrade linux-generic-lts-utopic linux-headers-generic-lts-utopic linux-image-generic-lts-utopic
# apt-get build-dep linux-image-$(uname -r) fakeroot libncurses5-dev
# apt-get source linux-image-$(uname -r)
# cd /usr/src/linux-lts-utopic-3.16.0
# patch -p0 < /usr/src/unetlab/patch/linux-lts-utopic-3.16.0.patch

# cp -a /usr/share/kernel-package/examples/etc/kernel/postinst.d/force-build-link /etc/kernel/postinst.d/
# cp -a /usr/share/kernel-package/examples/etc/kernel/postrm.d/force-build-link /etc/kernel/postrm.d/
# make-kpkg clean
# fakeroot make-kpkg -j4 --initrd --append-to-version=-unetlab kernel-image kernel-headers

# chmod a+x debian/scripts/*
# chmod a+x debian/scripts/misc/*
# fakeroot debian/rules clean
# fakeroot debian/rules editconfigs
# fakeroot debian/rules binary-headers binary-generic

nsenter is compiled from util-linux-2.27-rc1.tar.gz:
./configure --enable-static