From 644216378f64f30dcfb02056b84d2f5fae1b7cbb Mon Sep 17 00:00:00 2001 From: pigeonmoelleux Date: Wed, 25 Jun 2025 16:57:50 +0200 Subject: [PATCH 1/3] =?UTF-8?q?Corrections=20probl=C3=A8mes=20r=C3=A9seaux?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/crans/networking.nix | 70 +++++++++++++----------------------- 1 file changed, 24 insertions(+), 46 deletions(-) diff --git a/modules/crans/networking.nix b/modules/crans/networking.nix index a376fb2..46e3b17 100644 --- a/modules/crans/networking.nix +++ b/modules/crans/networking.nix @@ -72,18 +72,21 @@ in }; config = mkIf cfg.enable { - networking = - { - useDHCP = false; - firewall.enable = lib.mkDefault false; - nameservers = [ "172.16.10.128" ]; - } - // - # Configuration du VLAN adm - ( - if cfg.adm.enable then - { - interfaces."${cfg.adm.interface}" = { + networking = { + useDHCP = false; + firewall.enable = lib.mkDefault false; + nameservers = [ "172.16.10.128" ]; + + interfaces = + lib.attrsets.mapAttrs' + (interface: conf: { + name = cfg."${interface}".interface; + value = conf; + }) + ( + lib.attrsets.filterAttrs (interface: _: cfg."${interface}".enable) { + # Configuration du VLAN adm + adm = { ipv4.addresses = [ { address = "172.16.10.1${cfg.id}"; @@ -98,18 +101,9 @@ in } ]; }; - } - else - { } - ) - // - # Configuration du VLAN srv - ( - if cfg.srv.enable then - { - firewall.enable = true; - interfaces."${cfg.srv.interface}" = { + # Configuration du VLAN srv + srv = { ipv4 = { addresses = [ { @@ -141,17 +135,9 @@ in ]; }; }; - } - else - { } - ) - // - # Configuration du VLAN srv-nat - ( - if cfg.srvNat.enable then - { - interfaces."${cfg.srvNat.interface}" = { + # Configuration du VLAN srv-nat + srvNat = { ipv4 = { addresses = [ { @@ -184,16 +170,9 @@ in ]; }; }; - } - else - { } - ) - // - # Configuration du VLAN san - ( - if cfg.san.enable then - { - interfaces."${cfg.san.interface}" = { + + # Configuration du VLAN san + san = { ipv4.addresses = [ { address = "172.16.4.1${cfg.id}"; @@ -209,8 +188,7 @@ in ]; }; } - else - { } - ); + ); + }; }; } From 6f8c5a7cafdadda9988983c07a53f6858fca447e Mon Sep 17 00:00:00 2001 From: pigeonmoelleux Date: Wed, 25 Jun 2025 17:07:55 +0200 Subject: [PATCH 2/3] Ajout commentaire fonctionnement interfaces --- modules/crans/networking.nix | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/modules/crans/networking.nix b/modules/crans/networking.nix index 46e3b17..0696806 100644 --- a/modules/crans/networking.nix +++ b/modules/crans/networking.nix @@ -77,13 +77,21 @@ in firewall.enable = lib.mkDefault false; nameservers = [ "172.16.10.128" ]; + # La configuration des interfaces se fait de la manière suivante : + # elle est écrite de manière générique pour toutes les machines, puis + # on filtre pour ne garder que les interfaces activées. nix fait de + # l'évaluation paresseuse donc ça fonctionne bien ! interfaces = + # On change le nom des interfaces de "adm", "srv", ... pour leur vrai + # nom (on ne le met pas directement pour faire fonctionner le filter + # plus bas). lib.attrsets.mapAttrs' (interface: conf: { name = cfg."${interface}".interface; value = conf; }) ( + # On filtre sur les interfaces activées lib.attrsets.filterAttrs (interface: _: cfg."${interface}".enable) { # Configuration du VLAN adm adm = { From a255229ceb3983b664bbca8e62b76e6ce91ec845 Mon Sep 17 00:00:00 2001 From: pigeonmoelleux Date: Wed, 25 Jun 2025 17:13:40 +0200 Subject: [PATCH 3/3] =?UTF-8?q?Fix=20interface=20par=20d=C3=A9faut=20de=20?= =?UTF-8?q?srv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/crans/networking.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/crans/networking.nix b/modules/crans/networking.nix index 0696806..97f7c4e 100644 --- a/modules/crans/networking.nix +++ b/modules/crans/networking.nix @@ -37,8 +37,8 @@ in interface = mkOption { type = types.str; - default = "ens18"; - example = "ens19"; + default = "ens19"; + example = "ens20"; description = "Nom de l'interface réseau sur laquelle est située le VLAN srv."; };