kathara - A network emulation tool
-v] command [args]
Kathara is a network emulation tool based on Docker containers. The tool can be really helpful in showing interactive demos/lessons, testing production networks in a sandbox environment, or developing new network protocols.
Kathara is the spiritual successor of the notorious Netkit, hence it is cross-compatible, and inherits its language and features.
Within the Kathara environment each network device, called device, is implemented by a container, and each interconnection link is emulated by using a virtual network.
Each device can be configured to have an arbitrary number of (virtual) network interfaces.
By default, devices use a Docker Image which includes network oriented software such as routing daemons (RIP, OSPF, etc.), an HTTP server, firewalling utilities (
iptables(8)), and diagnostic tools (
By configuring the appropriate software, it is possible to faithfully emulate a specific network device (e.g., a router).
Kathara provides two alternative interfaces to start and configure devices. A set of
v-prefixed commands (vstart, vclean, vconfig), that allow to start and manage single devices while providing finegrained control on their configuration; and a set of
l-prefixed commands (lstart, lclean, linfo, lrestart, lconfig, ltest), that ease setting up preconfigured network scenarios consisting of several devices.
Kathara also provides a set of global commands (connect, info, wipe, settings, check).
The possible kathara commands are:
Kathara stores its default configuration settings inside a file named
kathara.conf. This file is placed in the
~/.config folder. If it does not exist when Kathara is launched, it will be created with default settings. See
kathara.conf(5) for information about the location of this file and for a description of its format.
Report bugs opening an issue on the official GitHub repository where the development and maintenance is primarily done.
Issues which are security relevant should be disclosed privately to the Kathara mailing list. You do not have to be subscribed to the list to send a message there.
When reporting a bug, remember to write used commands, eventually attach your network scenario, and include the output of
kathara-check(1) in order to make possible to reproduce the bug.
Kathara was born from Netkit. Its first version was developed by Gaetano Bonofiglio and Veronica Iovinella. Currently it is mantained by Mariano Scazzariello, Tommaso Caiazzi and Lorenzo Ariemma.
People involved also include:
Copyright © 2017-2021 License GPLv3+: GNU GPL version 3 or later http://gnu.org/licenses/gpl.html. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.