Alle Beispiele, die ich für Konfigurationen ( /etc/network/interfaces
) gesehen habe, haben gezeigt, dass Sie eine Schnittstelle konfigurieren und dann darunter die folgenden dns-*
Zeilen angeben:
auto eth0
iface eth0 inet static
...
dns-nameservers 127.0.0.2
dns-search example.com my.example.com
Jetzt ist mir bekannt, dass das DNS-Protokoll unabhängig vom Transportmechanismus ist. Daher sollte es nicht per se falsch sein, eine IPv6-Adresse in die dns-nameservers
Leitung einzufügen.
Da ich jedoch sowieso auch die Schnittstelle für IPv6 konfiguriere, war es sinnvoll, die dns-nameservers
Zeile dort hinzuzufügen :
iface eth0 inet6 static
...
dns-nameservers ::2
dns-search example.com my.example.com
... oder doch? Denn beim resolvconf
Erstellen werden /etc/resolv.conf
einfach alle IPv6-DNS-Server ignoriert. Es scheint auch zu ignorieren dns-search
und dns-domain
. Die einzige Zeile, die es zu ehren scheint, ist die dns-nameservers
Zeile aus der IPv4-Konfiguration für eth0
.
Was ist die richtige Methode zum Konfigurieren von DNS-Servern?
Weitere Indizien dafür, warum es Teil der jeweiligen iface
Strophe sein sollte. Zitat aus man 8 resolvconf
:
Mit dem
ifup(8)
Programm können Netzwerkschnittstellen gemäß den Einstellungen in konfiguriert werden/etc/network/interfaces(5)
.ifup
Fügenresolvconf
Siedns-
der entsprechendeniface
Zeilengruppe in Zeilen hinzu, um Push-Nameserver-Informationen zum Konfigurieren einer Schnittstelle zu erhalten/etc/network/interfaces
. Um Nameserver-Adressen hinzuzufügen, fügen Sie eine Zeile hinzu, die mit beginntdns-nameservers
.
quelle
Antworten:
Es ist richtig, dns- * -Optionen entweder in die Zeilengruppe
iface eth0 inet static
oder in die Zeilengruppe einzufügeniface eth0 inet6 static
. Die Optionen werden aktiv, wenn die logische Schnittstellendefinition, zu der sie gehören, aktiv wird.Ich habe dies gerade auf meinem eigenen Ubuntu 15.04-Computer getestet, den ich normalerweise mit DHCP konfiguriere. Ich habe NetworkManager deaktiviert und / etc / network / interfaces so bearbeitet, dass es so aussieht:
Ich habe es dann getan
Die Ergebnisse:
Beachten Sie, dass die Optionen Adressen, DNS-Nameserver und DNS-Suche aus beiden Zeilengruppen jetzt aktiv sind.
[Aktualisiert am 30. Mai 2015]
quelle
/etc/network/interfaces
undresolvconf
hinzufügen? Sie werden feststellen, dass dieses Teil in Ihrem produzierten Teil fehlt/etc/resolv.conf
.dns-nameservers
Option in / e / n / i verwende. Zusammenfassung: Alles funktioniert wie erwartet.Auf meinem RPi mit Ubuntu 16.04.2 LTS waren meine Ergebnisse wie folgt:
Hinweis: Ich habe NetworkManager deinstalliert und nur resolvconf verlassen, um seine Aufgaben zu erledigen. (Dies ist ein fester Server, daher ändern sich die Dinge im Netzwerk nicht wesentlich.)
WENN ich die Zeilen dns-search und dns-nameserver nur auf EINER Schnittstelle (der primären, verkabelten), aber nicht auf der anderen (wlan0) hatte, dann wäre dies beim Neustart ungefähr 95% der Zeit meine /etc/resolv.conf-Datei leeren.
zB Wenn meine Schnittstellendatei so aussah:
DANN würde meine resolv.conf nach einem Neustart folgendermaßen aussehen:
Bei ein oder zwei Neustarts bemerkte ich jedoch, dass es das hatte, was ich wollte, z
Lösung Als ich BEIDEN Schnittstellen (wired und wlan0) die Zeilen dns-search und dns-nameserver gab, funktionierte alles bei jedem Neustart einwandfrei (bisher sowieso)
dh die folgende Schnittstellendatei funktioniert bei mir:
und gibt mir nach jedem Neustart (bisher) die folgende korrekte resolv.conf
Ich gehe davon aus, dass diese doppelte Konfiguration normal ist, wenn auch etwas redundant.
Schlussfolgerung: Wenn einer Schnittstelle (außer lo0) Informationen zu DNS-Suche und DNS-Nameserver fehlen, fügt resolvconf nichts in Ihre Datei resolv.conf ein. (Es ist, als ob ifup die wlan0-Schnittstelle als zweites ausgeführt und ifup resolv.conf oder ähnliches gelöscht hätte.)
Ich bin mir nicht sicher, ob dies ein Fehler ist oder nicht, aber ich fühle mich falsch.
quelle
Das Bearbeiten von Netzwerkschnittstellen, um die Verwendung Ihres benutzerdefinierten DNS hinzuzufügen, ist eine Möglichkeit. Um die systemweite resolv.conf dauerhaft mit Ihrem benutzerdefinierten DNS-Nameserver zu ändern, müssen Sie das resolvconf-Paket installieren (sofern es nicht bereits standardmäßig installiert ist) und seine Basis füllen Konfigurationsdatei mit Ihren benutzerdefinierten DNS-Nameserver-Werten. Hoffe, diese kurze Anleitung hilft Ihnen bei weiteren Konfigurationen bezüglich resolv.conf DNS-Einträgen http://www.bytelinux.com/make-permanent-changes-to-resolv-conf-file-on-ubuntu/
quelle
resolvconf
ist installiert. Ich möchte/etc/network/interfaces
meine DNS-Server für IPv4 bzw. IPv6 konfigurieren .Sie möchten IPv6-DNS-Server unter /etc/network/interfaces verwenden. Fügen Sie Ihre IPv6-DNS-Namenseinträge einfach wie folgt in die spezifische Netzwerkschnittstelle ein:
Verwenden Sie zum dauerhaften Hinzufügen von IPv6-DNS-Namen zu resolv.conf denselben Link, den ich unten hinzugefügt habe, und bearbeiten Sie die resolvconf-Basisdatei, indem Sie Ihre eigenen IPv6-DNS-Namen hinzufügen:
Um / etc / network / interfaces mit IPv6 zu konfigurieren, verwenden Sie dieses Handbuch http://www.bytelinux.com/configure-permanent-static-ip-address-alias-interfaces-debian-based-systems/ und ersetzen Sie IPv4 durch IPv6 the as es folgt: auto eth0
quelle
/etc/resolv.conf
. Wenn dies für Sie irgendwie funktioniert, wäre es hilfreich, die genaue Systemversion zu kennen./etc/network/interfaces
. Was nicht passiert, ist, dass sie so übertragen werden,/etc/resolv.conf
wie sie sollten. Und ich versuche herauszufinden, was ich falsch mache, ja.Warum implementieren Sie diese IPv6-DNS-Nameserver nicht direkt in der systemweiten Datei /etc/resolv.conf, indem Sie die resolvconf-Basisdatei wie in meiner vorherigen Antwort mit dem Link vorgeschlagen bearbeiten und weiterhin die Netzwerkschnittstellendatei verwenden? Sie können in /etc/resolv.conf eine Reihe von DNS-IPv6-Nameservern hinzufügen. Wenn Sie andere IPv6-Nameserver für eine bestimmte Netzwerkkarte verwenden möchten, verwenden Sie diese nur in / etc / network / interfaces.
quelle
/etc/network/interfaces
soll den Job machen, versuche ich herauszufinden, was ich falsch mache.