project
IXSonar — BGP Visibility Analysis Across Internet Exchanges
with Felipe Zanoni da Rosa
IXSonar — BGP Visibility Analysis Across Internet Exchanges
A Rust data pipeline that audits, at scale, connectivity redundancy across different Brazilian Internet Exchange Points.
What it is
A network analysis tool that compares BGP route visibility across multiple Internet Exchange Points (IXs) — for example, different regional sites of IX.br. It answers questions like: which prefixes announced at one IX also appear at another? How many keep the same AS path at both locations? How does that coverage vary across CDNs, access providers, banks, and government networks? The output is a historical dashboard that helps network teams understand the health and redundancy of an operator's connectivity across different locations.
How it works
The pipeline runs in three stages. First, a Rust binary automatically downloads historical BGP route snapshots (RIBs) from RouteViews, testing days in parallel until it finds a valid file, and applies configurable include/exclude filters over AS-PATH and BGP communities. Then, still in Rust, the same pipeline uses embedded DuckDB to compare pairs of IXs — prefix overlap, AS-path consistency, and per-category metrics — processing the global, IPv4, and IPv6 dimensions in parallel. Finally, Python scripts read those results and generate a self-contained HTML dashboard with interactive charts, served by a small Flask server.
Tech stack
- Rust (tokio, reqwest, rayon, embedded DuckDB)
- Python (pandas, matplotlib, Flask)
- Apache Parquet as the intermediate data format
- Google Charts for the dashboard
Technical highlights
- Automatic, resilient download of historical BGP RIBs, testing multiple days until a valid snapshot is found
- Configurable filter engine with AND/OR logic over BGP communities and AS-PATH
- Route overlap comparison done entirely in SQL over Parquet files, via embedded DuckDB
- Native parallel processing in Rust across all three analysis dimensions (global, IPv4, IPv6)
- Network classification by business category (CDN, ISP, financial, government) to segment the analysis