wip static net
This commit is contained in:
parent
a1a5ee1f8f
commit
8f4e907bce
@ -11,6 +11,35 @@ in
|
|||||||
enableIWD = mkEnableOption "Enable IWD";
|
enableIWD = mkEnableOption "Enable IWD";
|
||||||
useDHCP = mkBoolOpt true "Use DHCP";
|
useDHCP = mkBoolOpt true "Use DHCP";
|
||||||
useNetworkd = mkBoolOpt false "Use networkd";
|
useNetworkd = mkBoolOpt false "Use networkd";
|
||||||
|
useStatic = lib.mkOption {
|
||||||
|
type = lib.types.submodule {
|
||||||
|
options = {
|
||||||
|
interface = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Network interface name";
|
||||||
|
example = "enp0s3";
|
||||||
|
};
|
||||||
|
address = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Static IP address";
|
||||||
|
example = "10.0.20.200";
|
||||||
|
};
|
||||||
|
defaultGateway = lib.mkOption {
|
||||||
|
type = lib.types.str;
|
||||||
|
description = "Default gateway IP";
|
||||||
|
example = "10.0.20.254";
|
||||||
|
};
|
||||||
|
nameservers = lib.mkOption {
|
||||||
|
type = lib.types.listOf lib.types.str;
|
||||||
|
description = "List of DNS servers";
|
||||||
|
example = [ "10.0.20.254" "8.8.8.8" ];
|
||||||
|
default = [ "8.8.8.8" "8.8.4.4" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
default = null;
|
||||||
|
description = "Static Network Configuration";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
@ -24,24 +53,19 @@ in
|
|||||||
|
|
||||||
networking = {
|
networking = {
|
||||||
firewall = enabled;
|
firewall = enabled;
|
||||||
useDHCP = mkDefault cfg.useDHCP;
|
useDHCP = mkIf (cfg.useStatic == null) (mkDefault cfg.useDHCP);
|
||||||
useNetworkd = cfg.useNetworkd;
|
useNetworkd = cfg.useNetworkd;
|
||||||
} // (lib.optionalAttrs cfg.enableIWD) {
|
} // (lib.optionalAttrs (cfg.enableIWD) {
|
||||||
wireless.iwd = {
|
wireless.iwd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
settings.General.EnableNetworkConfiguration = true;
|
settings.General.EnableNetworkConfiguration = true;
|
||||||
};
|
};
|
||||||
};
|
}) // (lib.optionalAttrs (cfg.useStatic != null) {
|
||||||
|
inherit (cfg.useStatic) defaultGateway nameservers;
|
||||||
# TODO - Network Configuration
|
interfaces.${cfg.useStatic.interface}.ipv4.addresses = [{
|
||||||
# (lib.mkIf (config.network != null) {
|
inherit (cfg.useStatic) address;
|
||||||
# networking = {
|
prefixLength = 24;
|
||||||
# inherit (config.network) defaultGateway nameservers;
|
}];
|
||||||
# interfaces.${config.network.interface}.ipv4.addresses = [{
|
});
|
||||||
# inherit (config.network) address;
|
|
||||||
# prefixLength = 24;
|
|
||||||
# }];
|
|
||||||
# };
|
|
||||||
# })
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -15,7 +15,16 @@ in
|
|||||||
enable = true;
|
enable = true;
|
||||||
diskPath = "/dev/xvda";
|
diskPath = "/dev/xvda";
|
||||||
};
|
};
|
||||||
networking = enabled; # TODO - Network Config
|
networking = {
|
||||||
|
enable = true;
|
||||||
|
useDHCP = false;
|
||||||
|
useStatic = {
|
||||||
|
interface = "enX0";
|
||||||
|
address = "10.0.50.130";
|
||||||
|
defaultGateway = "10.0.50.254";
|
||||||
|
nameservers = [ "10.0.50.254" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user