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
Once 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 birdrs
process.
For more information, check out the GitHub repo: https://github.com/natesales/birdrs