A memory-safe, fast, observable routing stack written in Rust. It runs AS4242423930 on dn42.
- bgpgg - BGP (Border Gateway Protocol) daemon
- ggsh - "gg shell" for managing rogg
- Observable. Native metrics as CloudWatch EMF, JSON, or Prometheus. No sidecar needed.
- Programmable. A gRPC API for peers, routes, and policy.
- Memory-safe. Written in Rust.
- Operable. ggsh shows and configures state, with commit and rollback.
Download the latest release for your platform.
curl -LO https://github.com/roggnetwork/rogg/releases/download/<version>/rogg-<version>-x86_64-linux.tar.gz
tar xzf rogg-<version>-x86_64-linux.tar.gzCreate a config file:
# rogg.conf
service bgp {
asn 65000
router-id 1.1.1.1
listen-addr 0.0.0.0:17900
peer 192.168.1.1 {
remote-as 65001
port 17900
}
telemetry {
cloudwatch-emf {
namespace Rogg/Bgpgg
}
prometheus {
listen 0.0.0.0:9273
}
json {}
}
}
Start the daemon:
./bgpggd --config rogg.confUse ggsh to manage it:
$ ggsh
ggsh> show bgp summary
BGP router listening on 0.0.0.0:17900
RIB entries 1200, 2400 paths
Peers 2, 2 established
Neighbor AS MsgRcvd MsgSent State/PfxRcd
10.0.0.1 65001 4821 3200 Established
ggsh> show bgp routes
> 10.0.0.0/24
via 10.0.0.1 lp 100 path 65001 [best]
ggsh> exit
For scripting: ggsh show bgp summary
Build from source:
make
./target/release/bgpggd --config rogg.conf
./target/release/ggshOr use Docker:
curl -LO https://raw.githubusercontent.com/roggnetwork/rogg/master/bgpgg/docker/docker-compose.yml
docker compose up -d
docker exec rogg1 ggsh show bgp summaryhttps://www.roggnetwork.com/doc
Apache 2.0.