networking/wifi.nix
networking/lte.nix
networking/nftables.nix
+ wireguard/wg-intra.nix
../../nixos/profiles/dnscrypt-proxy2.nix
../../nixos/profiles/wireguard/wg-intra.nix
../../nixos/profiles/networking/ssh.nix
"${wifiIPv4}.1:53"
];
- networking.wireguard.wg-intra.peers = {
- mermet.enable = true;
- losurdo.enable = true;
- oignon.enable = true;
- patate.enable = true;
- };
-
}
--- /dev/null
+{ hostName, ... }:
+let
+ peers = import ../../../nixos/profiles/wireguard/wg-intra/peers.nix;
+ network = import ../networking/names-and-numbers.nix;
+in
+{
+ networking.wireguard.wg-intra.peers = {
+ mermet.enable = true;
+ losurdo.enable = true;
+ oignon.enable = true;
+ patate.enable = true;
+ };
+ systemd.services.fix-wireguard-behind-lte = {
+ wantedBy = [ "multi-user.target" ];
+ startAt = "*:0/5"; # every 5 min
+ path = with pkgs; [ gnused iproute2 socat ];
+ serviceConfig = {
+ Type = "simple";
+ ExecStart = pkgs.writeShellScript "fix-wireguard-behind-lte" ''
+ set -eux
+ ip addr replace "$(socat - TCP:mermet.wg:${peers.mermet.listenPort} | sed -ne 's/^${peers.${hostName}.peer.publicKey}\s\([^:]*\):.*/\1/p')"/32 dev ${network.lteIface}
+ '';
+ Restart = "on-failure";
+ RestartSec = "30s";
+ };
+ };
+}