Netkit is a self-contained low cost solution for the emulation of computer networks. Within the Netkit environment each network device is implemented by a virtual machine, and interconnection links are emulated by using virtual collision domains (which you can see as virtual hubs).
Each virtual machine can be configured to have an arbitrary number of (virtual) network interfaces. Virtual machines can also be configured to have no interfaces at all, in which case they can serve as standalone emulated hosts. However, this is not the application Netkit has been thought for. Netkit is not a host emulator: it is a network emulator.
Virtual machines use a customized filesystem which contains a standard Linux installation (at the time this man page is being written, it is a Debian distribution), which includes network oriented software such as routing daemons (RIP, OSPF, etc.), a bunch of servers (FTP, HTTP, etc.), firewalling utilities (iptables), diagnostic tools (ping, traceroute, tcpdump, etc.), and other applications. By configuring the appropriate software, it is possible to make a virtual machine behave as a specific network device (e.g., a router). See the README in the Netkit filesystem package or the online FAQs for instructions about changing the contents of the virtual machine filesystems.
Virtual machines make use of a variant of the standard Linux kernel which is compiled to be run as a userspace process. This variant is known as User Mode Linux (UML) kernel. You can find more information about UML at the User-mode Linux Kernel Page (http://user-mode-linux.sourceforge.net). See also the README in the Netkit kernel package for information about building a customized kernel for the virtual machines.
Netkit provides you with two alternative interfaces to start and configure virtual machines. A set of `v'-prefixed commands (vclean, vconfig, vcrash, vhalt, vlist, vstart), which allow to start and manage single virtual machines while providing finegrained control on their configuration, and a set of `l'-prefixed commands (lclean, lcrash, lhalt, linfo, lrestart, lstart, ltest), which ease setting up preconfigured network laboratories consisting of several virtual machines.
In order for Netkit to work properly, the environment variable NETKIT_HOME
must be set to the name of the directory Netkit has been installed into.
The VLAB_HOME variable is recognized as well, but this only happens for backward compatibility. New Netkit installations and upgrades should use NETKIT_HOME instead.
Netkit stores its default configuration settings inside a file named `netkit.conf'. The existence of this file is required in order to make Netkit work. See netkit.conf(5) for information about the location of this file and a description of its format.
Netkit is the result of the joint work of several people. The project is carried on by the Department of Computer Science and Automation of the University of Roma 3 (http://www.dia.uniroma3.it). More precisely, people at the LUG (Linux User Group) Roma 3 (http://www.lugroma3.org/) gave the initial startup and brought significant contributions that made Netkit become a progressively more powerful environment. People within the Computer Networks Research Group (http://www.dia.uniroma3.it/~compunet) actively supported the LUG team by providing new ideas and implementing new features, and authored the most recent releases.
At the time this man page is being written, the project is entirely carried on by the Computer Networks Research Group.
The Netkit team currently consists of:
Giuseppe Di Battista
People involved across time also include:
The Netkit team can be reached at the following address: <email@example.com>. You can also use this address to submit bug reports. Alternatively, you can contact us via the mailing list <firstname.lastname@example.org>.
Bug reports should always include the following information: