UML with Quagga

From Exterior Memory
Jump to: navigation, search

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


Installing Busybox


Installing VNE

Download from

To install in the Pyhton site-packages directory:

python 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 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.