2022-12-29 15:05:26 +01:00
|
|
|
{ config, ... }:
|
|
|
|
{
|
|
|
|
imports = [ ./uni.nix ];
|
|
|
|
|
2022-12-30 11:02:10 +01:00
|
|
|
sops.secrets = {
|
|
|
|
"wireless-env" = { };
|
2023-01-15 02:28:40 +01:00
|
|
|
"wireguard/dorm/private" = {
|
|
|
|
owner = config.users.users.systemd-network.name;
|
|
|
|
};
|
|
|
|
"wireguard/dorm/preshared" = {
|
|
|
|
owner = config.users.users.systemd-network.name;
|
|
|
|
};
|
2022-12-30 11:02:10 +01:00
|
|
|
};
|
2022-12-29 15:05:26 +01:00
|
|
|
networking = {
|
2023-01-15 02:28:40 +01:00
|
|
|
useNetworkd = true;
|
2022-12-29 15:05:26 +01:00
|
|
|
hostName = "thinkpad";
|
2023-01-01 17:31:22 +01:00
|
|
|
firewall.allowedTCPPortRanges = [{ from = 1714; to = 1764; }]; # open ports for kde connect
|
|
|
|
firewall.allowedUDPPortRanges = [{ from = 1714; to = 1764; }];
|
2022-12-29 15:05:26 +01:00
|
|
|
wireless = {
|
|
|
|
enable = true;
|
|
|
|
userControlled.enable = true;
|
|
|
|
environmentFile = config.sops.secrets."wireless-env".path;
|
|
|
|
networks = {
|
|
|
|
"@HOME_SSID@" = {
|
|
|
|
psk = "@HOME_PSK@";
|
|
|
|
authProtocols = [ "WPA-PSK" ];
|
|
|
|
};
|
|
|
|
"@DORM_SSID@" = {
|
|
|
|
psk = "@DORM_PSK@";
|
|
|
|
authProtocols = [ "WPA-PSK" ];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
2023-01-15 02:28:40 +01:00
|
|
|
};
|
|
|
|
systemd.network = {
|
|
|
|
enable = true;
|
|
|
|
wait-online.anyInterface = true;
|
2023-01-15 14:27:49 +01:00
|
|
|
networks."10-loopback" = {
|
|
|
|
matchConfig.Name = "lo";
|
|
|
|
};
|
|
|
|
networks."10-wired" = {
|
|
|
|
matchConfig.Name = "enp0s31f6";
|
|
|
|
networkConfig = {
|
|
|
|
DHCP = "yes";
|
2023-01-15 02:28:40 +01:00
|
|
|
};
|
2023-01-15 14:27:49 +01:00
|
|
|
dhcpV4Config = {
|
|
|
|
RouteMetric = 10;
|
2023-01-15 02:28:40 +01:00
|
|
|
};
|
|
|
|
};
|
2023-01-15 14:58:38 +01:00
|
|
|
networks."10-wireless-home" = {
|
|
|
|
matchConfig = {
|
|
|
|
Name = "wlp9s0";
|
|
|
|
SSID = "Smoerrebroed";
|
|
|
|
};
|
|
|
|
networkConfig = {
|
|
|
|
DHCP = "yes";
|
|
|
|
IgnoreCarrierLoss = "3s";
|
|
|
|
};
|
|
|
|
dhcpV4Config = {
|
|
|
|
RouteMetric = 20;
|
|
|
|
};
|
|
|
|
routes = [
|
|
|
|
# Route to the Model train network via raspi
|
|
|
|
{ routeConfig = { Gateway = "192.168.178.63"; Destination = "192.168.179.0/24"; }; }
|
|
|
|
];
|
|
|
|
};
|
|
|
|
networks."15-wireless-default" = {
|
2023-01-15 14:27:49 +01:00
|
|
|
matchConfig.Name = "wlp9s0";
|
|
|
|
networkConfig = {
|
|
|
|
DHCP = "yes";
|
|
|
|
IgnoreCarrierLoss = "3s";
|
2023-01-15 02:28:40 +01:00
|
|
|
};
|
2023-01-15 14:27:49 +01:00
|
|
|
dhcpV4Config = {
|
|
|
|
RouteMetric = 20;
|
2022-12-30 11:02:10 +01:00
|
|
|
};
|
|
|
|
};
|
2023-01-15 02:28:40 +01:00
|
|
|
|
|
|
|
# some wireguard interfaces
|
2023-01-15 14:27:49 +01:00
|
|
|
netdevs."30-dorm" = {
|
|
|
|
netdevConfig = {
|
|
|
|
Kind = "wireguard";
|
|
|
|
Name = "dorm";
|
|
|
|
Description = "WireGuard to my Dorm Infra";
|
|
|
|
};
|
|
|
|
wireguardConfig = {
|
|
|
|
PrivateKeyFile = config.sops.secrets."wireguard/dorm/private".path;
|
|
|
|
ListenPort = 51820;
|
|
|
|
};
|
|
|
|
wireguardPeers = [
|
|
|
|
{
|
|
|
|
wireguardPeerConfig = {
|
|
|
|
PublicKey = "vUmworuJFHjB4KUdkucQ+nzqO2ysARLomq4UuK1n430=";
|
|
|
|
PresharedKeyFile = config.sops.secrets."wireguard/dorm/preshared".path;
|
|
|
|
Endpoint = "dorm.vpn.rfive.de:51820";
|
|
|
|
AllowedIPs = "10.10.10.0/24, 192.168.10.0/24"; # seems to be broken, has no effect on routes
|
|
|
|
};
|
|
|
|
}
|
|
|
|
];
|
|
|
|
};
|
|
|
|
networks."30-dorm" = {
|
|
|
|
matchConfig.Name = "dorm";
|
|
|
|
networkConfig = {
|
|
|
|
Address = "10.10.10.3/24";
|
|
|
|
DNS = "10.10.10.1";
|
|
|
|
DNSDefaultRoute = true;
|
|
|
|
};
|
|
|
|
linkConfig = {
|
|
|
|
ActivationPolicy = "manual"; #manual activation cause sometimes the endpoint can't be resolved
|
|
|
|
};
|
|
|
|
routes = [
|
|
|
|
# Somehow systemd-networkd always creates a route to 10.10.10.0/24 with metric 0 and regardless how I set it,
|
|
|
|
# my settings are ignored and set to 0. Route below would do it right, as soon as I find out how I can deacivate
|
|
|
|
# the metric 0 one, this will be uncommented
|
|
|
|
#{ routeConfig = { Gateway = "0.0.0.0"; Destination = "10.10.10.0/24"; Metric = 50; }; }
|
|
|
|
{ routeConfig = { Gateway = "0.0.0.0"; Destination = "192.168.10.0/24"; Metric = 50; }; }
|
|
|
|
];
|
|
|
|
};
|
2022-12-29 15:05:26 +01:00
|
|
|
};
|
|
|
|
}
|