Virtual Network User Mode Linux

Basta ya     Welcome to VNUML homepage

VNUML (Virtual Network User Mode Linux) is an open-source general purpose virtualization tool designed to quickly define and test complex network simulation scenarios based on the great User Mode Linux (UML) virtualization software. It has been initially developed in the context of Euro6IX research project to simulate IPv6 IX scenarios based on Linux and zebra/quagga routing daemons (see our article on IEEE Comms. Magazine). However, it is a useful tool that can be used to simulate general Linux based network scenarios.

VNUML is aimed to help in testing network applications and services over complex testbeds made of several nodes (even tenths) and networks inside one Linux machine, without involving the investment and management complexity needed to create them using real equipment.

VNUML tool is made of two main componets: the VNUML language used for describing simulations in XML; and the interpreter of the language (vnuml command), that builds and manages the simulation, hidding all UML complex details to the user.

VNUML has been developed by the Telematics Engineering Department (DIT) of the Technical University of Madrid (UPM) in Spain.

DIT logo

This software is released under GNU Public Licence. It has been developed with the partial support from the European Commission under the Euro6IX IST research project.

Euro6IX logo

Since July 2004, part of the VNUML development is host at SourceForge.net. Visit the VNUML site at SourceForge.



SourceForge.net Logo
Documentation

VNUML documentation is made of the following documents (updated to 1.7 ):

If you come to VNUML for the first time, you should start with the tutorial to get an overview about VNUML philosophy and fetaures. A FAQ is also provided.

If you want to know how VNUML works internally or plan to modify it, vnumlparser.pl code itself it a good documentation source for developers. Please, let us know about any modifications you do, in order to include them in future versions.

IMPORTANT NOTE: documentation (specially the Tutorial) has been written considering VNUML installed VNUML with the .deb package. Therefore, /usr/share and /var/ are used as prefix in file asbolute pathnames. If you have installed from .tar.gz, you have to use /usr/local/share and /var/local. However, note that installation scripts in the .tar.gz are smart enough to set the right ubications in the examples in /usr/local/share examples.

Old 1.6 documentation: tutorial, installation, user manual, language reference.

Old 1.5 documentation: tutorial, installation, user manual, language reference.

Old 1.4 documentation: tutorial, installation, user manual, language reference.

Old 1.3 documentation: tutorial, installation, user manual, language reference.


Download

Note: Please, be aware that this is beta software. It has been developed and mainly tested over Suse 8.1/8.2/9.0/9.1/9.3/10.0 Linux distribution, although it should work (maybe with minor modifications) over other Linux distributions (successfull tests over Red Hat 7.3/8.0/9.0 and FC4, Slackware 8.1, Mandrake 10.0, Ubuntu 6.02 and Debian 3.0/3.1 have been already done). Let us know if you test VNUML over other distributions to include the information here.

About VNUML versions:

  • VNUML language (in fact the DTD for the VNUML files) is identified by two version numbers, for example, VNUML DTD 1.2.
  • VNUML parser is identified by three version numbers. The first two numbers refers to the VNUML DTD version the parser works with. For example, vnumlparser.pl 1.2.1 works with VNUML DTD 1.2 files.
  • The first public releases were VNUML DTD 1.2 and vnumlparser.pl 1.2.1.

You can also get old VNUML releases, but you should use always the newest stable release.


VNUML Current Release
VNUML releases are hosted at SourceForge. Here is the complete list.

Current stable release is 1.7.3 (21/11/2006).

Current testing release is 1.8.0test2-1 (23/01/2007). new

If you are using a .deb based distro (like Debian or Ubuntu) you can install VNUML using APT. Just add the following to your sources.list file: deb http://jungla.dit.upm.es/~vnuml/debian binary/, update and install 'vnuml' package. Details here.

Testing releases use a different APT repository:
deb http://jungla.dit.upm.es/~vnuml/debian-testing binary/

UML Kernels
UML kernels are hosted at SourceForge. Here is the complete list.

Current UML kernel is linux-2.6.16.27-bs2-xt-1m (24/10/2006).

Root filesystems
Root Filesystems are hosted at SourceForge. Here is the complete list.

Current root_fs is 0.4.1 (24/10/2006).

The root password for the filesystems is: xxxx

Live CD
VNUML Live CD is hosted at SourceForge.

First version of vnuml-livecd is 1.0 (24/11/2005). You can see the release notes here.



Examples

Here you can find some VNUML utilization examples (more to be added in short term), that can be used by you as starting point for your particular scenarios. Please, contact us if you have any interesting examples that could be included here.

All these examples should work with the standard installation paths of the .deb VNUL package (in particular, the filesystem /usr/share/vnuml/filesystems/root_fs_tutorial and the UML kernel /usr/share/vnuml/kernels/linux should exists) and the lastes stable vnuml, root_fs and linux-um releases. If you installed from source .tar.gz, use /usr/local/share as prefix instead.

If some of the examples doesn't work for you host enviroment review the name and location of the values on <filesystem>, <kernel> or <filetree> tags. In any case, please notify us the problem.

