From d600da70457a8ca8d9543eb48b73e7c5eae1656f Mon Sep 17 00:00:00 2001 From: Andreas Rammhold Date: Sat, 11 May 2019 00:28:24 +0200 Subject: [PATCH] nixos/networkd: use the route section for default routes With systemd v242 using the `Gateway` attribute of the `[Network]` section will lead to "onlink" routes on all the device that are matched by the default configuration (typically all devices) causing multiple default routes (even on localhost). We can only avoid that - while keeping our default route option - when we mark the route as explicitly not on link. Only gateways that are within a subnet of one of the assigned interface addresses will be installed into the routing table. --- nixos/modules/tasks/network-interfaces-systemd.nix | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix index dd9ba9eec42..b9c1387cea5 100644 --- a/nixos/modules/tasks/network-interfaces-systemd.nix +++ b/nixos/modules/tasks/network-interfaces-systemd.nix @@ -59,7 +59,14 @@ in in { DHCP = override (dhcpStr cfg.useDHCP); } // optionalAttrs (gateway != [ ]) { - gateway = override gateway; + routes = override [ + { + routeConfig = { + Gateway = gateway; + GatewayOnlink = false; + }; + } + ]; } // optionalAttrs (domains != [ ]) { domains = override domains; };