Open Source Network Topology & Route Analytics Engine

NetTopology Core is a low-level toolkit for parsing, normalizing and visualizing BGP tables, RIB/FIB snapshots and IGP link-state data. Built for NOC engineers, network operators, and anyone who has ever had to explain to management why a /24 was announced from the wrong AS.

License: BSD-3-Clause · Written in C99 + Rust core · Linux · BSD · macOS · Maintained since 2019
bash — fetch release tarball
$wget https://nettopology.org/dist/4.2/nettopo-core-4.2.1.tar.xz
Workspace
Read-only snapshot from lab node edge01.dus1 · captured 2026-08-24 08:49:12 UTC · 14 days uptime
logs
routes
topology
rpki
flowspec
/var/log/nettopo/bgp.log
Quick Start
Tested on Debian 12, Ubuntu 22.04+, FreeBSD 13. Adjust package names for your distribution.
01

Install dependencies

Required for the C core. libmaxminddb is optional but recommended for GeoIP enrichment of AS paths.

# Debian / Ubuntu $ sudo apt install build-essential libpcap-dev libmaxminddb-dev \ pkg-config cmake rustc
02

Build from source

Use the stable release tarball; the main branch is for development and may not build cleanly between releases.

$ wget https://nettopology.org/dist/4.2/nettopo-core-4.2.1.tar.xz $ tar xf nettopo-core-4.2.1.tar.xz $ cd nettopo-core-4.2.1 $ ./configure --prefix=/usr/local --with-maxminddb $ make -j$(nproc) $ sudo make install
03

Run the daemon

A drop-in systemd unit is provided in contrib/systemd/. Edit /etc/nettopo/nettopo.conf to point at your router's BGP listener and BMP exporter.

$ sudo cp contrib/systemd/nettopo.service /etc/systemd/system/ $ sudo systemctl enable --now nettopo # or run in foreground for debugging $ nettopo --daemon --config /etc/nettopo/nettopo.conf --log-level=debug
04

Verify

Check the daemon status and query the local API on 127.0.0.1:8421.

$ nettopo --version $ nettopo-cli peers list $ curl -s http://127.0.0.1:8421/v1/health | jq .