# 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](/docs/guides/transit.md) 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.

```toml title="/etc/ansage/ansage.toml"
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 = 64501
```

## What it does

- Announces the prefixes from the config, plus `ansage announce` / `ansage withdraw` at 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

> **No route reflection, no route server:** ansage passes learned routes on only to eBGP neighbors with a role, and only within what the
> roles allow. It is no route reflector, no route server and knows no confederations. Health checks
> live outside ansage, see [Health checks](/docs/guides/health-checks.md).

## Where to go

- [Install](/docs/getting-started/install.md): One command, systemd unit included.

- [First session](/docs/getting-started/first-session.md): A minimal config, start ansage, check the router.

- [Run an anycast service](/docs/guides/anycast.md): One prefix from several servers, end to end.

- [Health checks](/docs/guides/health-checks.md): Withdraw when the service fails, with a ready script.

- [Drain a site](/docs/guides/drain.md): Move traffic away before maintenance.

- [Transit and filters](/docs/guides/transit.md): Providers, customers and peers; what goes where.

- [Test and shadow test](/docs/guides/test.md): What ansage would do with a route, before it does.

- [Troubleshooting](/docs/guides/troubleshooting.md): A session does not come up, a prefix is missing.

- [Config reference](/docs/reference/config.md): Every setting, generated from the source.

- [CLI reference](/docs/reference/cli.md): Every command with its output.
