DNS-Auflösungsproblem mit Fedora 20

DNS-Auflösungsproblem mit Fedora 20

Ich habe einen neu gebauten Fedora 20-Server, den ich gerade an mein Netzwerk angeschlossen habe. Es ist ein virtueller Server, der auf einem VirtualBox-Host läuft. Alles scheint zu funktionieren, aber ich habe ein Problem mit der Namensauflösung.

(Ich sollte an dieser Stelle erwähnen, dass die Namensauflösung von einem Windows-Server auf separater Hardware bereitgestellt wird, der für alle anderen Computer im Netzwerk gut funktioniert.)

Über die Befehlszeile kann ich einen externen Host wie auflösen unix.stackexchange.com. Ich kann das problemlos auflösen und anpingen, wie bei jedem anderen externen Host, den ich ausprobiert habe.

Mein lokales Netzwerk (nennen wir es xyz.local) ist jedoch anders. Die Netzwerkschnittstelle auf meinem F20-Rechner hat DOMAIN=xyx.localim Netzwerkskript (vollständiges Skript unten). Von der Befehlszeile aus kann ich beispielsweise , server-01aber nicht auflösen server-01.xyz.local.

Ich kann einen Alias ​​in der Kurzform auflösen, obwohl der kanonische Name die Langform ist, also wird beispielsweise ping mysqlerfolgreich in seinen Alias ​​aufgelöst , ich kann jedoch weder noch linux-04.xyz.localauflösen .mysql.xyz.locallinux-04.xyz.local

Offensichtlich habe ich etwas übersehen. Kann mir jemand sagen, was?

/etc/hosts hat nur die Standard-Localhost-Einträge für 127.0.0.1

/etc/resolv.conf lautet wie folgt:

#Generated by Network Manager
search xyz.local
nameserver 192.168.xxx.xxx

Mein Schnittstellenskript ist

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME="Wired connection 1"
UUID=<uuid>
ONBOOT=yes
IPADDR0=192.168.xxx.xxx
PREFIX0=24
GATEWAY0=192.168.xxx.xxx
DNS1=192.168.xxx.xxx
HWADDR=<mac>
DOMAIN=xyz.local
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes

Antwort1

Ein Teil Ihres Problems ist wahrscheinlich darauf zurückzuführen, dass Ihr Suchpfad automatisch über NetworkManager generiert wird:

search xyz.local

Diese Zeile sollte eigentlich so lauten:

search xyz.local.

Der Punkt am Ende ist wichtig, da er dem DNS-Resolver mitteilt, dass er anhalten soll. So etwas passiert Ihnen also nicht:

mysql.xyz.local.xyz.local

Sie können dies bestätigen, indem Sie versuchen, Hostnamen aufzulösen, indem Sie vorübergehend selbst manuell einen Punkt hinzufügen.

$ nslookup mysql.xyz.local.

Diese Domain wird umfassend aufgelöst

Um dies zu beheben, müssen Sie die Definition Ihrer Domäne auf Ihrem DHCP-Server ändern, sodass die Domäne als bereitgestellt wird xyz.local..

/etc/nsswitch.conf

Die Methode, mit der ein Hostname aufgelöst wird, wird durch die Datei gesteuert /etc/nsswitch.conf. Die Notation NSS steht für Name Service Switch und Sie können mehr darüber auf der Manpage lesen man nss.

Hier ist die Zeile aus meiner Datei, die steuert, wie Hostnamen aufgelöst werden:

$ grep ^hosts /etc/nsswitch.conf
hosts:      files dns mdns4_minimal

Es sucht zuerst in meiner lokalen Datei /etc/hostsund fragt dann DNS ab.

Antwort2

Das Problem wird durch das Schlüsselwort „mdns4_minimal“ in der Datei nsswitch.conf verursacht. Dieses Schlüsselwort teilt dem Resolver mit, dass alles, was mit „local“ endet, mit mdns abgefragt werden soll. Es sollte ausreichen, dieses Schlüsselwort (und zusätzliche Optionen, die normalerweise in eckigen Klammern angegeben sind) zu entfernen.

Weitere Einzelheiten finden Sie in meinemPost

Der Grund, warum nslookup alles auflöst, liegt darin, dass es nicht in nsswitch.conf nachsieht, sondern /etc/resolv.conf direkt verwendet. Ping hingegen ist auf einen Resolver angewiesen, der zuerst in nsswitch.conf nachsieht und den Namen mit dem auflöst, was dort steht.

verwandte Informationen