Dynamisk DNS och Wireguard
2020-10-24 13:18
Wireguard
När Wireguard startar slår den upp domännamnet som den ska ansluta mot. Detta händer bara en gång vilket gör att om man har en peer med dynamisk DNS som byter IP-nummer kommer inte Wireguard att börja arbeta mot det nya IP-nummret.
För att komma runt detta följer det med ett script i wireguard-tools
som finns på både debian-baserade system och centos-liknande system. Scriptet heter reresolve-dns.sh
och körs med ett interfacenamn som argument.
/usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh wg0
Med hjälp av timers i Systemd så kan vi köra detta script så ofta som det passar.
# /etc/systemd/system/wireguard_reresolve-dns.service
[Unit]
Description=Reresolve DNS of all WireGuard endpoints
Wants=network-online.target
After=network-online.target
[Service]
Type=oneshot
ExecStart=/bin/sh -c 'for i in /etc/wireguard/*.conf; do /usr/share/doc/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh "$i"; done'
# /etc/systemd/system/wireguard_reresolve-dns.timer
[Unit]
Description=Periodically reresolve DNS of all WireGuard endpoints
[Timer]
OnCalendar=daily
[Install]
WantedBy=timers.target
Sedan behöver du aktivera timern
[root@workstation ~]# systemctl enable wireguard_reresolve-dns.timer
Created symlink /etc/systemd/system/timers.target.wants/wireguard_reresolve-dns.timer → /etc/systemd/system/wireguard_reresolve-dns.timer.