···101101 let
102102 ip = "${pkgs.iproute2}/bin/ip";
103103 in
104104- "${ip} netns exec wg ${ip} link set wg0 mtu 1280";
104104+ pkgs.writeShellScript "wg-post-start" ''
105105+ ${ip} netns exec wg ${ip} link set wg0 mtu 1280
106106+107107+ # read VPN resolv.conf, force-route DNS
108108+ # queries inside namespace via wg0 interface
109109+ while IFS= read -r ns; do
110110+ ns="''${ns#nameserver }"
111111+ if [[ $ns == *.* ]]; then
112112+ ${ip} -n wg route replace "$ns/32" dev wg0
113113+ else
114114+ ${ip} -n wg -6 route replace "$ns/128" dev wg0
115115+ fi
116116+ done < /etc/netns/wg/resolv.conf
117117+ '';
105118106119 services = {
107120 vpn-test =