From da28b26d642ee9401eb1b16e2bc7989c058a0535 Mon Sep 17 00:00:00 2001 From: pennae Date: Sat, 18 Jun 2022 09:25:56 +0200 Subject: [PATCH] nixos/networking: fix v4+v6 default gateways with networkd fixes #178078 --- nixos/modules/tasks/network-interfaces-systemd.nix | 9 ++++----- nixos/tests/networking.nix | 3 +++ 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix index 80808e0c08f..069116ff0a6 100644 --- a/nixos/modules/tasks/network-interfaces-systemd.nix +++ b/nixos/modules/tasks/network-interfaces-systemd.nix @@ -59,15 +59,14 @@ in genericNetwork = override: let gateway = optional (cfg.defaultGateway != null && (cfg.defaultGateway.address or "") != "") cfg.defaultGateway.address ++ optional (cfg.defaultGateway6 != null && (cfg.defaultGateway6.address or "") != "") cfg.defaultGateway6.address; - in optionalAttrs (gateway != [ ]) { - routes = override [ - { + makeGateway = gateway: { routeConfig = { Gateway = gateway; GatewayOnLink = false; }; - } - ]; + }; + in optionalAttrs (gateway != [ ]) { + routes = override (map makeGateway gateway); } // optionalAttrs (domains != [ ]) { domains = override domains; }; diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix index 1fe1229f24a..a00ff165d42 100644 --- a/nixos/tests/networking.nix +++ b/nixos/tests/networking.nix @@ -98,6 +98,7 @@ let useNetworkd = networkd; useDHCP = false; defaultGateway = "192.168.1.1"; + defaultGateway6 = "fd00:1234:5678:1::1"; interfaces.eth1.ipv4.addresses = mkOverride 0 [ { address = "192.168.1.2"; prefixLength = 24; } { address = "192.168.1.3"; prefixLength = 32; } @@ -139,6 +140,8 @@ let with subtest("Test default gateway"): router.wait_until_succeeds("ping -c 1 192.168.3.1") client.wait_until_succeeds("ping -c 1 192.168.3.1") + router.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1") + client.wait_until_succeeds("ping -c 1 fd00:1234:5678:3::1") ''; }; routeType = {