diff options
Diffstat (limited to 'modules/system/nixos/networking')
| -rw-r--r-- | modules/system/nixos/networking/default.nix | 20 | ||||
| -rw-r--r-- | modules/system/nixos/networking/iwd.nix | 12 | ||||
| -rw-r--r-- | modules/system/nixos/networking/networkd.nix | 74 | ||||
| -rw-r--r-- | modules/system/nixos/networking/networkmanager.nix | 18 | ||||
| -rw-r--r-- | modules/system/nixos/networking/wpasupplicant.nix | 15 |
5 files changed, 64 insertions, 75 deletions
diff --git a/modules/system/nixos/networking/default.nix b/modules/system/nixos/networking/default.nix index f063036..04cd1c3 100644 --- a/modules/system/nixos/networking/default.nix +++ b/modules/system/nixos/networking/default.nix @@ -1,14 +1,22 @@ { imports = [ - ./iwd.nix - ./networkmanager.nix - ./networkd.nix ./resolved.nix + + ./networkd.nix + ./iwd.nix + ./wpasupplicant.nix ]; - networking.firewall = { - enable = true; - checkReversePath = "loose"; + networking = { + firewall = { + enable = true; + checkReversePath = "loose"; + }; + + # Disable default networking stuff + dhcpcd.enable = false; + useDHCP = false; + networkmanager.enable = false; }; # disable all ipv6 diff --git a/modules/system/nixos/networking/iwd.nix b/modules/system/nixos/networking/iwd.nix index eea35d8..0c5bdfa 100644 --- a/modules/system/nixos/networking/iwd.nix +++ b/modules/system/nixos/networking/iwd.nix @@ -3,25 +3,21 @@ config, ... }: let - cfg = config.collinux.system.network.iwd; + cfg = config.collinux.system.network; + enabled = cfg.wireless.dynamic; in - lib.mkIf cfg.enable { + lib.mkIf enabled { networking = { wireless.iwd = { enable = true; settings = { General = { - EnableNetworkConfiguration = !config.collinux.system.network.networkd.enable; + EnableNetworkConfiguration = false; # always let networkd handle this AddressRandomization = "once"; AddressRandomizationRange = "full"; }; Network.NameResolvingService = "systemd"; # either systemd or resolvconf }; }; - - # Disable default networking stuff - dhcpcd.enable = false; - useDHCP = false; - networkmanager.enable = false; }; } diff --git a/modules/system/nixos/networking/networkd.nix b/modules/system/nixos/networking/networkd.nix index d0e9eed..2c7f580 100644 --- a/modules/system/nixos/networking/networkd.nix +++ b/modules/system/nixos/networking/networkd.nix @@ -1,56 +1,44 @@ { - lib, + # lib, config, ... }: let - cfg = config.collinux.system.network.networkd; - + cfg = config.collinux.system.network; dhcp_enabled = cfg.static == null; -in - lib.mkIf cfg.enable { - networking = { - wireless = - if !config.collinux.system.network.iwd.enable - then { - enable = true; - networks.${cfg.ssid}.pskRaw = "ext:psk"; - secretsFile = cfg.pskFile; - } - else {}; - - useNetworkd = true; - # Disable default networking stuff - dhcpcd.enable = false; - useDHCP = false; - networkmanager.enable = false; - }; + device = + if (cfg.wireless == null) + then "eth0" + else "wl*"; +in { + networking.useNetworkd = true; + systemd.network = { + enable = true; - systemd.network = { + wait-online = { enable = true; + ignoredInterfaces = ["docker0"]; + anyInterface = true; + }; - wait-online = { - enable = true; - ignoredInterfaces = ["docker0"]; - anyInterface = true; - }; - - networks."11-lan" = { - name = "wl*"; - - networkConfig = ( - if dhcp_enabled - then {DHCP = "yes";} - else { - Address = cfg.static.ip; - Gateway = cfg.static.gateway; - DHCP = "no"; - # DNS is managed by systemd-resolved (not specified here) - } - ); + networks."11-default" = + if dhcp_enabled + then { + name = device; + networkConfig.DHCP = "yes"; + # never accept dhcp dns dhcpV4Config.UseDNS = "no"; dhcpV6Config.UseDNS = "no"; + } + else { + name = device; + networkConfig = { + Address = cfg.static.ip; + Gateway = cfg.static.gateway; + DHCP = "no"; + # DNS is managed by systemd-resolved (not specified here) + }; }; - }; - } + }; +} diff --git a/modules/system/nixos/networking/networkmanager.nix b/modules/system/nixos/networking/networkmanager.nix deleted file mode 100644 index c2d6dd1..0000000 --- a/modules/system/nixos/networking/networkmanager.nix +++ /dev/null @@ -1,18 +0,0 @@ -{ - lib, - config, - ... -}: let - cfg = config.collinux.system.network.networkmanager; -in - lib.mkIf cfg.enable { - networking = { - networkmanager = { - enable = true; - dns = "systemd-resolved"; - dhcp = "internal"; - }; - - dhcpcd.enable = false; - }; - } diff --git a/modules/system/nixos/networking/wpasupplicant.nix b/modules/system/nixos/networking/wpasupplicant.nix new file mode 100644 index 0000000..8314095 --- /dev/null +++ b/modules/system/nixos/networking/wpasupplicant.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: let + cfg = config.collinux.system.network.wireless; + enabled = cfg.static != null; +in + lib.mkIf enabled { + networking.wireless = { + enable = true; + networks.${cfg.static.ssid}.pskRaw = "ext:psk"; + secretsFile = cfg.static.pskFile; + }; + } |
