diff --git a/devices/srv1/node0/default.nix b/devices/srv1/node0/default.nix index 86fcad76..fcad7d4a 100644 --- a/devices/srv1/node0/default.nix +++ b/devices/srv1/node0/default.nix @@ -4,7 +4,15 @@ inputs: { nixos = { - system.nixpkgs.march = "cascadelake"; + system = + { + nixpkgs.march = "cascadelake"; + networking.networkd.static = + { + eno145 = { ip = "192.168.1.10"; mask = 24; gateway = "192.168.1.1"; }; + eno146 = { ip = "192.168.178.10"; mask = 24; }; + }; + }; packages.vasp = null; services = { diff --git a/modules/system/networking.nix b/modules/system/networking.nix index a5e9c1f0..33fe9014 100644 --- a/modules/system/networking.nix +++ b/modules/system/networking.nix @@ -16,7 +16,7 @@ inputs: { ip = mkOption { type = types.nonEmptyStr; }; mask = mkOption { type = types.ints.unsigned; }; - gateway = mkOption { type = types.nonEmptyStr; }; + gateway = mkOption { type = types.nullOr types.nonEmptyStr; default = null; }; dns = mkOption { type = types.nonEmptyStr; default = null; }; };}); default = {}; @@ -91,8 +91,9 @@ inputs: value = { matchConfig.Name = network.name; - address = [ "${network.ip}/${builtins.toString network.mask}" ]; - routes = [{ routeConfig.Gateway = network.gateway; }]; + address = [ "${network.value.ip}/${builtins.toString network.value.mask}" ]; + routes = inputs.lib.mkIf (network.value.gateway != null) + [{ Gateway = network.value.gateway; Destination = "0.0.0.0/0"; }]; linkConfig.RequiredForOnline = "routable"; }; })