summaryrefslogtreecommitdiff
path: root/hosts/microwave/network.nix
diff options
context:
space:
mode:
authorGrigory Shipunov2022-07-13 15:45:24 +0200
committerGrigory Shipunov2022-07-13 15:45:24 +0200
commit9bdeafe7f09bd8002a041fd12b6747554f9100df (patch)
treea4123db3e3cc27288b8e467e7b0913397b0911db /hosts/microwave/network.nix
parente056d746e0f6d4148a143143f8cf6b639aeb4095 (diff)
migrate vpn to networkd
Diffstat (limited to 'hosts/microwave/network.nix')
-rw-r--r--hosts/microwave/network.nix89
1 files changed, 83 insertions, 6 deletions
diff --git a/hosts/microwave/network.nix b/hosts/microwave/network.nix
index c4a0021..6391122 100644
--- a/hosts/microwave/network.nix
+++ b/hosts/microwave/network.nix
@@ -62,7 +62,7 @@ systemd.network = {
# Wireguard
# Dump-dvb
- netdevs."10-wg-dumpdvb" = {
+ netdevs."30-wg-dumpdvb" = {
netdevConfig = {
Kind = "wireguard";
Name = "wg-dumpdvb";
@@ -82,10 +82,10 @@ systemd.network = {
}
];
};
- networks."10-wg-dumpdvb" = {
+ networks."30-wg-dumpdvb" = {
matchConfig = { Name = "wg-dumpdvb"; };
networkConfig = {
- Address = "10.13.37.3";
+ Address = "10.13.37.3/24";
IPv6AcceptRA = true;
};
routes = [
@@ -93,7 +93,7 @@ systemd.network = {
];
};
- # Dump-dvb
+ # oxalab
netdevs."10-wg-oxalab" = {
netdevConfig = {
Kind = "wireguard";
@@ -150,9 +150,13 @@ systemd.network = {
networks."10-wg-zentralwerk" = {
matchConfig = { Name = "wg-zentralwerk"; };
networkConfig = {
- Address = "172.20.76.226";
+ Address = "172.20.76.226/21";
IPv6AcceptRA = true;
DNS = "172.20.73.8";
+ Domains = [
+ "~.c3d2.de"
+ "~.zentralwerk.org"
+ ];
};
routes = [
{
@@ -169,5 +173,78 @@ systemd.network = {
}
];
};
+
+ # VPN
+ netdevs."10-wg-mullvad" = {
+ netdevConfig = {
+ Kind = "wireguard";
+ Name = "wg-mullvad";
+ };
+ wireguardConfig = {
+ PrivateKeyFile = config.sops.secrets."wg/mlwd-nl-seckey".path;
+ FirewallMark = 34952; # 0x8888
+ RouteTable = "off";
+ };
+ wireguardPeers = [
+ {
+ wireguardPeerConfig = {
+ PublicKey = "C6SfQFOfq6/q9nHRdLDN98U/BTxH47Ec1l/PaQZuRk4=";
+ Endpoint = "169.150.196.2:51820";
+ AllowedIPs = [ "0.0.0.0/0" "::0/0" ];
+ };
+ }
+ ];
+ };
+ networks."10-wg-mullvad" = {
+ address = [ "10.65.79.164/32" "fc00:bbbb:bbbb:bb01::2:4fa3/128" ];
+ matchConfig.Name = "wg-mullvad";
+ networkConfig = {
+ DNS = "10.64.0.1";
+ DNSDefaultRoute = true;
+ Domains = [ "~." ];
+ };
+ routes = map (gate: {
+ routeConfig = {
+ Gateway = gate;
+ Table = 1000;
+ };
+ }) [ "0.0.0.0" "::" ];
+
+ routingPolicyRules = [
+ {
+ routingPolicyRuleConfig = {
+ Family = "both";
+ FirewallMark = 34952; # 0x8888
+ InvertRule = true;
+ Table = "1000";
+ Priority = 10;
+ };
+ }
+ {
+ routingPolicyRuleConfig = {
+ Family = "both";
+ SuppressPrefixLength = 0;
+ Table = "main";
+ Priority = 9;
+ };
+ }
+ ] ++ map (net: { # only route global addresses over VPN
+ routingPolicyRuleConfig = {
+ Priority = 8;
+ To = net;
+ };
+ }) [
+ # Public
+ "169.150.196.2/32"
+ # "10.0.0.0/8"
+ "10.13.37.0/24"
+ "10.66.66.0/24"
+ # "172.16.0.0/12"
+ "172.16.0.0/12"
+ # "182.168.0.0/16"
+ "182.168.0.0/16"
+ # "fc00::/7"
+ ];
};
- }
+ };
+}