mirror of https://gitlab.crans.org/nounous/nixos
Merge branch 'fix-factorisation' into 'main'
Corrections problèmes réseaux See merge request nounous/nixos!21merge-requests/21/merge
commit
0f36d759d2
|
@ -37,8 +37,8 @@ in
|
||||||
|
|
||||||
interface = mkOption {
|
interface = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
default = "ens18";
|
default = "ens19";
|
||||||
example = "ens19";
|
example = "ens20";
|
||||||
description = "Nom de l'interface réseau sur laquelle est située le VLAN srv.";
|
description = "Nom de l'interface réseau sur laquelle est située le VLAN srv.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -72,18 +72,29 @@ in
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
networking =
|
networking = {
|
||||||
{
|
|
||||||
useDHCP = false;
|
useDHCP = false;
|
||||||
firewall.enable = lib.mkDefault false;
|
firewall.enable = lib.mkDefault false;
|
||||||
nameservers = [ "172.16.10.128" ];
|
nameservers = [ "172.16.10.128" ];
|
||||||
}
|
|
||||||
//
|
# La configuration des interfaces se fait de la manière suivante :
|
||||||
# Configuration du VLAN adm
|
# 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;
|
||||||
|
})
|
||||||
(
|
(
|
||||||
if cfg.adm.enable then
|
# On filtre sur les interfaces activées
|
||||||
{
|
lib.attrsets.filterAttrs (interface: _: cfg."${interface}".enable) {
|
||||||
interfaces."${cfg.adm.interface}" = {
|
# Configuration du VLAN adm
|
||||||
|
adm = {
|
||||||
ipv4.addresses = [
|
ipv4.addresses = [
|
||||||
{
|
{
|
||||||
address = "172.16.10.1${cfg.id}";
|
address = "172.16.10.1${cfg.id}";
|
||||||
|
@ -98,18 +109,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 = {
|
ipv4 = {
|
||||||
addresses = [
|
addresses = [
|
||||||
{
|
{
|
||||||
|
@ -141,17 +143,9 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
|
||||||
else
|
|
||||||
{ }
|
|
||||||
)
|
|
||||||
|
|
||||||
//
|
|
||||||
# Configuration du VLAN srv-nat
|
# Configuration du VLAN srv-nat
|
||||||
(
|
srvNat = {
|
||||||
if cfg.srvNat.enable then
|
|
||||||
{
|
|
||||||
interfaces."${cfg.srvNat.interface}" = {
|
|
||||||
ipv4 = {
|
ipv4 = {
|
||||||
addresses = [
|
addresses = [
|
||||||
{
|
{
|
||||||
|
@ -184,16 +178,9 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
|
||||||
else
|
|
||||||
{ }
|
|
||||||
)
|
|
||||||
//
|
|
||||||
# Configuration du VLAN san
|
# Configuration du VLAN san
|
||||||
(
|
san = {
|
||||||
if cfg.san.enable then
|
|
||||||
{
|
|
||||||
interfaces."${cfg.san.interface}" = {
|
|
||||||
ipv4.addresses = [
|
ipv4.addresses = [
|
||||||
{
|
{
|
||||||
address = "172.16.4.1${cfg.id}";
|
address = "172.16.4.1${cfg.id}";
|
||||||
|
@ -209,8 +196,7 @@ in
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{ }
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue