From c3a5778d3fba7101e96d612e913a731e3f88389b Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Tue, 17 Jan 2023 13:14:56 +0800 Subject: [PATCH] hosts/ni: convert to systemd-networkd for network config I thought it is pretty neat. Also, I've created a bond interface for the network devices. --- hosts/ni/hardware-configuration.nix | 47 +++++++++++++++++++++++++++-- 1 file changed, 44 insertions(+), 3 deletions(-) diff --git a/hosts/ni/hardware-configuration.nix b/hosts/ni/hardware-configuration.nix index 8ab44543..284ec89c 100644 --- a/hosts/ni/hardware-configuration.nix +++ b/hosts/ni/hardware-configuration.nix @@ -25,9 +25,50 @@ swapDevices = [{ label = "swap"; }]; - networking.useDHCP = false; - networking.interfaces.enp1s0.useDHCP = true; - networking.interfaces.wlp2s0.useDHCP = true; + networking = { + useDHCP = false; + usePredictableInterfaceNames = true; + useNetworkd = true; + + # We're using networkd to configure so we're disabling this + # service. + dhcpcd.enable = false; + }; + + # Enable systemd-resolved. This is mostly setup by `systemd.network.enable` + # by we're being explicit just to be safe. + services.resolved = { + enable = true; + llmnr = "true"; + }; + + # Combining my ethernet and wireless network interfaces. + systemd.network = { + enable = true; + netdevs."40-bond1" = { + netdevConfig = { + Name = "bond1"; + Kind = "bond"; + }; + }; + + networks = { + "40-bond1" = { + matchConfig.Name = "bond1"; + networkConfig.DHCP = "yes"; + }; + + "40-bond1-dev1" = { + matchConfig.Name = "enp1s0"; + networkConfig.Bond = "bond1"; + }; + + "40-bond1-dev2" = { + matchConfig.Name = "wlp2s0"; + networkConfig.Bond = "bond1"; + }; + }; + }; powerManagement.cpuFreqGovernor = lib.mkDefault "powersave"; hardware.cpu.intel.updateMicrocode = lib.mkDefault true;