NAT/forwarding PXE -> Internet (routage manquant)
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user