Bird-lg
Appearance
BIRD looking glass in Go, for better maintainability, easier deployment & smaller memory footprint.
Example
Frontend
The fqdn of the routers is generated by the frontend ($server-hostname.$domain, for example fra1.noc.example.com)
≡︎ /etc/nixos/configuration.nix
services = {
bird-lg = {
frontend = {
domain = noc.example.com; # domain of the routers
enable = true;
servers = [ "fra1" "ams1" ]; # hostnames of the routers
protocolFilter = [
"bgp"
"static"
];
listenAddresses = [ "[::1]:15000" ]; # listen address of the frontend
proxyPort = 18000; # port on which the proxy servers (routers) are listening on
navbar = {
brand = "example networks"; # branding in the top left corner
};
};
};
};
Proxy
The proxy runs on all bird router instances
≡︎ /etc/nixos/configuration.nix
services.bird-lg.proxy = {
enable = true;
listenAddresses = [ "18000" ]; # listen on all interfaces
};
See also
- https://github.com/xddxdd/bird-lg-go
- https://git.darmstadt.ccc.de/ffda/infra/nixos-config/-/blob/610ac16c150ed8b8f65ec6cd9150c2856e24d22d/config/modules/dn42/bird-lg-frontend.nix
- https://git.darmstadt.ccc.de/ffda/infra/nixos-config/-/blob/610ac16c150ed8b8f65ec6cd9150c2856e24d22d/config/modules/dn42/bird-lg-proxy.nix