How many ways are there to describe a computer network? Maybe one...

Disambiguation: NetML is also the name of a network design system developed by prof. Ronald G. Addie et al. If that is the system you are looking for, you may want to consider having a look at the pertaining Google Code page and at a reference paper.
Otherwise, enjoy your stay on this web site.

Home | News | Detailed Information | Download | Configuration Examples | Publications and Contacts


NetML tools can be downloaded by using the following links. A Java runtime environment is required to run the applications.

Instructions for using the NetML tools are provided as well.



Release Date

NetML-2005-12-10.tar.gz 4.2 MB 2005/12/10
NetML-2004-01-21.tar.gz 4.2 MB 2004/01/21
NetML-2004-01-21.zip 4.2 MB 2004/01/21
NetML-2003-10-22.tar.gz 4.1 MB 2003/10/22
NetML-2003-10-22.zip 4.2 MB 2003/10/22


  1. Decompress the NetML package in a directory of your choice by using the following command:
    tar -zxf NetML-YY-MM-DD_HH-MM.tar.gz
    unzip NetML-YY-MM-DD_HH-MM.zip
    (Windows users may use WinZip or similar applications).
  2. Enter the netml created directory:
    cd netml
  3. The directory contains three tools:

    Each one can be invoked with the --help option to get usage information. Further information about the tools can be obtained by clicking on the above links.

About Router.sh

Router.sh is a tool for creating configuration files for a specific router vendor (Cisco, Juniper, Zebra). Output files are placed in a subdirectory of the output directory. For example:

./Router.sh -x samples/01_old/EsempioGrande.xml -d mydir -t z

takes as input EsempioGrande.xml and creates a subdirectory output/mydir which contains all the configuration files.

About Firewall.sh

Firewall.sh creates configuration files for a specific firewall vendor (Iptables, Cisco PIX Firewall, Ipfilter, and Ipfirewall are supported). Output files are put in a subdirectory of the output directory. For example:

./Firewall.sh -x samples/06_new/SingleFw.xml -d mydir -t iptables

takes as input SingleFw.xml and creates a subdirectory output/mydir containing all the configuration files.

About Netkit2.sh

Netkit2.sh generates a script that implements the network described using NetML as a Netkit lab. The script can be used to automatically start a set of preconfigured virtual machines on a system with Netkit installed. This makes it possible to observe how the network behaves before deploying the configuration on real devices. Here is an example of usage:

./Netkit2.sh -x samples/01_old/EsempioGrande.xml -o newfile

This creates a script named newfile (if you don't specify an output file, standard output will be used instead). The script must be assigned the executable permission, which can be achieved by using the following command:

chmod u+x newfile

Once done, the Netkit lab can be easily started by typing ./newfile start

Note: the current version of NetML does not support the new lstart-based version of the Netkit labs. Please visit the Netkit web site for more information about this.