diff --git a/hosts/vm/apprentix/default.nix b/hosts/vm/apprentix/default.nix index 81e5c14..4e67e57 100644 --- a/hosts/vm/apprentix/default.nix +++ b/hosts/vm/apprentix/default.nix @@ -13,7 +13,7 @@ enable = true; networking = { - id = "50"; + id = 150; srvNat.enable = true; }; diff --git a/hosts/vm/jitsi/default.nix b/hosts/vm/jitsi/default.nix index f04f286..518a948 100644 --- a/hosts/vm/jitsi/default.nix +++ b/hosts/vm/jitsi/default.nix @@ -13,7 +13,7 @@ enable = true; networking = { - id = "63"; + id = 163; srv = { enable = true; ipv4 = "185.230.79.15"; diff --git a/hosts/vm/livre/default.nix b/hosts/vm/livre/default.nix index 042d63c..9b669a9 100644 --- a/hosts/vm/livre/default.nix +++ b/hosts/vm/livre/default.nix @@ -13,7 +13,7 @@ enable = true; networking = { - id = "40"; + id = 140; srvNat.enable = true; }; diff --git a/hosts/vm/neo/default.nix b/hosts/vm/neo/default.nix index f845f57..f2f99ae 100644 --- a/hosts/vm/neo/default.nix +++ b/hosts/vm/neo/default.nix @@ -16,7 +16,7 @@ enable = true; networking = { - id = "41"; + id = 141; srv = { enable = true; ipv4 = "185.230.79.5"; diff --git a/hosts/vm/nextcloud/default.nix b/hosts/vm/nextcloud/default.nix index 5bea3e0..99c1ae6 100644 --- a/hosts/vm/nextcloud/default.nix +++ b/hosts/vm/nextcloud/default.nix @@ -12,7 +12,7 @@ crans = { enable = true; networking = { - id = "46"; + id = 146; srvNat = { enable = true; interface = "ens20"; diff --git a/hosts/vm/periodique/default.nix b/hosts/vm/periodique/default.nix index e59b98a..d66df0b 100644 --- a/hosts/vm/periodique/default.nix +++ b/hosts/vm/periodique/default.nix @@ -13,7 +13,7 @@ enable = true; networking = { - id = "18"; + id = 118; srvNat.enable = true; }; diff --git a/hosts/vm/redite/default.nix b/hosts/vm/redite/default.nix index f4cf49f..45dea89 100644 --- a/hosts/vm/redite/default.nix +++ b/hosts/vm/redite/default.nix @@ -13,7 +13,7 @@ enable = true; networking = { - id = "39"; + id = 139; srvNat.enable = true; }; diff --git a/hosts/vm/reverseproxy/default.nix b/hosts/vm/reverseproxy/default.nix index cc37e51..4c56498 100644 --- a/hosts/vm/reverseproxy/default.nix +++ b/hosts/vm/reverseproxy/default.nix @@ -17,7 +17,7 @@ enable = true; networking = { - id = "51"; + id = 151; srvNat.enable = true; srv = { enable = true; diff --git a/hosts/vm/two/default.nix b/hosts/vm/two/default.nix index b280e43..a87ebcd 100644 --- a/hosts/vm/two/default.nix +++ b/hosts/vm/two/default.nix @@ -12,7 +12,7 @@ enable = true; networking = { - id = "35"; + id = 135; srvNat = { enable = true; interface = "ens19"; diff --git a/hosts/vm/vaultwarden/default.nix b/hosts/vm/vaultwarden/default.nix index 26cfe43..523b73d 100644 --- a/hosts/vm/vaultwarden/default.nix +++ b/hosts/vm/vaultwarden/default.nix @@ -13,7 +13,7 @@ enable = true; networking = { - id = "59"; + id = 159; srvNat.enable = true; }; diff --git a/modules/crans/networking.nix b/modules/crans/networking.nix index 42b43fa..60ac51e 100644 --- a/modules/crans/networking.nix +++ b/modules/crans/networking.nix @@ -9,16 +9,21 @@ let mkOption types ; -in + idString = toString cfg.id; + hostId = lib.mod cfg.id 100; + hostIdString = lib.fixedWidthString 2 "0" (toString hostId); + isVm = cfg.id >= 100; + isVmString = toString isVm; +in { options.crans.networking = { enable = mkEnableOption "Configuration réseaux commune à toutes les machines du Crans."; id = mkOption { - type = types.str; - example = "35"; - description = "Le numéro de la VM dans Proxmox (sans le `1` devant)."; + type = types.int; + example = 135; + description = "Le numéro de la VM dans Proxmox."; }; adm = { @@ -97,14 +102,14 @@ in adm = { ipv4.addresses = [ { - address = "172.16.10.1${cfg.id}"; + address = "172.16.10.${idString}"; prefixLength = 24; } ]; ipv6.addresses = [ { - address = "fd00::10:0:ff:fe01:${cfg.id}10"; + address = "fd00::10:0:ff:fe0${isVmString}:${hostIdString}10"; prefixLength = 64; } ]; @@ -130,7 +135,7 @@ in ipv6 = { addresses = [ { - address = "2a0c:700:2::ff:fe01:${cfg.id}02"; + address = "2a0c:700:2::ff:fe0${isVmString}:${hostIdString}02"; prefixLength = 64; } ]; @@ -149,7 +154,7 @@ in ipv4 = { addresses = [ { - address = "172.16.3.1${cfg.id}"; + address = "172.16.3.${idString}"; prefixLength = 24; } ]; @@ -165,7 +170,7 @@ in ipv6 = { addresses = [ { - address = "2a0c:700:3::ff:fe01:${cfg.id}03"; + address = "2a0c:700:3::ff:fe0${isVmString}:${hostIdString}03"; prefixLength = 64; } ]; @@ -183,14 +188,14 @@ in san = { ipv4.addresses = [ { - address = "172.16.4.1${cfg.id}"; + address = "172.16.4.${idString}"; prefixLength = 24; } ]; ipv6.addresses = [ { - address = "fd00::4:0:ff:fe01:${cfg.id}04"; + address = "fd00::4:0:ff:fe0${isVmString}:${hostIdString}04"; prefixLength = 64; } ];