it-swarm.com.de

Ubuntu: Wie konfiguriere ich DNS-Server in / etc / network / interfaces korrekt für resolvconf?

Alle Beispiele, die ich für Konfigurationen gesehen habe (/etc/network/interfaces), Zeigten, dass Sie eine Schnittstelle konfigurieren und darunter die Zeilen dns-* Geben, wie z.

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 Zeile dns-nameservers Hinzuzufügen.

Da ich jedoch ohnehin auch die Schnittstelle für IPv6 konfiguriere, war es sinnvoll, dort die Zeile dns-nameservers Hinzuzufügen:

iface eth0 inet6 static
        ...
        dns-nameservers ::2
        dns-search example.com my.example.com

... oder doch? Denn wenn resolvconf/etc/resolv.conf Erstellt, werden einfach alle IPv6-DNS-Server ignoriert. Es scheint auch dns-search Und dns-domain Zu ignorieren. Die einzige Zeile, die es zu ehren scheint, ist die Zeile dns-nameservers 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 Strophe iface sein sollte. Zitat aus man 8 resolvconf :

Mit dem Programm ifup(8) können Netzwerkschnittstellen gemäß den Einstellungen in /etc/network/interfaces(5) konfiguriert werden. Um ifup Nameserver-Informationen beim Konfigurieren einer Schnittstelle an resolvconf zu senden, fügen Sie der entsprechenden Zeilengruppe iface in dns- Zeilen /etc/network/interfaces Hinzu. Um Nameserver-Adressen hinzuzufügen, fügen Sie eine Zeile hinzu, die mit dns-nameservers Beginnt.

14
0xC0000022L

Es ist richtig, dns- * -Optionen entweder in iface eth0 inet static Strophe oder die iface eth0 inet6 static Strophe. 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:

iface eth0 inet static
        address 192.168.178.22
        netmask 255.255.255.0
        dns-nameservers 8.8.8.8
        dns-search foo

iface eth0 inet6 static
        address fe80::390:f5ff:fef7:96b9/64
        dns-nameservers ::2
        dns-search bar

Ich habe es dann getan

$ Sudo ifup eth0

Die Ergebnisse:

$ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:90:f5:f7:96:b9  
      inet addr:192.168.178.22  Bcast:192.168.178.255  Mask:255.255.255.0
      inet6 addr: fe80::390:f5ff:fef7:96b9/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2114609 errors:0 dropped:1 overruns:0 frame:0
      TX packets:1757693 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:2033346950 (2.0 GB)  TX bytes:1318685445 (1.3 GB)
      Interrupt:20 Memory:f7e00000-f7e20000 

$ cat /etc/resolv.conf
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver ::2
nameserver 8.8.8.8
search bar foo

Beachten Sie, dass die Optionen Adressen, DNS-Nameserver und DNS-Suche aus beiden Zeilengruppen jetzt aktiv sind.

[Aktualisiert am 30. Mai 2015]

9
jdthood

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.)

IF Ich hatte die DNS-Such- und DNS-Nameserver-Leitungen nur auf EINER Schnittstelle (der primären, verkabelten), aber nicht auf der anderen (wlan0), dann beim Neustart In etwa 95% der Fälle wäre meine Datei /etc/resolv.conf leer.

z.B. Als meine Schnittstellendatei so aussah:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1 
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

DANN Nach einem Neustart würde meine resolv.conf folgendermaßen aussehen:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

Bei ein oder zwei Neustarts bemerkte ich jedoch, dass es DID hatte, was ich wollte, z.

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

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)

d.h. die folgende Schnittstellendatei funktioniert für mich:

# The primary network interface
auto enxb827ebbfedcf
iface enxb827ebbfedcf inet static
    address 192.168.1.16
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1

# end stanza with clear line+

# The loopback network interface
auto lo
iface lo inet loopback

auto wlan0 
iface wlan0 inet static
    address 192.168.1.17
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.1
    dns-search summer.co.uk summer.vpn
    dns-nameserver 192.168.1.16 
    dns-nameserver 192.168.1.1
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

und gibt mir nach jedem Neustart (bisher) die folgende korrekte resolv.conf

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 192.168.1.16
nameserver 192.168.1.1
search summer.co.uk summer.vpn

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 hätte ifup die wlan0-Schnittstelle als zweites ausgeführt und ifup die resolv.conf oder ähnliches gelöscht.)

Ich bin mir nicht sicher, ob dies ein Fehler ist oder nicht, aber ich fühle mich falsch.

1
Will