diff --git a/modules/common/configuration.nix b/modules/common/configuration.nix index 716a848..0abadcc 100644 --- a/modules/common/configuration.nix +++ b/modules/common/configuration.nix @@ -13,6 +13,24 @@ networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. + # No host declares a DNS search domain anywhere else, and cross-host + # references throughout this repo (vars.nfsServerHost, vars.nixCacheHost, + # vars.dockerHost, ...) are bare short names, not FQDNs -- resolving them + # depends entirely on whatever network stack happens to be in play + # picking up the DHCP-advertised domain as a search suffix. NetworkManager + # does that by default, which is why this went unnoticed on + # NetworkManager-managed hosts, but LXC containers (modules/platforms/lxc.nix + # force-disables NetworkManager and Proxmox writes their systemd-networkd + # config itself) never get one. Confirmed live on lxc-docker: systemd-resolved + # had no search domain for eth0, "server" failed to resolve + # ("Name or service not known") while "server.sweet.home" resolved fine via + # the same DNS server, so every NFS mount in modules/docker/mount-data.nix + # failed even after fixing the automount/mount=nfs bugs. This applies the + # search domain globally via systemd-resolved's own config rather than the + # per-link DHCP path, so it isn't at the mercy of whichever component owns + # a given host's interface file. + networking.search = [ vars.homeDomain ]; + # Recommended over the true default (bypasses ZFS's own import safeguards) # per the option's own docs; matches hosts/docker/host.nix and # modules/services/zfs/enable-service.nix, which already set this