fix(wireguard): resolve endpoint hostname to IP before adding route
ip route does not accept hostnames. Use dig to resolve vpn.leeworks.dev to an IP address in postUp/preDown hooks.
This commit is contained in:
+6
-2
@@ -181,10 +181,14 @@
|
||||
privateKeyFile = "/etc/wireguard/private.key";
|
||||
|
||||
postUp = ''
|
||||
${pkgs.iproute2}/bin/ip route add vpn.leeworks.dev via $(${pkgs.iproute2}/bin/ip route show default | ${pkgs.gawk}/bin/awk '{print $3}') dev $(${pkgs.iproute2}/bin/ip route show default | ${pkgs.gawk}/bin/awk '{print $5}')
|
||||
ENDPOINT_IP=$(${pkgs.dig}/bin/dig +short vpn.leeworks.dev | head -1)
|
||||
GATEWAY=$(${pkgs.iproute2}/bin/ip route show default | ${pkgs.gawk}/bin/awk '{print $3}')
|
||||
DEV=$(${pkgs.iproute2}/bin/ip route show default | ${pkgs.gawk}/bin/awk '{print $5}')
|
||||
${pkgs.iproute2}/bin/ip route add "$ENDPOINT_IP" via "$GATEWAY" dev "$DEV"
|
||||
'';
|
||||
preDown = ''
|
||||
${pkgs.iproute2}/bin/ip route del vpn.leeworks.dev || true
|
||||
ENDPOINT_IP=$(${pkgs.dig}/bin/dig +short vpn.leeworks.dev | head -1)
|
||||
${pkgs.iproute2}/bin/ip route del "$ENDPOINT_IP" || true
|
||||
'';
|
||||
|
||||
peers = [{
|
||||
|
||||
Reference in New Issue
Block a user