summaryrefslogtreecommitdiffstats
path: root/2configs
diff options
context:
space:
mode:
authormakefu <github@syntax-fehler.de>2023-03-22 23:18:23 +0100
committermakefu <github@syntax-fehler.de>2023-03-22 23:18:23 +0100
commite7e53eb410aac69af17b00764a3c655542c4e409 (patch)
treea6941427c7244b345ac7074b2e2d5eb17985f3aa /2configs
parentd2323ce90caba5ce212c9b83869006db695a9132 (diff)
ma wiregrill: also masquerade ipv6
Diffstat (limited to '2configs')
-rw-r--r--2configs/wireguard/wiregrill.nix18
1 files changed, 17 insertions, 1 deletions
diff --git a/2configs/wireguard/wiregrill.nix b/2configs/wireguard/wiregrill.nix
index 082090755..dbe3a91c1 100644
--- a/2configs/wireguard/wiregrill.nix
+++ b/2configs/wireguard/wiregrill.nix
@@ -13,16 +13,32 @@ in mkIf (hasAttr "wiregrill" config.krebs.build.host.nets) {
boot.kernel.sysctl = mkIf isRouter {
"net.ipv6.conf.all.forwarding" = 1;
+ "net.ipv4.conf.all.forwarding" = 1;
+ };
+ networking.nat = {
+ enable = true;
+ externalInterface = ext-if;
+ internalInterfaces = [ "wiregrill" ];
};
networking.firewall = {
allowedUDPPorts = [ self.wireguard.port ];
extraCommands = ''
- iptables -A FORWARD -i wiregrill -o wiregrill -j ACCEPT
+ ${pkgs.iptables}/bin/iptables -A FORWARD -i wiregrill -o wiregrill -j ACCEPT
'';
};
networking.wireguard.interfaces.wiregrill = {
+ postSetup = ''
+ ${pkgs.iptables}/bin/iptables -t nat -A POSTROUTING -s 10.220.245.0/24 -o ${ext-if} -j MASQUERADE
+ ${pkgs.iptables}/bin/ip6tables -t nat -A POSTROUTING -s 42::/16 -o ${ext-if} -j MASQUERADE
+ '';
+
+ # This undoes the above command
+ postShutdown = ''
+ ${pkgs.iptables}/bin/iptables -t nat -D POSTROUTING -s 10.244.245.0/24 -o ${ext-if} -j MASQUERADE
+ ${pkgs.iptables}/bin/ip6tables -t nat -D POSTROUTING -s 42::/16 -o ${ext-if} -j MASQUERADE
+ '';
ips =
(optional (!isNull self.ip4) self.ip4.addr) ++
(optional (!isNull self.ip6) self.ip6.addr);
[cgit] Unable to lock slot /tmp/cgit/21200000.lock: No such file or directory (2)