Normalise feed input
Read local files, HTTP, and HTTPS sources in plain text, JSON arrays, JSONL, or NDJSON.
RTBH automation for network operators
blackhole-threats turns local and remote threat feeds into IPv4 and IPv6 blackhole announcements, with deterministic route deltas, per-community policy boundaries, and last-known-good protection when a source fails.
INFO feeds loaded count=5 community=64520:666
INFO prefixes parsed ipv4=98,421 ipv6=30,321
INFO routes summarised total=128,742 overlaps=-421
INFO route delta announced=1,245 withdrawn=312
WARN feed retry deferred failed_feeds=1 carry_forward=true
INFO refresh complete duration=412ms next_refresh=5m
Illustrative refresh output — values shown for orientation.
Current release
How it runs
Read local files, HTTP, and HTTPS sources in plain text, JSON arrays, JSONL, or NDJSON.
Build the desired table, compare to active state, then withdraw stale routes and announce changes only.
Group feeds by BGP community so policy boundaries stay explicit and auditable on the wire.
When a community refresh fails, preserve its last known-good routes and retry on the next cycle.
Install
Signed APT is the recommended path for long-running Debian-family hosts. Use GHCR for container runtimes with configuration mounted under /config.
Loading signed APT commands...
Installs the binary, systemd unit, default environment file, man page, sample config, and packaged documentation.
docker pull ghcr.io/netspeedy/blackhole-threats:latest
Use the GHCR image for container-native runtimes with configuration mounted under /config.
| Channel | Best fit | Platforms | What you get | Verification |
|---|---|---|---|---|
| Signed APT Recommended | Long-running Debian-family hosts | amd64, arm64, armhf; deb and deb-src |
Binary, systemd unit, defaults file, man page, sample config, and packaged docs | Signed metadata, archive key, and published fingerprint |
| Container | Container-native runtimes | linux/amd64, linux/arm64 |
GHCR image with runtime configuration mounted under /config |
Published from trusted release tags and recovery dispatches |
| Release Archives | Manual or offline installs | Tarballs: linux/amd64, linux/arm64, linux/arm; Debian: amd64, arm64, armhf |
Linux tarballs, Debian packages, Debian source package artifacts, and sha256sums.txt |
Match downloaded artifacts against sha256sums.txt |
| Source Build | Local validation, labs, and development | Go source baseline: go 1.25.0 |
Repo Makefile build path for validating changes and configs before rollout | Run make build and config checking locally |