Skip to main content

Kathará

License: GPL v3

What is it?

Kathará (from the Greek Καθαρά, purely) is a lightweight network emulation system based on Docker containers. It can be really helpful in showing interactive demos/lessons, testing production networks in a sandbox environment, or developing new network protocols.

Kathará is the spiritual successor of the notorious Netkit, hence it is cross-compatible, and inherits its language and features.

How does it work?

Each network device is emulated by a container. Virtual network devices are interconnected by virtual L2 LANs.

Each container can potentially run a different Docker image. Built-in images include Quagga, FRRouting, Bind, P4, OpenVSwitch, and more, but you can also use your own container images. For more information about Kathará images please visit the dedicated repository.

Kathará extremely simplifies the creation of complex networks using the concept of network scenario: a directory containing a file with the network topology, and, foreach device, files and folders containing the configuration of that device.

Kathará emulates network scenarios using either Docker or Kubernetes as backend virtualization system.

Installation

Install Docker and then run the installer specific for your Operating System. For a step-by-step guide check the Wiki.

For further information on how to use Kathará on Kubernetes (Megalos) please refer to the Wiki Page.

Kathará also provides a set of Python APIs. See the Python APIs Tutorial and the docs.

Quick Example

  • Install Kathará by following the Installation section.
  • Download and unpack the network scenario of a "Small Internet" from here (network topology can be found here).
  • cd inside small-internet-with-dns-webserver and run kathara lstart.
  • Kathará will read the configuration of the scenario from lab.conf and the various *.startup files and start the devices, opening terminal windows to interact with them.
  • After you're done experimenting, simply run kathara lclean and wait until the network scenario closes.

Publications and Presentations

Kathará is developed by Roma Tre Computer Networks and Security Research Group.

Several publications are related to the tool:

Kathará has been also presented in meetings and workshops:

External Tools

  • Netkit Lab Generator, a GUI that allows the easy creation of a network scenario configuration and the visualization of its network topology.
  • VFTGen, a tool that allows creating three levels Fat Tree topologies (single-plane or multi-planes) and automatically configure them to run on Kathará.
  • Tacatá, a lightweight Python script which creates Netkit and Kathará labs using an enriched version of the lab.conf file with a simple syntax.
  • net-vis, a tool that parses (and generates) the lab.conf file and all the .startup files to visualize the network.
  • kathara-lab-starter, an easy and extensible tool to get a kathara lab started. Utilizing JSON input files, it accelerates setup, while minimizing configuration redundancies.
  • NetGUI-Kathará, NetGUI-Kathará is a graphical interface for Kathará that lets users design and manage network topologies. It also generates files for 3D traffic visualization with WireXRk.
  • NIKA: A Network Arena for Benchmarking AI Agents on Network Troubleshooting. It offers an orchestration platform that connects AI agents with the network environment, enabling real-time troubleshooting in realistic conditions, and providing a human-facing interface to monitor agent performance.

Success Stories

As far as we know, Kathará is currently being used in many courses and projects.

We encourage you to tell us your story!

We are also collecting network scenarios from the community. If you want to be added to the list, please contact us!

Join Us

Kathará is an open source project. Feel free to download the code, play with it, and submit feature requests, notify bugs, or open pull requests!

Thanks to everyone who has contributed to the development of Kathará!

Metadata

Release files for kathara 3.8.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kathara 3.8.3
File Size Uploaded
kathara-3.8.3.tar.gz 167.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kathara 3.8.3
File Interpreter ABI Platform
kathara-3.8.3-py3-none-any.whl Python 3 none any Details

Total release size: 389.6 kB

Release files / kathara-3.8.3.tar.gz

Download URL kathara-3.8.3.tar.gz
Size 167.1 kB
Tags Source
SHA-256 checksum
How to use checksums
84a2d3f8ea326cc1128e0a82f13019ed98d18155f8967824e72dc92e295eef84
BLAKE2b-256 checksum
How to use checksums
de9b8999dbfe8b8c44c603fd3a44f1ced93cb2af46ddc715b7cfc961aab638ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release files / kathara-3.8.3-py3-none-any.whl

Download URL kathara-3.8.3-py3-none-any.whl
Size 222.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3310cafca1dd035d3ede6f354f171e08c1b71ec3a286326d6f381acb65398b77
BLAKE2b-256 checksum
How to use checksums
7d2b6353ba9fffb538fb2eb2f85d8c0b4c286f621d09ed5619022a6fe575992a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.12

Release history Release notifications | RSS feed

This release

3.8.3 This release

2 release files

3.8.0

2 release files

3.7.9

2 release files

3.7.8

2 release files

3.7.7

2 release files

3.7.6

2 release files

3.7.5

2 release files

3.7.4

2 release files

3.7.3

2 release files

3.7.1

2 release files

3.7.0

1 release file

3.6.3

1 release file

3.6.2

1 release file

3.6.0

1 release file

3.5.5

1 release file

3.5.4

1 release file

3.5.1

1 release file

3.5.0

1 release file

3.3.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page