Erzwingen Sie die DNS-Suchreihenfolge in dnsmasq, die vom Netzwerk-Manager geändert wurde.

944
Wang

Ich habe einige DN, die keinen Eintrag im DNS-Server haben. Xxxx kann nur von Server yyyy aufgelöst werden, und einige DN werden in yyyy falsch sein, aber sie sind in xxxx korrekt. In herkömmlichen Linux-Systemen füge ich nur 2 Zeilen ein /etc/resolv.conf.

x.x.x.x y.y.y.y  

Auf diese Weise sendet das Programm zuerst eine Anforderung an xxxx. Wenn dieser Eintrag nicht vorhanden ist, wird auf yyyy zurückgegriffen. Somit ist alles in Ordnung.

Die moderne Linux-Distribution verwendet normalerweise dnsmasq. Ich kann immer noch mehrere DNS-Server per Netzwerkmanager geben. nmcli dev list iface eth0Zeig das:

IP4.DNS[1]: x.x.x.x IP4.DNS[2]: y.y.y.y 

Die DNS-Suche folgt jedoch nicht der Reihenfolge, die ich gebe. Da das yyyy ein lokaler Server ist, antwortet er immer schneller. Dnsmasq verwendet immer die Antwort von yyyy und verwendet niemals die Antwort von xxxx. Gibt es sowieso, dass ich die Suchreihenfolge in dnsmasq beachten kann?

Ich bin mir bewusst, dass ich so etwas wie strict-orderin dnsmasq.conf machen könnte. In Ubuntu 14.04 gibt es jedoch keine solche Datei und die resolv.conf wird automatisch generiert.

[aktualisieren]

Ich füge "strikte Ordnung" hinzu /etc/NetworkManager/dnsmasq.d/dnsorder.conf. Starten Sie das Netzwerk und den Netzwerkmanager neu, dies hat bisher keine Auswirkungen. Der Befehl dnsmasq, der von networkmnager ausgeführt wird, sieht folgendermaßen aus:

/usr/sbin/dnsmasq --no-resolv --keep-in-foreground --no-hosts --bind-interfaces --pid-file=/run/sendsigs.omit.d/network-manager.dnsmasq.pid --listen-address=127.0.1.1 --conf-file=/var/run/NetworkManager/dnsmasq.conf --cache-size=0 --proxy-dnssec --enable-dbus=org.freedesktop.NetworkManager.dnsmasq –conf-dir=/etc/NetworkManager/dnsmasq.d 

/var/run/NetworkManager/dnsmasq.confist leer. Kein resolv.confFund in /etc/NetworkManager.

0

1 Antwort auf die Frage

0
Pavel Šimerda

Meiner Meinung nach ist dies die falsche Denkweise. Während libc etwas auf sequenzielle Versuche zur Verwendung von DNS-Servern beschränkt ist, sollte die globale DNS-Serverliste Einträge enthalten, die alle gleich sind, und das Verhalten von dnsmasq ist absolut korrekt.

Wenn Sie bestimmte DNS-Teilbäume so konfigurieren möchten, dass sie von verschiedenen DNS-Servern als Ausnahme für die Stammstruktur behandelt werden, sollten Sie genau dies tun.

Soweit ich weiß, können Sie von NetworkManager bereitgestellte dnsmasq-Instanzen in konfigurieren /etc/NetworkManager/dnsmasq.d/ denen bereits Antworten auf andere Fragen enthalten sind.

Auch dnsmasq ist nicht die einzige Option für eine moderne Distribution. Sie können die gute alte /etc/resolv.conflibc-Konfigurationsdatei weiterhin in allen Distributionen verwenden, die NetworkManager enthalten, einschließlich Ubuntu. Oder Sie können Unbound für einige Distributionen verwenden. Bei modernen Distributionen gibt es viele Möglichkeiten, die lokale DNS-Konfiguration zu berücksichtigen.

Der Netzwerkmanager ist sehr flexibel, daher würde ich ihn gerne verwenden. dnsmasq kann Nachschlageinträge zwischenspeichern, die mein Netzwerk wesentlich schneller machen können. Daher möchte ich es auch verwenden. Ich brauche nur den Netzwerkmanager verwaltet dnsmasq die strikte Reihenfolge Option. Bis jetzt kann ich noch keine funktionierende Lösung auf der Basis von dnsmasq.d finden. Wenn Sie weitere Details mitteilen und mich in die richtige Richtung weisen können, werde ich Ihre Antwort akzeptieren. Wang vor 6 Jahren 1