UML with Quagga
Contents
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
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.