router: add v6only sub-role Currently disabled due to issues with accessing v4 only hosts
2 files changed, 39 insertions(+), 0 deletions(-)
M system/roles/router.nix → system/roles/router.nix
@@ -32,6 +32,7 @@ justAddress = (a: builtins.head (lib.strings.splitString "/" a)); in { imports = [ + # ./router/v6only.nix ../settings/services/adguard-home.nix ];
A system/roles/router/v6only.nix
@@ -0,0 +1,38 @@ +let + nat64 = true; + + # TODO: change to 30 + v6OnlyPreferredLifetime = 15 * 60; + + prefix = "64:ff9b::/96"; +in +{ + services.adguardhome.settings.dns = { + use_dns64 = nat64; + }; + + services.dnsmasq.settings.dhcp-option = [ + "option:ipv6-only,${toString v6OnlyPreferredLifetime}" + ]; + + networking.jool = { + enable = nat64; + nat64 = { + default = { + global.pool6 = prefix; + }; + }; + }; + + systemd.network.networks = { + "60-bridge-pref64" = { + matchConfig.Kind = "bridge"; + + ipv6PREF64Prefixes = [ + { + Prefix = prefix; + } + ]; + }; + }; +}