Von Ubuntu 17.04 systemd aufgelöste DNS-Lookups schlagen nach dem Zufallsprinzip fehl


38

Ich habe ein Upgrade auf Ubuntu 17.04 durchgeführt und es scheint nun einen neuen DNS-Resolver-Mechanismus zu geben, der erstmals in Ubuntu 16.10 eingeführt wurde.

Ich erhalte jetzt in 50% der Fälle DNS-Suchfehler. Jeder zweite Aufruf von nslookup schlägt fehl, wobei die Hälfte der Aufrufe in Ordnung ist und die Hälfte Folgendes ergibt:

watch -n 1 nslookup google.com

Server:     127.0.0.53
Address:    127.0.0.53#53

** server can't find google.com: SERVFAIL

Soweit ich weiß, wird diese DNS-Server-IP-Adresse jetzt zur Darstellung von systemaufgelöstem DNS verwendet, wodurch eine Art Metasuche durchgeführt wird, um langsamere DNS-Abfragen (oder ähnliches) zu vermeiden. Ich sehe genau dasselbe Verhalten auf zwei Computern, die ich in der letzten Woche auf 17.04 aktualisiert habe.

Irgendeine Idee, wo das Problem liegt und wie man es richtig angeht?

Vor dem Upgrade hat alles bestens geklappt (von 16.04 oder 16.10, ich weiß nicht mehr welche, sorry). Ich dachte, 17.04 war eine LTS-Veröffentlichung, aber jetzt sehe ich, dass ich die Waffe gesprungen habe und sie erst im April als stabil angesehen wird. So, hier bin ich.

Ebenfalls zu beachten ... Browser scheinen keine Probleme aufzuweisen, aber nslookup, ping, git usw. tun dies.


2
Tipp für die Zukunft: Ubuntu-Versionen sind das Jahr, in dem sie in .dem Monat erscheinen, in dem sie veröffentlicht werden. (In deinem Fall also in 04/ 17)
timotree

Klingt so, als ob es von System aus gelöst ist, sich in Distributionen zu drängen, was auch anderen Leuten Ärger bereitet .
Moodboom

Antworten:


46

Ubuntu 17.04 kann ab dem 18.04.2017 keine DNS-Server mit DNSSEC-Unterstützung auflösen. Deaktivieren Sie DNSSEC mit diesem Daemon:

sudo mkdir -p /etc/systemd/resolved.conf.d
printf "[Resolve]\nDNSSEC=no\n" | sudo tee /etc/systemd/resolved.conf.d/no-dnssec.conf

Optional können Sie resolvconf neu konfigurieren, wenn Sie damit in Konflikt geraten sind (sagen Sie "Ja", um /etc/resolve.conf für dynamische Updates vorzubereiten?):

sudo dpkg-reconfigure resolvconf

Starten Sie das System neu.

sudo systemctl restart systemd-resolved

Ihr DNS sollte jetzt funktionieren. Sie können dies überprüfen, indem Sie versuchen systemd-resolve www.google.com, eine Antwort zu sehen.


Vielen Dank für die Antwort - können Sie erklären, was es tut?
Bertieb

Ubuntu 17.04 kann (bis hierher) keinen DNS-Server mit DNSSEC-Unterstützung auflösen. Ich deaktiviere DNSSEC mit diesem Daemon.
Sajad Bahmani

Danke, können Sie diese Erklärung in Ihre Antwort einfügen? :)
Bertieb

Diese Lösung hat bei mir nicht funktioniert - nach dem Festlegen dieser Option erhalte ich immer dann, wenn ich das erste Mal eine Suche durchführe, einen SERVFAIL-Fehler, der nach einigen erfolgreichen Versuchen zwischengespeichert wird.
Guss

1
@SamuelL. In Bezug auf Tee ist es nur eine ausgefallene Möglichkeit, etwas zu drucken und gleichzeitig in eine Datei zu senden. Normalerweise können Sie die Ausgabe in eine Datei umleiten, die> [das Größer-als-Zeichen] enthält. In diesem Fall wird die Ausgabe jedoch nicht angezeigt. T-Stück lässt es zu beiden Plätzen gehen. Resolvconf "Konfiguriert Auflösung".
Moodboom

12

Ich habe zwischen der systemd-aufgelösten und der manuellen /etc/resolv.conf-Verwaltung hin und her gewechselt und noch nicht festgestellt, dass der systemd-DNS-Auflösungsmechanismus stabil ist.

Es gibt anscheinend mindestens einen libnss-Fehler in Ubuntu 16.10 und anscheinend noch in 17.04. Es gibt viele Leute mit DNS-Problemen seit Ubuntu 16.10, das auf dem System behoben wurde. Hier ist eine Analyse und hier die Problemumgehung einer anderen Person. Keiner von ihnen hat für mich funktioniert, bis ich /etc/resolv.conf manuell mit den DNS-Servern von Google überschrieben habe.

nameserver 8.8.8.8   << or another if you don't trust google
nameserver 8.8.4.4

Dies ist eine absolut gültige Lösung , wenn Sie keine dynamische DNS-Konfiguration benötigen. Stellen Sie einfach sicher, dass Sie das System anhalten und deaktivieren.

sudo systemctl disable systemd-resolved.service
sudo service systemd-resolved stop

Der Wechsel zu resolveconf hat meinem Problem nicht geholfen. Wie kann ich wieder mit systemd-resolved arbeiten? (Danke)
Edward Moffett

1
Versuchen Sie:systemctl enable systemd-resolved.service && systemctl start systemd-resolved.service
Moodboom

1
Alter, du hast gerade ein System gerettet !! BRAVO
Revolutionär

Hat am 18.04. Gut funktioniert
André M. Faria

4

Ubuntu 17.04 und andere Distributionen unterstützen systemd, einschließlich systemd-resolved, was die Benutzer einer ziemlich schwierigen DNS-Auflösung unterwirft.

  • Wie in der Antwort von SjB erwähnt, kann die DNSSEC-Unterstützung Probleme verursachen.
  • systemd-resolved pingt alle DNS-Resolver an, damit sie die schnellsten verwenden können. Dies kann in komplexeren Umgebungen zu Problemen mit VPNs usw. führen.
  • DNS-Serverzertifikate wurden überprüft. Bei einer Zeitverschiebung sind Fehler aufgetreten.

Ich denke nicht, dass es notwendigerweise eine SCHLECHTE Veränderung ist, es ist nur VIEL Veränderung. Ich werde versuchen, diese Antwort zu aktualisieren und zu erweitern, sobald ich mehr erfahre.



1

Fügen Sie einfach den Nameserver /etc/systemd/resolved.conf hinzu. DNS = 194.109.xxx.xxx (auf Ihrem Router, externer Nameserver)

systemctl neu starten systemd aufgelöst

Keine Notwendigkeit, rand von 3 auf 2 zu ändern, keine Notwendigkeit, dnssec auf off zu setzen


Leider löst dies allein nicht das Problem, dass jede andere Anfrage fehlschlägt.
Moodboom

Stimmen Sie mit @moodboom überein, das löst mich auch nicht.
André M. Faria,
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.