router: enable networking in initrd
1 file changed, 36 insertions(+), 16 deletions(-)
changed files
M system/roles/router.nix → system/roles/router.nix
@@ -46,8 +46,10 @@ allProviders = lib.attrValues dnsProviders; mainProvider = dnsProviders.quad9; - lanCfg = config.systemd.network.networks."40-${lan}"; - myAddresses = map netlib.removeMask (lib.filter (a: !(a ? Scope || a ? Label)) lanCfg.addresses); + lanCfg = config.networking.interfaces.${lan}; + myAddresses = lib.filter (a: !(lib.strings.hasPrefix "fe80:" a)) ( + map (lib.getAttr "address") (lanCfg.ipv4.addresses ++ lanCfg.ipv6.addresses) + ); in { imports = [@@ -55,6 +57,11 @@ # ./router/v6only.nix ../settings/services/adguard-home.nix ]; + boot.initrd = { + systemd.network.enable = true; + network.enable = true; + }; + networking = { useDHCP = false; hosts = lib.genAttrs myAddresses (@@ -65,6 +72,31 @@ ] ); nameservers = lib.mkForce [ "::1" ]; + interfaces = { + br0 = { + ipv6 = { + addresses = [ + { + address = "${ulaPrefix}:42::1"; + prefixLength = 48; + } + { + address = "fe80::1"; + prefixLength = 64; + } + ]; + }; + ipv4 = { + addresses = [ + { + address = "10.0.0.1"; + prefixLength = 16; + } + ]; + }; + }; + }; + nat = { # TODO upstream changes somehow enable = false; # NixOS module is a bit limiting@@ -119,18 +151,6 @@ }; networks = { "40-${lan}" = { matchConfig.Name = lan; - addresses = [ - { - Address = "fe80::1/64"; - Scope = "link"; - } - { - Address = "${ulaPrefix}:42::1/48"; - } - { - Address = "10.0.0.1/16"; - } - ]; networkConfig = { IPv6AcceptRA = false; DHCPPrefixDelegation = true;@@ -157,7 +177,7 @@ DNS = builtins.filter netlib.isv6 myAddresses; }; ipv6Prefixes = [ { - Prefix = "${ulaPrefix}:42::/56"; + Prefix = "${ulaPrefix}::/48"; AddressAutoconfiguration = false; Assign = false; }@@ -307,7 +327,7 @@ dhcp-authoritative = true; dhcp-rapid-commit = true; dhcp-range = [ "10.0.1.10,10.0.250.250,48h" - "${ulaPrefix}:42::10,${ulaPrefix}:42::ffff,64,48h" + "${ulaPrefix}:42::10,${ulaPrefix}:42::ffff:ffff,7d" # "set:ra6,::,constructor:${lan},ra-stateless" ];