NixOS-Config/modules/nixos/contabo/wan/default.nix

66 lines
1.4 KiB
Nix
Raw Normal View History

2024-03-02 23:15:23 +01:00
{
lib,
config,
...
}:
with lib; let
cfg = config.modules.contabo.wan;
in {
options.modules.contabo.wan = {
enable = mkEnableOption "Enable Contabo Cloud WAN interface configuration";
macAddress = mkOption {
type = types.str;
description = "MAC Address of the WAN interface";
};
ipAddresses = mkOption {
type = types.listOf types.str;
description = "List of IP Addresses on the WAN interface";
};
};
config = mkIf cfg.enable {
systemd.network.networks."20-wan" = {
matchConfig = {
MACAddress = cfg.macAddress;
};
address = cfg.ipAddresses;
routes = [
{routeConfig.Gateway = "fe80::1";}
2024-03-03 00:21:14 +01:00
{routeConfig = {Destination = "62.171.160.1";};}
2024-03-02 23:15:23 +01:00
{
routeConfig = {
2024-03-03 00:21:14 +01:00
Gateway = "62.171.160.1";
2024-03-02 23:15:23 +01:00
GatewayOnLink = true;
};
}
{
routeConfig = {
Destination = "172.16.0.0/12";
Type = "unreachable";
};
}
{
routeConfig = {
Destination = "192.168.0.0/16";
Type = "unreachable";
};
}
{
routeConfig = {
Destination = "10.0.0.0/8";
Type = "unreachable";
};
}
{
routeConfig = {
Destination = "fc00::/7";
Type = "unreachable";
};
}
];
};
};
}