MPAT is a high-performance command-line tool for enhancing Internet-scale route tracing measurements. It enables researchers and network operators to extract and analyze forwarding behavior from traceroute-like data and compute key metrics to assess the quality and coverage of measurements.
Internet Measurement Platforms (IMPs) like CAIDA Ark and RIPE Atlas collect massive amounts of probe data for observing network behavior. However, interpreting and acting on this data can be difficult due to its scale and complexity.
MPAT addresses this challenge by:
- Constructing forwarding information from traceroute data.
- Calculating route quality metrics.
- Guiding informed and adaptive probing strategies.
MPAT is part of Sorbonne’s IP Route Survey (IPRS) initiative: https://iprs.dioptra.io
- 📦 Go-based implementation for high concurrency and performance.
- ⚡ ClickHouse integration for efficient data storage and querying.
- 🧱 Modular pipeline design — each processing stage is independently runnable or chainable.
- 📈 Computation of:
- Forwarding Decisions
- Forwarding Information Tuples
- Route Score
- Route Completeness
- 🎯 Adaptive probing support based on gaps in observed paths.
Forwarding info summarizes how a router interface routes toward a set of prefixes. It is a 3-tuple:
(an, d, Af)
Where:
an
: router interface addressd
: destination prefixAf
: set of next-hop addresses
The implementation uses a radix-tree.
- Route Score: Number of distinct /24 (or /48) prefixes a router interface forwards to.
- Route Completeness: Fraction of public IP space observed through a given router.
MPAT pipeline stages:
- Ingestion – Load raw probe data into ClickHouse.
- Normalization – Convert probe data into a standard format.
- Forwarding Decision Computation – Derive routing steps.
- Forwarding Info Extraction – Infer router behavior.
- Metric Calculation – Quantify measurement coverage.
- Adaptive Probing – Trigger probes to fill in missing data.
📌 Prerequisites:
- Go 1.18+
- ClickHouse Server
- Access to traceroute-like raw probe data
git clone https://github.com/your-org/mpat.git
cd mpat
go build -o mpat ./cmd/mpat
Set up ClickHouse and ensure credentials and target schema are properly configured in config.yaml
.
Basic pipeline:
./mpat upload iris-results '2025-05-05'
TBD
Each step can also be executed independently or integrated into a larger system like IPRS.
- Retrieving data from:
- Iris production instance
- Ark dataset
- RIPE dataset
- Forwarding decision computation
- Metric computation
- Route score
- Route completeness
- Ufuk Bombar – Sorbonne Université / LINCS
- Timur Friedman – Sorbonne Université / LINCS
- Olivier Fourmaux – Sorbonne Université
- Kevin Vermeulen – LAAS-CNRS
MIT License