Skip to content

bgpfix/bgpipe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

140 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bgpipe: BGP pipeline processor

Docker Image GitHub Release

An open-source tool that processes BGP messages through a pipeline of composable stages, built on the bgpfix library.

Full documentation at bgpipe.org

What is bgpipe?

bgpipe sits between routers as a transparent proxy, auditing, filtering, and transforming BGP sessions on the fly. Think of it as a scriptable BGP firewall and traffic processor.

Use cases:

  • BGP firewall with RPKI validation, prefix limits, and rate limiting
  • Bidirectional BGP to JSON translation including Flowspec — pipe through jq, Python, anything
  • MRT file processing and conversion at scale
  • Scriptable pipeline — chain stages or pipe through external programs
  • Live BGP monitoring from RIPE RIS Live or RouteViews with real-time filters
  • Secure transport — add TCP-MD5 to sessions, proxy over encrypted WebSockets

See the RIPE 88 bgpipe talk for background.

Quick Example

# Reverse proxy: expose internal BGP router, log all traffic to JSON
bgpipe --stdout \
  -- listen :179 \
  -- connect --wait listen 192.0.2.1

# Stream MRT file, filter by matching IP prefix, and store as JSON file
bgpipe \
  -- read https://data.ris.ripe.net/rrc01/2025.11/updates.20251107.2300.gz \
  -- grep 'prefix ~ 198.41.0.4' \
  -- write output.json

Installation

Docker (fastest):

docker pull ghcr.io/bgpfix/bgpipe:latest
docker run --rm ghcr.io/bgpfix/bgpipe:latest --help

Binary: download from GitHub Releases.

Go: go install github.com/bgpfix/bgpipe@latest

Run bgpipe -h or bgpipe <stage> -h for built-in help.

Documentation

Visit bgpipe.org for:

Contributing

Author

Pawel Foremski @pforemski 2023-2026