Skip to main content

rettij is an easy-to-use, scalable and co-simulation-capable ICT network simulator based on Kubernetes. It is designed for use with [Mosaik](https://mosaik.offis.de/) but can also be used standalone as a plain ICT network simulator.

Project description

rettij Network Simulator

What is rettij?

The network simulator rettij is developed by the Forschungsgruppe Rechnernetze und Informationssicherheit at the Bremen University of Applied Sciences. After testing and evaluating various frameworks, we came to the conclusion that the existing network simulators do a great job at what they aim to do, but we never felt like they were the right tool for our purposes. Therefore, we finally decided to implement our own network simulation framework.

Use cases

Standalone (manual usage)

  • Prototyping and pen-testing Docker images
  • Learning environment

Embedded (usage inside other applications)

  • Scripted controls
  • Co-simulation

Features

Native co-simulation capabilities

  • Can be used in event-based co-simulation environment
  • APIs are based on co-simulation requirements

Realistic network behavior

  • Uses the actual unix network stack, allowing simulation of realistic cyber-attack scenarios
  • Isolates simulation traffic via VXLAN tunneling, meaning no noise from Docker, Kubernetes in packet captures

Use real and proprietary software

  • Usage of containers and VMs allows running real-world applications, including proprietary software you could replicate fully and legally
  • Can be used to verify real-world behavior

No in-depth programming knowledge needed

  • Easy-to-understand-and-write description language for network topologies
  • Standalone mode requiring no further programmatic interaction
  • Self-explanatory APIs for easy integration (i.e. for co-simulation scenarios) as well as full code documentation here.

Scalability

  • Efficient emulation due to the use of Docker containers (as opposed to VMs)
  • Can be used in a Kubernetes cluster to have access to a large pool of computing resources

Tutorial

The tutorial consists of multiple chapters introducing you to the rettij usage and development step-by-step. Even if you want to develop for rettij, you should always start with the first chapter as it covers some basics like the setup process.

Getting Started

Here you will learn how to set up a simple simulation environment with a basic initial configuration.

-> GO TO "Getting Started"

Working with rettij

You need to understand the basics of rettij to build your own network-topologies, create custom components and define simulation sequences.

-> GO TO "Working with rettij"

Troubleshooting

Some suggestions for fixing commonly encountered roadblocks when working with rettij, Python as well as Kubernetes.

-> GO TO "Troubleshooting"

Contributing to rettij

Please refer to the CONTRIBUTING file for information on how to contribute to rettij.

Contributors

Initial development was done by primarily the following members of the Forschungsgruppe Rechnernetze und Informationssicherheit at the Bremen University of Applied Sciences:

  • Fabian Niehaus
  • Torben Woltjen
  • Giacomo Gritzan
  • Philipp Kathmann
  • Bastian Fraune

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

rettij-1.8.3-py3-none-any.whl (186.4 kB view details)

Uploaded Python 3

File details

Details for the file rettij-1.8.3-py3-none-any.whl.

File metadata

  • Download URL: rettij-1.8.3-py3-none-any.whl
  • Upload date:
  • Size: 186.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.8.19

File hashes

Hashes for rettij-1.8.3-py3-none-any.whl
Algorithm Hash digest
SHA256 15681dd575f905dc56b6ff97451d40931c994121a2a9d4884e706f0d1bd4bcd2
MD5 90f0555d00c79f795bc15dd20031baea
BLAKE2b-256 5563d597817e3cf5b53536fe7b1b2f555254503f15e949421b0ac11038152ca9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page