{ pkgs, config, ... }: let cfg42 = config.dn42; in { imports = [ ./peers ]; networking = { interfaces.lo = { ipv4.addresses = [ { address = "172.20.43.96"; prefixLength = 32; } ]; ipv6.addresses = [ { address = "fd21:1500:66b0::1"; prefixLength = 128; } { address = "fe80::1"; prefixLength = 128; } ]; }; }; environment.systemPackages = with pkgs; [ dnsutils mtr tcpdump wireguard-tools ]; dn42 = { enable = true; # ASN corresponding to DN42 PYRONET as = 4242422459; # Communities config # https://dn42.dev/howto/BGP-communities region = 42; country = 1840; routerId = cfg42.addr.v4; # Primary IP Addresses addr = { v4 = "172.20.43.96"; v6 = "fd21:1500:66b0::1"; }; # Owned IP Ranges nets = { v4 = [ "172.20.43.96/27" ]; v6 = [ "fd21:1500:66b0::/48" ]; }; # Enable StayRTR # https://github.com/bgp/stayrtr stayrtr.enable = true; # Peer with GRC # https://dn42.dev/services/Route-Collector collector.enable = true; wg.tunnelDefaults = { privateKeyFile = "/run/agenix/dn42-privkey"; localAddrs.v4 = cfg42.addr.v4; }; }; }