systemd-resolve wird nach dem Aufwachen aus dem Ruhezustand zurückgesetzt

systemd-resolve wird nach dem Aufwachen aus dem Ruhezustand zurückgesetzt

Ich verwende den Wireguard-Client mit dem folgenden PostUp-Skript:

PostUp = systemd-resolve -i %i --set-dns=x.x.x.x --set-domain=~.

systemd-resolvehabe die DNS-Einstellung richtig vorgenommen und 127.0.0.53konnte die Domäne auflösen.

$ 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: ~.

Aber die DNS-Einstellung wird nach dem Aufwachen aus dem Ruhezustand zurückgesetzt:

$ 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

Ich habe einen ... gefundenähnliche Frage, aber hier geht es darum, dass die Konfiguration auch nach einem Ruhezustand erhalten bleibt, nicht nach einem Neustart. In meinem Fall bleibt die DNS-Einstellung auch nach einem Neustart erhalten.

Ich verwende Wireguard von Ubuntu, nicht das 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]

Bearbeiten: Gleiches Problem mit der Launchpad-Version.

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]

Ich habe mehrere Workarounds ausprobiert, keiner davon hat funktioniert.

  1. /etc/systemd/network/wireguard.network
[Match]
Name=wg1

[Network]
DNS=x.x.x.x
Domains=~.

Während dieser Ansatz den DNS für die Wireguard-Schnittstelle festlegte, erfolgte nach dem Aufwecken ein von systemd aufgelöster Fallback auf den DNS von eth0.

$ 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
  1. Führen Sie nach dem Aufwachen aus dem Ruhezustand ein Skript aus./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

Dieser Workaround hat nicht funktioniert, die DNS-Konfiguration wurde nach dem Aufwachen trotzdem zurückgesetzt. Ich habe überprüft, ob das Skript ausgeführt wurde (ich habe es mit getestet echo "script executed" > /home/user/output, die Datei mit dem Text war da), aber irgendwie hatte es keine Wirkung.

Ein ähnliches Skript /usr/lib/pm-utils/sleep.dfunktionierte nur ein paar Sekunden lang (nach dem Aufwachen), dann wurde die Konfiguration zurückgesetzt und auf den DNS von eth0 zurückgegriffen.

#!/bin/sh

case $1 in 
        thaw|resume)
                systemd-resolve -i wg1 --set-dns=x.x.x.x --set-domain=~.
        ;;
esac
  1. Habe ein anderes Wake-from-Suspend-Skript ausprobiert, gleiches Ergebnis wie Nr. 1.
#!/bin/sh

if [ "$1" = "pre" ] && [ "$2" = "suspend" ]; then
    wg-quick down wg1
elif [ "$1" = "post" ] && [ "$2" = "suspend" ]; then
    wg-quick up wg1
fi

Bearbeiten: Gleiches Problem bei Neuinstallation.

Bearbeiten: Betrifft auch 19.04, bei Neuinstallation versucht.

verwandte Informationen