Estoy usando el cliente Wireguard con el siguiente script PostUp:
PostUp = systemd-resolve -i %i --set-dns=x.x.x.x --set-domain=~.
systemd-resolve
configuré la configuración DNS correctamente y 127.0.0.53
pude resolver el dominio.
$ resolvectl status
Link 5 (wg1)
Current Scopes: DNS
DefaultRoute setting: yes
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: yes
DNSSEC supported: yes
Current DNS Server: x.x.x.x
DNS Servers: x.x.x.x
DNS Domain: ~.
Pero la configuración de DNS se restablece después de la reactivación de la suspensión:
$ resolvectl status
Link 5 (wg1)
Current Scopes: none
DefaultRoute setting: no
LLMNR setting: yes
MulticastDNS setting: no
DNSOverTLS setting: no
DNSSEC setting: yes
DNSSEC supported: yes
Encontre unpregunta similar, pero se trata de hacer que la configuración persista durante la suspensión, no durante el reinicio. En mi caso, la configuración de DNS persiste durante el reinicio.
Estoy usando wireguard de Ubuntu, no ppa.
$ apt search wireguard
wireguard/eoan,eoan,now 0.0.20190913-1ubuntu1 all [installed]
wireguard-dkms/eoan,eoan,now 0.0.20190913-1ubuntu1 all [installed,automatic]
wireguard-tools/eoan,now 0.0.20190913-1ubuntu1 amd64 [installed,automatic]
Editar: el mismo problema con la versión de Launchpad.
wireguard/eoan,eoan,now 0.0.20191012-wg1~eoan all [installed]
wireguard-dkms/eoan,eoan,now 0.0.20191012-wg1~eoan all [installed,automatic]
wireguard-tools/eoan,now 0.0.20191012-wg1~eoan amd64 [installed,automatic]
Probé varias soluciones, ninguna funcionó.
/etc/systemd/network/wireguard.network
[Match]
Name=wg1
[Network]
DNS=x.x.x.x
Domains=~.
Si bien este enfoque configuró el DNS para la interfaz Wireguard, el sistema resolvió el respaldo al DNS de eth0 después de la reactivación.
$ resolvectl status
Link 5 (wg1)
Current Scopes: none
Current DNS Server: x.x.x.x
DNS Servers: x.x.x.x
Link 2 (eth0)
Current Scopes: DNS
Current DNS Server: y.y.y.y
DNS Servers: y.y.y.y
- Ejecute un script después de despertar de la suspensión,
/lib/systemd/system-sleep/wireguard-dns
#!/bin/sh
case $1/$2 in
pre/*)
exit 0
;;
post/*)
# Place your post suspend (resume) commands here
systemd-resolve -i wg1 --set-dns=x.x.x.x --set-domain=~.
;;
esac
Esta solución no funcionó, la configuración de DNS aún se restablece después de la reactivación. Verifiqué que el script se ejecutó (probé con echo "script executed" > /home/user/output
, el archivo estaba allí con el texto), pero de alguna manera no tuvo ningún efecto.
Un script similar /usr/lib/pm-utils/sleep.d
solo funcionó durante unos segundos (después de despertar), luego la configuración se restableció y volvió al DNS de eth0.
#!/bin/sh
case $1 in
thaw|resume)
systemd-resolve -i wg1 --set-dns=x.x.x.x --set-domain=~.
;;
esac
- Intenté con otro script para reactivar desde la suspensión, con el mismo resultado que el no. 1.
#!/bin/sh
if [ "$1" = "pre" ] && [ "$2" = "suspend" ]; then
wg-quick down wg1
elif [ "$1" = "post" ] && [ "$2" = "suspend" ]; then
wg-quick up wg1
fi
Editar: el mismo problema en una instalación nueva.
Editar: también afecta a 19.04, probado en una instalación nueva.