Expand description
ยงMAnycastR
MAnycastR (Measure Anycast Routing) performs synchronized Internet measurements from a distributed set of anycast Points of Presence (PoPs): catchment mapping, anycast and unicast latency, anycast traceroute, and anycast censuses. IPv4 and IPv6 are both supported, over ICMP, UDP (DNS), and TCP.
These pages document the internals. For installation, usage, measurement types, and output
formats, see the
README, or run manycastr cli start --help.
ยงThe components
A deployment consists of three components, each a subcommand of the manycastr binary:
- Orchestrator - a central controller orchestrating measurements
- CLI - command-line interface scheduling measurements at the Orchestrator and collecting results
- Worker - deployed on anycast PoPs, performing measurements
The CLI sends a measurement definition to the Orchestrator, which instructs the Workers to start the measurement. Workers send probes and receive replies, streaming results back to the Orchestrator, which aggregates them (creating follow-up tasks where the measurement type calls for it) and forwards them to the CLI, which writes the output file.
Supporting modules: net (packet construction and parsing), tls (transport security for the inter-component gRPC connections), and custom_module (generated gRPC types).
Modulesยง
- cli ๐
- custom_
module ๐ - net ๐
- orchestrator ๐
- tls ๐
- worker ๐
Constantsยง
Functionsยง
- dns_
identifier - Get 6-bits from the measurement ID for the DNS identifier for filtering.
- m_id_of
- Get the 16-bit measurement ID from a probe ID.
- main ๐
- Parse command line input and start MAnycastR orchestrator, worker, or CLI
- parse_
cmd ๐ - Parse command line arguments using clap
- probe_
id - Used for
--responsiveand--sessionsenabled when using-m feed. - session_
id_ of - Get the 16-bit session ID from a probe ID.