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";
|
privateKeyFile = "/etc/wireguard/private.key";
|
||||||
|
|
||||||
postUp = ''
|
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 = ''
|
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 = [{
|
peers = [{
|
||||||
|
|||||||
Reference in New Issue
Block a user