it-swarm.com.de

16.10 DNS kann nicht aufgelöst werden

Nach dem Upgrade meiner 16.04-Installation auf 16.10 habe ich Probleme mit DNS.

Zuerst hatte ich ein paar Mal Probleme mit der WLAN-Verbindung, während es im Ethernet funktionierte. Jetzt scheint es auch über WLAN zu funktionieren. Ich weiß nicht warum und ob es in irgendeiner Weise mit dem Problem zu tun hat, mit dem ich jetzt konfrontiert bin:

Wenn Sie mit Cisco Anyconnect VPN eine Verbindung zu einem VPN-Host herstellen, wirdeine Zeile in '/etc/resolv.conf' hinzugefügt. . Ich verstehe, dass Ubuntu jetzt systemd-resolve verwendet, und die Manpage besagt, dass es drei verschiedene Modi für den Umgang mit /etc/resolv.conf gibt. Meine /etc/resolv.conf ist kein Symlink und listet 127.0.0.53 nicht als DNS-Server auf, so weit ich das verstehe, sollte systemd-resolved "es für DNS-Konfigurationsdaten lesen". Es scheint sich jedoch nicht darum zu kümmern.

Graben

Das Seltsame (für mich) ist, dass Dig Host.customer.tld eine nette Antwort mit einem ANTWORT-ABSCHNITT zurückgibt, der die IP des angeforderten Hosts zeigt, und auf den DNS-Server verweist, der von vpn client als /etc/resolv.conf hinzugefügt wurde der Server. Wenn die VPN-Verbindung deaktiviert ist, erhalte ich keine Antwort. Das heißtDig liest /etc/resolv.conf.

klingeln

Der Browser auf der anderen Seite gelangt nicht zu /etc/resolv.conf und kann den Hostnamen nicht auflösen. Ping/Curl übrigens auch nicht.

nmcli

Ich habe einen verwandten Beitrag gefunden und versucht zu rennen

nmcli device show <interfacename> | grep IP4.DNS

es werden jedoch keine DNS für das cscotun0-Gerät aufgelistet. (Dies ist jedoch auch in 16.04 nicht der Fall.) Außerdem listet nmcli meinen DHCP-Server (meinen Router) als IP4.DNS-Host für meine eth/wlan-Verbindungen auf. Die Verwendung von Dig @192.168.0.1 xxx für alle öffentlichen Domänen funktioniert einwandfrei.

aufbau

In meiner /run/systemd/resolve/resolv.conf sind einige andere DNS-Server aufgeführt:

nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
# Too many DNS servers configured, the following entries may be ignored.
nameserver 2001:4860:4860::8844

Diese werden nicht von meinem DHCP-Server bereitgestellt. Die Datei /etc/systemd/resolved.conf enthält nur kommentierte Zeilen mit Ausnahme der Abschnittsüberschrift:

[Resolve]
#DNS=
#FallbackDNS=8.8.8.8 8.8.4.4 2001:4860:4860::8888 2001:4860:4860::8844

Die Manpage für resolved.conf sagt das aus

DNS = Eine durch Leerzeichen getrennte Liste von IPv4- und IPv6-Adressen, die als System-DNS-Server verwendet werden sollen. ... Wenn diese Einstellung nicht angegeben ist, werden aus Kompatibilitätsgründen stattdessen die in /etc/resolv.conf aufgelisteten DNS-Server verwendet, sofern diese Datei vorhanden ist und Server darin konfiguriert sind. Diese Einstellung ist standardmäßig auf die leere Liste eingestellt.

FallbackDNS = Eine durch Leerzeichen getrennte Liste von IPv4- und IPv6-Adressen, die als Fallback-DNS-Server verwendet werden sollen. Alle per Link von systemd-networkd.service (8) erhaltenen DNS-Server haben Vorrang vor dieser Einstellung, ebenso wie alle über DNS = above oder /etc/resolv.conf eingestellten Server. Diese Einstellung wird daher nur verwendet, wenn keine anderen DNS-Serverinformationen bekannt sind. Wenn diese Option nicht angegeben ist, wird stattdesseneine kompilierte Listevon DNS-Servern verwendet.

Scheint, als würde der Fallback in meinem Fall in /run/systemd/resolve/resolv.conf landen.

EDIT: Ich war nicht sicher, was das Problem war, und um ehrlich zu sein, weiß ich immer noch nicht genau, wie das funktioniert, aber es stellte sich heraus, dass diesolutionin Mein Fall war, den systemd-resolved -Dienst zu deaktivieren. Ich dachte, dass ein Dienst erforderlich ist, dass es die Komponente ist, die den DNS-Dienst für alle lokalen Anwendungen bereitstellt, aber anscheinend gibt es etwas anderes, das diesen Job ausführt.

