Mein Arbeitsplatz hat ein Intranet mit Domainnamen wie server01.foo.local
, server02.foo.local
usw. Ich habe kürzlich die Fedora 16-Live-Umgebung gestartet, um sie zu testen, und festgestellt, dass diese Domänennamen nicht aufgelöst werden.
Zum Beispiel:
$ ping server01.foo.local
ping: unbekannter Host server01.foo.local
$ ping server01
PING server01.foo.local (X.X.X.X) ...
Warum wird server01
auflösen (und den Namen ausdrucken als server01.foo.local
), aber server01.foo.local
wird nicht?
linux
networking
dhcp
rhollencamp
quelle
quelle
Antworten:
Ich bin mir zwar nicht ganz sicher, warum es nicht wie erwartet funktioniert, aber es scheint einen sehr großen Konflikt mit dem mDNS-Dienst (Avahi unter Linux, Bonjour / Zeroconf unter Mac / Windows) und Windows-Netzwerken zu geben Verwenden Sie .local als internen Routing-Namen für Domains. Was zu passieren scheint, ist, dass beim Pingen von server01 die Verwendung von mDNS zur Auflösung übersprungen und dann die Suchdomäne (foo.local) an die Anforderung angehängt wird, wodurch der DNS-Server erfolgreich nach server01.foo.local abgefragt wird. Wenn Sie jedoch mit mDNS (das .local als Standard-Computernamenerweiterung verwendet) versuchen, server01.foo.local zu pingen, wird tatsächlich über mDNS gesendet, um nach einem Computer mit dem Namen "server01.foo" zu suchen. Wenn dies fehlschlägt, wird aus irgendeinem Grund kein direkter DNS-Wechsel durchgeführt. Eine große Problemumgehung besteht darin, Ihre Domain nicht als .local zu bezeichnen, was wahrscheinlich gegen das Training der meisten Windows-Administratoren für die Domain-Strukturierung verstößt. Davon abgesehen:
Wenn mDNS in Ihrem Netzwerk keine Rolle spielt (wie es in Unternehmen üblich ist, die dazu neigen, dedizierte DNS-Server im Vergleich zum Heimnetzwerk zu betreiben, in dem mDNS manchmal verwendet wird), ist das Ändern der Suchreihenfolge die einfachste Lösung.
Dies kann in /etc/nsswitch.conf gefunden werden. Im Abschnitt für Hosts wird die Reihenfolge aufgeführt, die für Fedora 16 standardmäßig wie folgt lautet:
Wenn Sie dies ändern in:
Wo Sie DNS in der Suchreihenfolge vorrücken, sollte dies für den Moment korrigieren. Wenn Sie wissen, dass Sie mDNS überhaupt nicht benötigen, entfernen Sie alternativ einfach den Teil "mdns4_minimal [NOTFOUND = return]".
Anschauen Dieser Fehler in Red Hats Tracker Es scheint, dass dies ein seit langem bestehendes Problem ist, für das derzeit keine Lösung erkennbar ist. Wenn jemand mehr Einblick geben kann, warum dies auf diese Weise geschieht, wäre er dankbar.
quelle
vpnc
Verbindung kann nicht hergestellt werden, nachdem diese Einträge im entfernt wurdenhosts: .*
Linie in/etc/nsswitch.conf
. Durch Ersetzen dieser Einstellungen wurde das Problem behoben.[NOTFOUND=return]
bedeutet "Wenn mDNS Ihnen mitteilt, dass kein lokaler Name gefunden wurde, ist dies maßgeblich und es macht keinen Sinn, weiter zu fragen". Das Verschieben von DNS vor mDNS ist ein Workaround, es reicht jedoch bereits aus, mDNS-Fehler nicht autorisierend zu machen.Ich würde eine andere Lösung vorschlagen, falls Sie die verwenden
.local
Domain. Erstens ist es keine gute Idee, da es ein Standard / eine Konvention zu sein scheint.local
für einige dynamische Multicast-Erkennung.Aber wenn Sie darauf bestehen, ist es auch einfacher, sie einfach zu entfernen
nss-mdns
Paket oderlibnss-mdns
Paket abhängig von Ihrer Distribution und Sie erhalten das Problem behoben. Wenn Sie diese Funktionalität nicht benötigen, warum sollte sie dann noch vorhanden sein?Hier ist
yum info nss-mdns
:quelle
Einige Dinge, die Sie überprüfen können:
Gibt es eine Anweisung in /etc/host.conf, die angibt, dass / etc / hosts überprüft werden soll, bevor DNS abgefragt wird?
befindet sich server01 in / etc / hosts?
Ist da ein
search foo.local
in / etc / resolv, conf? Das würde foo.local an jeden Hostnamen anhängen, den Sie nachschlagenIch frage mich, ob dein Nameserver richtig eingerichtet ist. Wenn Sie noch nslookup haben, wofür wird es zurückgegeben?
server01
,server01.foo.local
und die ip-adresse (reverse lookup)?quelle