NAT/forwarding PXE -> Internet (routage manquant)

This commit is contained in:
2026-09-09 10:31:41 +02:00
parent 213ba07cfe
commit 9fdef043d9
+23 -2
View File
@@ -20,6 +20,11 @@ let
interface = "enp0s31f6";
serverIp = "192.168.1.10";
# Interface par laquelle CE serveur a lui-même accès à Internet — c'est
# elle qui sert de sortie NAT pour le segment PXE (utile seulement en
# standaloneDhcp = true, où ce serveur est aussi la passerelle).
internetInterface = "wlp3s0";
fleetRepo = "git+https://gitea.miniclic.net/Damien/Nixos_Fleet.git";
webroot = "/var/www/pxe";
tftpRoot = "/var/lib/tftpboot";
@@ -85,8 +90,13 @@ in
"dhcp-range" = [ "192.168.1.50,192.168.1.150,12h" ]; # à adapter au réseau cible
# port = 0 désactive le DNS de dnsmasq : sans ça, les PC installés
# via DHCP de ce serveur n'ont aucun serveur DNS fonctionnel et ne
# peuvent résoudre ni GitHub ni Gitea pendant l'install.
"dhcp-option" = [ "option:dns-server,1.1.1.1,9.9.9.9" ];
# peuvent résoudre ni GitHub ni Gitea pendant l'install. Pareil
# pour la passerelle : sans "router" explicite, les PC installés
# n'ont aucune route vers Internet (voir networking.nat plus bas).
"dhcp-option" = [
"option:dns-server,1.1.1.1,9.9.9.9"
"option:router,${serverIp}"
];
}
else
{ "dhcp-range" = [ "192.168.1.0,proxy" ]; } # à adapter au sous-réseau existant
@@ -179,6 +189,17 @@ in
}
];
# Route + NAT le segment PXE vers Internet via internetInterface. Sans
# ça, les PC installés reçoivent bien une IP/passerelle/DNS mais aucun
# paquet ne sort réellement du segment 192.168.1.0/24 — uniquement
# nécessaire en standaloneDhcp = true (ce serveur EST la passerelle).
boot.kernel.sysctl."net.ipv4.ip_forward" = lib.mkIf standaloneDhcp 1;
networking.nat = lib.mkIf standaloneDhcp {
enable = true;
internalInterfaces = [ interface ];
externalInterface = internetInterface;
};
services.openssh.enable = true;
# git installé pour de bon (pull/push manuels sans réouvrir un