UML with Quagga

Virtual Network Experiments
In order to do network experiments on a single machine, creating virtual Linux hosts that behave as routers, I use:
 * User Mode Linux, which runs virtualized Linux instance within an other Linux instance.
 * Busybox POSIX tools for Linux that only require very little memory and disk space
 * Virtual Network Emulator (VNE), a user-friendly interface to and configuration tool for UML.
 * Quagga, the routing software.

A more common to VNE is VNUML. I simply use VNE because I have easier access to its source code.

Installing UML
See http://user-mode-linux.sourceforge.net/

Installing Busybox
See http://www.busybox.net/

Installing VNE
Download from http://ndl.uva.netherlight.nl/~vne/downloads/

To install in the Pyhton site-packages directory:

python setup.py install

Alternatively, you can install it by making a symlink to the downloaded directory. This allows you to change the files (useful for developers):

python setup.py develop

Installing Quagga
Gegeven een uml file systeem op /home/uml/umlfs

Compile Quagga with ./configure --prefix=/usr --enable-user=root --enable-group=root \ --enable-static --disable-shared

Since I want to install it in the "jail root" at /home/uml/umlfs, I simply copy the files: cd ~/quagga-0.98.6/ cp bgpd/bgpd    ~uml/umlfs-quagga/usr/sbin/ cp ospfd/ospfd  ~uml/umlfs-quagga/usr/sbin/ cp ospf6d/ospf6d ~uml/umlfs-quagga/usr/sbin/ cp ripd/ripd    ~uml/umlfs-quagga/usr/sbin/ cp ripngd/ripngd ~uml/umlfs-quagga/usr/sbin/

Despite that I did not install the libraries such as libospf.a, this works fine (due to the static linking).

To configure Quagga, see BGP Configuration.