Introduction
ansage announces your own prefixes over BGP, and with filters and roles passes routes on to customers.
ansage is a BGP router for Linux, written in Rust. It is growing into a replacement for BIRD and FRR, and is safe by default: a new config sends only your own prefixes and accepts nothing.
Today it announces your own prefixes (anycast services, a VPS's IPv6 range) to one or more
routers. With
roles and filters it also passes learned routes on, e.g. a transit's
table to your customers. With [kernel] it installs the best routes it learns into the Linux
routing table.
asn = 64500
router_id = "203.0.113.1"
announce = ["192.0.2.0/24", "2001:db8:1::/48"]
[[neighbor]]
address = "10.0.0.1"
asn = 64501What it does
- Announces the prefixes from the config, plus
ansage announce/ansage withdrawat runtime. - Drains a site (RFC 8326) before maintenance, so traffic moves without a hard withdraw.
- Upgrades without dropping routes (
ansage upgrade, Graceful Restart). - Optionally installs the best learned routes into the Linux routing table (
[kernel]). - Passes routes on to customers with filters and BGP roles (RFC 9234), which block route leaks.
- Explains what it does with a route, step by step, before you change anything (
ansage test). - Reports through
ansage show, Prometheus metrics, a JSON API and live events.
What it does not do
Where to go
Install
One command, systemd unit included.
First session
A minimal config, start ansage, check the router.
Run an anycast service
One prefix from several servers, end to end.
Health checks
Withdraw when the service fails, with a ready script.
Drain a site
Move traffic away before maintenance.
Transit and filters
Providers, customers and peers; what goes where.
Test and shadow test
What ansage would do with a route, before it does.
Troubleshooting
A session does not come up, a prefix is missing.
Config reference
Every setting, generated from the source.
CLI reference
Every command with its output.