VNUML Examples
Simple
1.7
The most simple VNUML example: just a virtual machine without network interfaces. Useful to test and tune kernels and root filesystems before using them in more complex scenarios.
Basic
(formerly named Tutorial)
1.7
A simple VNUML example that emulates five nodes interconnected through four emulated networks and maintaining connection with external networks through the host machine.
VLANs
1.7
A example of VNUML VLANs support, showing a scenario with three concurrent simulations with one virtual machine connected to a diferent VLAN throught the same host physical interface.
DNS
1.7
This example implements a complete DNS hierarchy made of six name servers under a fictitious .e6 top level domain. It is an interesting example to learn and experiment with with DNS and the configuration of the widest used DNS server implementation: bind.
Site multihoming on-line demo
-
This is an on-line VNUML demo accessible through a web server that shows the modifications we made to USAGI IPv6 stack to include multihoming capabilities based on source address selection.
Update Root Filesystem
1.7
This is a simple example useful to install or update applications inside a UML root filesystem. It creates a virtual machine with external network access by means of a subinterface of the host machine network interface. Once started you can use typical applications like dselect in Debian to update the filesystem.
OSPF Network Laboratory
1.7
A complex network enviroment using the OSPF dynamic routing protocol to configure a backbone and several sites.
Two Hosts
1.7
This example shows how to run two simulations in two separate hosts, with interaction between them. Thanks to Jasmy Azry B. Johari, from Telekom Malaysia.
BGP Networking Laboratory
1.7
This scenario provides an example of how VNUML can be used for testing routing daemons, and specifically bgpd, which is the BGP implementation included with Quagga Routing Suite.


VNUML Live CD

In order to easily test VNUML without having to install it in your computer, we have created VNUML-LIVECD: a knoppix based live cd that includes the VNUML tool, as well as an UML kernel, a rootfilesystem and some examples to test.

VNUML-LIVECD includes a skas3 patched host kernel to improve the efficiency. See the release notes for more details about VNUML-LIVECD.

VNUML-LIVECD can be tested without restarting your machine using the recently released free VMware Player. In order to do that, just download the vnuml-livecd-X.X-vmplayer.zip file from VNUML SourceForge site and follow the simple instructions in it. Similar information about how to execute VNUML-LIVECD over other virtualization alternatives like Qemu will come soon.

See other VNUML based LIVE CD initiatives:

  • VIMINAL, a Gentoo based LiveCD including VNUML developed by Jacques Landru.

Papers

As part of our research activity, we have produced several VNUML related papers and publications:
  • Fermín Galán, David Fernández, "Use of VNUML in Virtual Honeynets Deployment", IX Reunión Española sobre Criptología y Seguridad de la Información (RECSI), Barcelona (Spain), September 2006. ISBN: 84-9788-502-3.
  • Fermín Galán, Emilio García, Carlos Chávarri, Miguel Gómez, David Fernández, "Design and Implementation of an IP Multimedia Subsystem (IMS) Emulator Using Virtualization Techniques", 13th HP OpenView University Association (HP-OVUA) Workshop, Nice (France), May 2006. ISBN: 3-00-018780-4.
  • David Fernández, F. Javier Ruiz Piñar, Fermín Galán, Vicente Burillo, Tomás de Miguel, "Uso de técnicas de virtualización para mejorar la docencia en laboratorios de redes de comunicaciones", V Jornadas de Ingeniería Telemática (JITEL 2005), Vigo (Spain), September 2005. ISBN: 84-8408-346-2.
  • Fermín Galán, David Fernández, Javier Rúiz, Omar Walid, Tomás de Miguel. "A Virtualization Tool in Computer Network Laboratories", 5th International Conference on Information Technology Based Higher Education and Training (ITHET'04), Instanbul, May 2004. ISBN: 0-7803-8596-9. IEEE Catalog Number: 04EX898.
  • Fermín Galán, David Fernández. "VNUML: Una herramienta de virtualización de redes basada en Software Libre". (in Spanish) Open Software World Conference, Málaga (Spain), February 2004.
  • David Fernández, Fermín Galán, Tomás de Miguel. "Study and Emulation of IPv6 Internet Exchange (IX) based Addressing Models". IEEE Communications Magazine, vol. 42(1), pags. 105-112, January 2004. ISSN: 0163-6804.

Contact

For any comment, suggestion, doubt or problem report related to VNUML, you can send a message to the vnuml-users list (remember to change the "at" in the address by an "@"). You can subscribe to the list or just have a look at the archived messages.

There is also a vnuml-devel list to discuss development issues. Here is the archive.

If you want to contact directly VNUML development team, you can use the following address vnuml at dit.upm.es.


VNUML Team

VNUML has been initially developed in the context of the participation of the Telematics Engineering Department (DIT) of the Technical University of Madrid (UPM) in the Euro6IX research project.

VNUML programs and documentation have been created by Fermín Galán and David Fernández. The VNUML installer is a contribution by Tony Prug. Casey T. Deccio has developed a lot of outstanding improvements for the 1.6.0 release. Esteban Martín and David Fernández have developed the knoppix based vnuml-liveCD.

Besides, several people has contributed to the project with good ideas, examples or helping to test and debug the tool: Jorge Lopez, Maria Jose Perea, Tomas de Miguel, Jose Luis Rubio and Antonio Tapiador from UPM; and Gabriel Lopez and Antonio Gomez-Skarmeta from Murcia University.


References to VNUML and related technologies

Un-official VNUML sites and related pages: Examples of people or projects using VNUML tool (please, contact us if you want to be included in this list): VNUML compared with other tools: Related tools projects and initiatives: UML (User Mode Linux) references:

Last update: .    Accesses since July 29th, 2003:   counter  

Valid HTML 4.01!