Skip to content

Collecting and analyzing routing information with Rotonda#

NLNOG Day 2025 (Amsterdam) digest Program Core pick Amsterdam · 30 September 2025

Luuk Hendriks (NLnet Labs)

Play the recording: Collecting and analyzing routing information with Rotonda

  • Why: BGP/datapath tooling the PM can adopt directly. Rotonda is the open-source engine for exactly what the previous talk argues for: ingesting BMP at scale and making it queryable.
  • What: NLnet Labs' Rotonda: a routing-data collector and store that ingests BMP, live BGP, MRT dumps, and even RTR feeds; maintains RIBs per peer and per stage (pre/post policy, in/out/local); and exposes everything over an HTTP API. Example queries from the deck: /api/v1/ribs/ipv4unicast/routes/185.49.140.0/23, with filters like filter[ribType]=inPre (Adj-RIB-In pre-policy), filter[rovStatus]=valid (RPKI ROV status), filter[originAsn]=1133, filter[community]=AS1103:9876, plus include=moreSpecifics — all AND-combined.
  • How: The standout mechanism is Roto, a strongly-typed, compiled scripting language for filtering route data inside API queries — Roto compiles through Cranelift IR down to native x86_64/ARM64, so user-supplied filter functions run at compiled speed over stored RIBs rather than as interpreted per-route callbacks. Outputs include HTTP/JSON, MQTT, and files; /metrics provides Prometheus-style monitoring (the speaker candidly warns some built-in metrics are currently off and being overhauled).
  • Where applicable: General-purpose operator tooling, open source from NLnet Labs, deployable by anyone running BMP-capable routers — it pairs naturally with bgproutes.io-style collection and with internal route-monitoring/alerting pipelines.