34
aweibell

Ich hatte ähnliche Probleme, zum Beispiel beim Hinzufügen eines zusätzlichen USB-WLAN-Dongles. Zuerst habe ich dnsmasq im Netzwerkmanager wie oben beschrieben deaktiviert und dnsmasq gestoppt (Dienst dnsmasq stop)

Ich habe festgestellt, dass die Routing-Tabelle beim Beheben von Fehlern während der VPN-Verbindung etwas anders aussieht (Ausgabe des Befehls route). Der Name des Gateways lautet DD-WRT für den Fall, dass es nicht funktioniert, und einfach „Gateway“, wenn es funktioniert. Die Ausgabe davon hat sich nicht geändert:

nmcli device show wlp1s0 | grep IP4.DNS

Die IP-Adresse meines Routers wurde weiterhin angezeigt. Ein Workaround, um es für eine Weile zum Laufen zu bringen, besteht darin, systemd-resolvd neu zu starten:

Sudo service systemd-resolved restart

Da dnsmasq nicht in der Gleichung enthalten ist, ist entweder systemd-resolvd die Ursache für das Problem oder eine Änderung der Routingtabelle.

Das ist also der einzige Unterschied, den ich sehe:

[email protected]:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    601    0        0 

welches funktioniert. Und das, wenn es NICHT funktioniert:

[email protected]:~$ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         DD-WRT          0.0.0.0         UG    601    0        0 wlp1s0

Und der gleiche Namensunterschied auf der VPN-Leitung:

vpn-dns.name gateway         255.255.255.255 UGH   0      0        0 wlp1s0

Wer weiß, was die Routing-Tabelle beeinflussen kann? Es wäre großartig, wenn wir dies identifizieren könnten, damit ein Fehlerbericht eingereicht werden kann. Ich werde ernsthaft krank und müde, all diese Fehler zu verfolgen, aber ich möchte, dass sie behoben werden, damit zukünftige Benutzer und wir glücklich sind :).

[update] Es scheint, als würde das Beenden von systemd-resolved das Problem beheben und andere Dinge nicht negativ beeinflussen. Sie können das versuchen und es wissen lassen, wenn es Sachen kaputt macht. Ich sah beim Ausführen von systemd-resolvd im Debug, als es kaputt ging:

Removing scope on link wlp1s0, protocol llmnr, family AF_INET
Removing scope on link wlp1s0, protocol llmnr, family AF_INET6
Removing scope on link *, protocol dns, family *

Etwas deaktivieren:

Sudo systemctl disable systemd-resolved.service

Ich habe den Ubuntu-Bericht mit Vorschlägen aktualisiert. [/ update] Hinzufügen: Hinweis: Der Fehlerbericht: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1624317 hat für einige Probleme einen Patch für 17.04. Bitte überprüfen Sie den Fehlerbericht und testen Sie den Patch, falls möglich. Danke!

[aktualisieren]

Bitte überprüfen Sie den oben genannten Fehlerbericht. Das Problem scheint für 17.10 behoben zu sein. Mit einem einfachen Befehl kann auch DNS-Leakage deaktiviert werden.

[/aktualisieren]

15
Vincent Gerris

Das DNS-Verhalten während der OpenVPN-Verbindung hat sich sofort verbessert, als ich ein Vorschlag auf ubuntuforums folgte:

  1. Öffnen Sie /etc/NetworkManager/NetworkManager.conf in einem Editor mit Root-Rechten.
  2. Löschen Sie die Zeile mit der Aufschrift # (oder kommentieren Sie sie mit einem Hash dns=dnsmasq aus)
  3. Starten Sie NetworkManager über Sudo service NetworkManager restart neu.
36
krlmlr

Bin auf dasselbe Problem gestoßen. Irgendwie muss ich DNSmasq mit einer Anwendung installiert haben. Das Entfernen von dnsmasq löste das Problem für mich.

Sudo apt-get remove dnsmasq 

Seitdem gibt es keine Verbindungsabbrüche mehr oder einige Websites können nicht mehr geladen werden (ich hatte ein Problem beim Laden von Google Mail, d. H. Plötzlich konnte keine Verbindung zu Google Mail hergestellt werden, obwohl andere Websites funktionierten).

3
Nitai

Bearbeite /etc/nsswitch.conf und ändere

hosts:          files mdns4_minimal [NOTFOUND=return] dns

zu

hosts:          files dns mdns4_minimal [NOTFOUND=return]

Edit:

Ich habe seit einiger Zeit die gleichen Probleme. Ich konnte Domänennamen über VPN auflösen, aber ich konnte diese nicht pingen oder locken oder sie in anderen Anwendungen verwenden. Die oben beschriebene Änderung hat es für mich gelöst.

1
PaL