Browse Source

Add basic config for networkd.

master
Kevin Baensch 3 months ago
parent
commit
29b64aadfd
Signed by: derped GPG Key ID: C0F1D326C7626543
  1. 37
      config/networking.nix
  2. 7
      options/machine.nix

37
config/networking.nix

@ -1,7 +1,42 @@
{ config, ... }:
{ config, lib, ... }:
with lib;
{
networking = {
hostName = config.machine.hostName;
useNetworkd = config.machine.useNetworkd;
useDHCP = !config.machine.useNetworkd;
dhcpcd.enable = !config.machine.useNetworkd;
};
# Based on
# https://github.com/NixOS/nixpkgs/issues/10001#issuecomment-905532069
systemd.network = mkIf config.machine.useNetworkd {
enable = true;
networks = let
networkConfig = {
DHCP = "yes";
DNSSEC = "yes";
DNSOverTLS = "yes";
DNS = [ "1.1.1.1" "1.0.0.1" ];
};
in {
"40-wired" = {
enable = true;
name = "en*";
dhcpV4Config.RouteMetric = 2048;
inherit networkConfig;
};
"40-wireless" = {
enable = true;
name = "wl*";
dhcpV4Config.RouteMetric = 1024;
inherit networkConfig;
};
};
};
# Wait for any interface to become available, not for all
systemd.services."systemd-networkd-wait-online".serviceConfig.ExecStart = [
"" "${config.systemd.package}/lib/systemd/systemd-networkd-wait-online --any"
];
}

7
options/machine.nix

@ -59,6 +59,13 @@ in {
The Machines HostName
'';
};
useNetworkd = mkOption {
type = types.bool;
default = false;
description = ''
Disables dhcpcd and enables networkd.
'';
};
binaryCaches = mkOption {
type = types.listOf types.str;
default = [];

Loading…
Cancel
Save