An orchestrator for distributed IP tracing
Project description
🌬️ Zeph
Zeph is a reinforcement learning based algorithm for selecting prefixes to probe based on previous measurement in order to maximize the overall discoveries of nodes and links. Zeph can be used on top of Iris system.
🚀 Quickstart
Zeph dispose of a command line interface to configure and run the algorithm.
Fist create the python virtual environment:
poetry install
Then, you can run the script: python -m zeph
:
Usage: zeph.py [OPTIONS]
Options:
--api-url TEXT [default: https://api.iris.dioptra.io]
--api-username TEXT [required]
--api-password TEXT [required]
--database-url TEXT [default:
http://localhost:8123?database=iris]
--bgp-prefixes-path PATH [required]
--agent-tag TEXT [default: all]
--tool TEXT [default: diamond-miner]
--protocol TEXT [default: icmp]
--min-ttl INTEGER [default: 2]
--max-ttl INTEGER [default: 32]
--epsilon FLOAT [default: 0.1]
--previous-measurement-uuid UUID
--fixed-budget INTEGER
--dry-run / --no-dry-run [default: False]
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
✨ Generate the BGP prefix file
To work, Zeph needs to know the universe of BGP prefixes that it can probe. You can create a BGP prefix file by downloading the latest rib from routeviews.org and then convert it into a pickle file.
The easiest way to do that is to use the command line tools from located in utils/
folder.
Download RIB
Script: utils/zeph_bgp_download.py
Usage: zeph_bgp_download.py [OPTIONS]
Options:
--latestv4 / --no-latestv4 [default: False]
--latestv6 / --no-latestv6 [default: False]
--filepath PATH
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
Convert the RIB to pickle file
Script: utils/zeph_bgp_convert.py
Usage: zeph_bgp_convert.py [OPTIONS] ROUTEVIEWS_FILEPATH
Arguments:
ROUTEVIEWS_FILEPATH [required]
Options:
--bgp-prefixes-path PATH
--excluded-prefixes-path PATH
--install-completion [bash|zsh|fish|powershell|pwsh]
Install completion for the specified shell.
--show-completion [bash|zsh|fish|powershell|pwsh]
Show completion for the specified shell, to
copy it or customize the installation.
--help Show this message and exit.
📚 Publications
🧑💻 Authors
Iris is developed and maintained by the Dioptra group at Sorbonne Université in Paris, France.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for dioptra_zeph-1.0.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bd3249f55c75c46d73d45065381bfaa10e701476040f062b4fbd33f492501bce |
|
MD5 | 35b1d508f5bff102151fcc51fd9b5347 |
|
BLAKE2b-256 | 737067c181a2e08143426e463a5a650f5f66ba86825c6debf18ef91b97dd1165 |