Building a lightweight route server for BIRD
January 3, 2021
As I’ve written about previously, I’m a big fan of the BIRD routing daemon project. The idiomatic configuration syntax is a welcome change from the industry standard CLI style config, especially as someone coming from a software development background is concerned.
I’ve written a few utilities that help with using BIRD in production. bcg for configuration automation, and
zsh-bird-completions for autocompleting
birdc commands in zsh. So naturally, I decided it was time to set up a route
server to as well.
I’ve used Hyperglass before as a web based looking glass. It’s incredibly feature rich and comes with a pleasing React-based UI for running queries in a browser. If you’re looking for a multi-router solution with a wealth of supported routing platforms, hyperglass is definitely the answer. It’s also a lot to configure if you don’t need all of its features.
birdrs is a tiny looking glass for BIRD that exposes a restricted interactive shell over SSH. This allows clients to
connect and run queries securely (compared to legacy telnet looking glasses).
Getting started on Debian takes just a few commands:
# Add the apt repo, update cache, and install birdrs echo "deb [trusted=yes] https://repo.natesales.net/apt /" | sudo tee -a /etc/apt/sources.list.d/natesales.list sudo apt update sudo apt install birdrs # You may also need to generate a SSH key for the server # ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -o -a 100 # Enable and start the service sudo systemctl enable --now birdrs
birdrs is enabled, it will start a SSH server on port 22 that’s ready to SSH into. Make sure the bird daemon is
already running, and that
birdc is able to be run by the user running the
For more information, check out the GitHub repo: https://github.com/natesales/birdrs