Skip to content

dainok/unetlab

Repository files navigation

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.

LICENSE

- UNetLab is licensed under the GNU GPLv3 until 1.0.2-1 (https://github.com/dainok/unetlab).
- UNetLab is licensed under the BSD-new license from 1.0.2-2 (https://github.com/dainok/unetlab).
- Dynamips is licensed under the GNU GPLv2 (https://github.com/GNS3/dynamips/blob/v0.2.10/README).
- IOUTools is licensed under the GNU GPLv2 (https://github.com/ehlers/IOUtools/blob/master/LICENSE).
- Linux is licensed under the GNU GPLv2 (https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/COPYING?id=refs/tags/v4.0).
- QEMU is licensed under the GNU GPLv2 (http://wiki.qemu.org/License).
- Slim Framework is provided "AS IS" (https://github.com/slimphp/Slim/blob/master/LICENSE).
- EJS - JavaScript Templates is licensed under the MIT License "AS IS" (https://code.google.com/archive/p/embeddedjavascript/ and https://opensource.org/licenses/mit-license.php)

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 Makefile.target: 
    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 (http://lists.linuxfoundation.org/pipermail/bridge/2015-January/009291.html).
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
make