Welcome to NoPASARAN’s documentation!

https://github.com/BenIlies/NoPASARAN/actions/workflows/docker-image.yml/badge.svg https://readthedocs.org/projects/nopasaran/badge/?version=latest https://api.codeclimate.com/v1/badges/68f1d2f9ef6af3f65864/maintainability https://api.codeclimate.com/v1/badges/68f1d2f9ef6af3f65864/test_coverage https://badge.fury.io/py/nopasaran.svg https://badges.gitter.im/Join%20Chat.svg https://img.shields.io/badge/License-GPLv3-blue.svg

NoPASARAN is an advanced network tool, written in Python, that enables the detection, fingerprinting, and location of network middleboxes. Leveraging the power of finite state machines for test case description and Ansible for distributing and orchestrating these tests across a network of nodes, it is flexible and user-friendly.

NoPASARAN can be configured using JSON-based test files.

For a detailed understanding of NoPASARAN, refer to the paper “NoPASARAN: a Novel Platform to Analyse Semi Active elements in Routes Across the Network”. The paper can be accessed directly via the following link:

NoPASARAN paper

You may cite this work as follows:

@article{benhabbour2022nopasaran,
  title={NoPASARAN: a Novel Platform to Analyse Semi Active elements in Routes Across the Network},
  author={Benhabbour, Ilies and Dacier, Marc},
  year={2022},
  publisher={Index Copernicus}
}

Join the discussion on Gitter.

Important: NoPASARAN Is a Multi-Repository Framework

This repository is one component of the broader NoPASARAN distributed testing framework.

The complete system is composed of multiple tightly-coupled repositories, each responsible for a critical aspect of test definition, orchestration, execution, and coordination. Most users and contributors will need to reference these projects together.

Start here: framework-projects/ — canonical index of all NoPASARAN framework components.

Framework Components at a Glance

Component

Purpose

🧠 Tests-Trees

Decision trees defining conditional test execution logic

🧪 Tests

Reusable, reviewed test definitions executed by workers

⚙️ Endpoint

Runtime node acting as master or worker

🌐 Coordinator

Control plane, certificate authority, and user interface

If you are looking for tests, orchestration logic, or distributed execution details, you will not find them all in this repository alone. Always refer to the framework-projects index for the complete picture.

Contents