Show HN: Rogg – I built a Rust BGP speaker and run a live AS on DN42

stockkid1 pts1 comments

GitHub - roggnetwork/rogg: A memory-safe, fast, programmable routing stack in Rust · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

Uh oh!

There was an error while loading. Please reload this page.

roggnetwork

rogg

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

master

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>69 Commits<br>69 Commits

.github/workflows

.github/workflows

bgpgg

bgpgg

conf

conf

ggsh

ggsh

proto

proto

script

script

systests

systests

telemetry

telemetry

.gitignore

.gitignore

Cargo.lock

Cargo.lock

Cargo.toml

Cargo.toml

Cross.toml

Cross.toml

LICENSE

LICENSE

Makefile

Makefile

README.md

README.md

View all files

Repository files navigation

rogg

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

Features

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.

Get Started

Download the latest release for your platform.

/rogg--x86_64-linux.tar.gz<br>tar xzf rogg--x86_64-linux.tar.gz">curl -LO https://github.com/roggnetwork/rogg/releases/download/version>/rogg-version>-x86_64-linux.tar.gz<br>tar xzf rogg-version>-x86_64-linux.tar.gz

Create a config file:

# rogg.conf<br>service bgp {<br>asn 65000<br>router-id 1.1.1.1<br>listen-addr 0.0.0.0:17900

peer 192.168.1.1 {<br>remote-as 65001<br>port 17900

telemetry {<br>cloudwatch-emf {<br>namespace Rogg/Bgpgg<br>prometheus {<br>listen 0.0.0.0:9273<br>json {}

Start the daemon:

./bgpggd --config rogg.conf

Use ggsh to manage it:

show bgp summary<br>BGP router listening on 0.0.0.0:17900<br>RIB entries 1200, 2400 paths<br>Peers 2, 2 established

Neighbor AS MsgRcvd MsgSent State/PfxRcd<br>10.0.0.1 65001 4821 3200 Established

ggsh> show bgp routes<br>> 10.0.0.0/24<br>via 10.0.0.1 lp 100 path 65001 [best]

ggsh> exit">$ ggsh<br>ggsh> show bgp summary<br>BGP router listening on 0.0.0.0:17900<br>RIB entries 1200, 2400 paths<br>Peers 2, 2 established

Neighbor AS MsgRcvd MsgSent State/PfxRcd<br>10.0.0.1 65001 4821 3200 Established

ggsh> show bgp routes<br>> 10.0.0.0/24<br>via 10.0.0.1 lp 100 path 65001 [best]

ggsh> exit

For scripting: ggsh show bgp summary

Other Ways

Build from source:

make<br>./target/release/bgpggd --config rogg.conf<br>./target/release/ggsh

Or use Docker:

curl -LO https://raw.githubusercontent.com/roggnetwork/rogg/master/bgpgg/docker/docker-compose.yml<br>docker compose up -d<br>docker exec rogg1 ggsh show bgp summary

Docs

https://www.roggnetwork.com/doc

License

Apache 2.0.

About<br>A memory-safe, fast, programmable routing stack in Rust<br>www.roggnetwork.com<br>Topics<br>bgpnetworkingroggrouting<br>Resources<br>Readme<br>Apache-2.0 license<br>Activity<br>Custom properties<br>Stars<br>1 star<br>Watchers<br>1 watching<br>Forks<br>0 forks<br>Report repository

Releases

Contributors

Languages

You can’t perform that action at this time.

rogg ggsh show roggnetwork rust github

Related Articles