nixfiles/nixos/modules/network.nix

45 lines
1.3 KiB
Nix
Raw Normal View History

{ lib, pkgs, config, ... }:
let
2025-03-08 18:47:04 +00:00
inherit (lib) flatten optional mkIf mkDefault mkMerge versionAtLeast;
in
{
config = mkMerge [
{
networking = {
2023-11-02 13:41:50 +00:00
domain = mkDefault "int.${lib.my.c.pubDomain}";
useDHCP = false;
enableIPv6 = mkDefault true;
useNetworkd = mkDefault true;
};
2022-05-18 23:29:52 +01:00
systemd = {
2025-03-08 18:47:04 +00:00
additionalUpstreamSystemUnits = mkIf (config.system.nixos.release == "24.12:u-24.11") [
# TODO: NixOS has its own version of this, but with `network` instead of `networkd`. Is this just a typo? It
# hasn't been updated in 2 years...
2025-03-08 18:47:04 +00:00
# This has been done upstream now :)
# TODO: Remove when 25.05 releases
"systemd-networkd-wait-online@.service"
];
};
2022-05-23 00:57:25 +01:00
services.resolved = {
domains = [ config.networking.domain ];
# Explicitly unset fallback DNS (Nix module will not allow for a blank config)
extraConfig = ''
FallbackDNS=
2022-05-28 13:57:01 +01:00
Cache=no-negative
2022-05-23 00:57:25 +01:00
'';
};
}
(mkIf config.my.build.isDevVM {
networking.interfaces.eth0.useDHCP = mkDefault true;
virtualisation = {
forwardPorts = flatten [
(optional config.services.openssh.openFirewall { from = "host"; host.port = 2222; guest.port = 22; })
];
};
})
];
}