summaryrefslogtreecommitdiff
path: root/hosts/sif/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hosts/sif/default.nix')
-rw-r--r--hosts/sif/default.nix99
1 files changed, 98 insertions, 1 deletions
diff --git a/hosts/sif/default.nix b/hosts/sif/default.nix
index 9418159c..07ba564d 100644
--- a/hosts/sif/default.nix
+++ b/hosts/sif/default.nix
@@ -1,5 +1,15 @@
1{ flake, pkgs, customUtils, lib, config, path, ... }: 1{ flake, pkgs, customUtils, lib, config, path, ... }:
2{ 2let
3 mwnSubnetsPublic =
4 [ "129.187.0.0/16" "141.40.0.0/16" "141.84.0.0/16"
5 "192.68.211.0/24" "192.68.212.0/24" "192.68.213.0/24" "192.68.214.0/24" "192.68.215.0/24"
6 "193.174.96.0/22"
7 "194.95.59.0/24"
8 ];
9 mwnSubnetsPrivate =
10 [ "10.153.0.0/16" "10.162.0.0/16" "10.156.0.0/16"
11 ];
12in {
3 imports = with flake.nixosModules.systemProfiles; [ 13 imports = with flake.nixosModules.systemProfiles; [
4 ./hw.nix 14 ./hw.nix
5 ./mail 15 ./mail
@@ -104,6 +114,93 @@
104 server=/sif.libvirt/192.168.122.1 114 server=/sif.libvirt/192.168.122.1
105 ''; 115 '';
106 }; 116 };
117 environment.etc."NetworkManager/dnsmasq.d/wgrz.conf" = {
118 text = ''
119 server=/mathinst.loc/10.153.88.9
120 server=/cipmath.loc/10.153.88.9
121 '';
122 };
123
124 environment.etc."systemd/networkd.conf" = {
125 text = ''
126 [Network]
127 RouteTable=wgrz:1025
128 '';
129 };
130 systemd.network = {
131 netdevs = {
132 wgrz = {
133 netdevConfig = {
134 Name = "wgrz";
135 Kind = "wireguard";
136 };
137 wireguardConfig = {
138 PrivateKeyFile = config.sops.secrets.wgrz.path;
139 ListenPort = 51822;
140 # FirewallMark = 1;
141 };
142 wireguardPeers = [
143 { wireguardPeerConfig = {
144 AllowedIPs = [ "10.200.116.1/32" ] ++ mwnSubnetsPrivate ++ mwnSubnetsPublic;
145 PublicKey = "YlRFLc+rD2k2KXl7pIJbOKbcPgdJCl8ZTsv0xlK4VEI=";
146 PersistentKeepalive = 25;
147 Endpoint = "wg.math.lmu.de:51820";
148 };
149 }
150 ];
151 };
152 };
153 networks = {
154 wgrz = {
155 name = "wgrz";
156 matchConfig = {
157 Name = "wgrz";
158 };
159 address = ["10.200.116.128/24"];
160 routes = map (Destination: { routeConfig = {
161 inherit Destination;
162 Gateway = "10.200.116.1";
163 GatewayOnLink = true;
164 Table = "wgrz";
165 };}) (mwnSubnetsPrivate ++ mwnSubnetsPublic);
166 routingPolicyRules = [
167 { routingPolicyRuleConfig = {
168 Table = "main";
169 # FirewallMark = 1;
170 To = "129.187.111.225";
171 Priority = 100;
172 };
173 }
174 { routingPolicyRuleConfig = {
175 Table = "wgrz";
176 From = "10.200.116.128";
177 Priority = 200;
178 };
179 }
180 ] ++ map (To: { routingPolicyRuleConfig = {
181 Table = "wgrz";
182 inherit To;
183 Priority = 200;
184 };}) (mwnSubnetsPrivate ++ mwnSubnetsPublic);
185 linkConfig = {
186 RequiredForOnline = false;
187 };
188 networkConfig = {
189 LLMNR = false;
190 MulticastDNS = false;
191 DNS = ["10.153.88.9" "129.187.111.202" "10.156.33.53"];
192 };
193 };
194 };
195 };
196 sops.secrets.wgrz = {
197 format = "binary";
198 sopsFile = ./wgrz/privkey;
199 mode = "0640";
200 owner = "root";
201 group = "systemd-network";
202 };
203 networking.networkmanager.unmanaged = ["wgrz"];
107 204
108 services.resolved.enable = false; 205 services.resolved.enable = false;
109 206