My network runs on the BIRD router software. Since I run Debian, the sofware is just an apt install bird away. At the time it seemed like a natural choice. I wanted to get familiar with it and there was already some excellent automation options.

When you do that apt install bird, you get BIRD 1.6. Last year, the team behind BIRD announced that BIRD 1.6 would be End-of-life by Dec 31, 2023. Time for an upgrade!

Sure, it’s the end of february 2024 now, but better late then never, right?

There are some small syntax differences between BIRD 1.6 and BIRD 2.0. Mainly, you need to specify the address family. Since BIRD 1.6 ran seperate processes for IPv6 and Legacy IP (also known as IPv4).

I tried switching before, but ran into small naming hoops. For example, I have a BOGONS definition, that lists some bogon prefixes that should be filtered if received from peers. With BIRD 2.0, I would have to rename that to (for example) BOGONS_v4 and BOGONS_v6, and that was not all, that was just one example.

Shoving the work out before me, I decided that today, I’d pick this project back up. I was busy renaming definitions and rewriting my version of KEES. Then, while running into something in the KEES repo, I asked around in the Coloclue IRC channel and discovered that they did a small trick to run seperate processes per address familiy again. This made my upgrade much easier. And with just a few more minutes of work I finally upgraded my network to be running on BIRD 2.0.

This advantage of running one BIRD process per address family is that the route processing task with BIRD is a single-core task. Which means that, if you run seperate processes, you can react faster to changes on the internet. Since there is one core available per address family to reroute traffic. Instead of it all happening on one core. This is something the BIRD team is going to work on for BIRD 3.0.