My Nix Configuration
1{ pkgs, config, ... }: 2let 3 cfg42 = config.dn42; 4in 5{ 6 imports = [ 7 ./peers 8 ]; 9 networking = { 10 interfaces.lo = { 11 ipv4.addresses = [ 12 { 13 address = "172.20.43.96"; 14 prefixLength = 32; 15 } 16 ]; 17 ipv6.addresses = [ 18 { 19 address = "fd21:1500:66b0::1"; 20 prefixLength = 128; 21 } 22 { 23 address = "fe80::1"; 24 prefixLength = 128; 25 } 26 ]; 27 }; 28 }; 29 30 environment.systemPackages = with pkgs; [ 31 dnsutils 32 mtr 33 tcpdump 34 wireguard-tools 35 ]; 36 dn42 = { 37 enable = true; 38 # ASN corresponding to DN42 PYRONET 39 as = 4242422459; 40 # Communities config 41 # https://dn42.dev/howto/BGP-communities 42 region = 42; 43 country = 1840; 44 routerId = cfg42.addr.v4; 45 # Primary IP Addresses 46 addr = { 47 v4 = "172.20.43.96"; 48 v6 = "fd21:1500:66b0::1"; 49 }; 50 # Owned IP Ranges 51 nets = { 52 v4 = [ "172.20.43.96/27" ]; 53 v6 = [ "fd21:1500:66b0::/48" ]; 54 }; 55 56 # Enable StayRTR 57 # https://github.com/bgp/stayrtr 58 stayrtr.enable = true; 59 wg.tunnelDefaults = { 60 privateKeyFile = "/run/agenix/dn42-privkey"; 61 localAddrs.v4 = cfg42.addr.v4; 62 }; 63 }; 64}