A BGP router written in Rust, designed for speed and observability.
Download the latest release for your platform.
# Example for v0.2.0 on Linux x86_64
curl -LO https://github.com/bgpgg-org/bgpgg/releases/download/v0.2.0/bgpgg-v0.2.0-x86_64-linux.tar.gz
tar xzf bgpgg-v0.2.0-x86_64-linux.tar.gzCreate a config file:
# config.yaml
asn: 65000
router-id: 1.1.1.1
listen-addr: "0.0.0.0:17900" # (Optional) Use high port to avoid needing root
peers:
- address: "192.168.1.1"
port: 17900
asn: 65001Run it:
./bgpgg-v0.2.0-x86_64-linux/bgpggd -c config.yaml
./bgpgg-v0.2.0-x86_64-linux/bgpgg peer list
./bgpgg-v0.2.0-x86_64-linux/bgpgg global rib add 10.0.0.0/24 --nexthop 192.168.1.1make
./target/release/bgpggd -c config.yaml
./target/release/bgpgg peer listRun two BGP speakers and watch them peer:
curl -LO https://raw.githubusercontent.com/bgpgg-org/bgpgg/master/docker/docker-compose.yml
docker compose up -d
# Check peering
docker exec bgpgg1 bgpgg peer list
# Add a route on speaker 1
docker exec bgpgg1 bgpgg global rib add 10.0.0.0/24 --nexthop 172.20.0.10
# See it on speaker 2
docker exec bgpgg2 bgpgg global rib show