10 Sekunden Verzögerung für lokale TLD unter Mac OS X Lion

13

Unser Firmennetzwerk verwendet xxx.companyname.localfür alle Server in unserem lokalen Netzwerk. Wann immer ich auf einen dieser Server auf meinem Mac zugreife, habe ich eine Verzögerung von 10 Sekunden. Ich habe herausgefunden, dass diese Verzögerung durch DNS-Lookups verursacht wird, da Lion anscheinend lokale Domänen in der folgenden Reihenfolge auflöst:

  1. Überprüfen Sie die /etc/hostsIPv6-Adresse
  2. DNS-Server auf einen AAAA-Eintrag prüfen (IPv6-Adresse)
  3. Über MDNS (Bonjour) nach einem AAAA-Datensatz suchen
  4. Suchen Sie /etc/hostsnach einer IPv4-Adresse
  5. DNS-Server auf einen A-Eintrag prüfen (IPv4-Adresse)
  6. Überprüfen Sie MDNS für einen Datensatz

Das Problem ist, dass wir kein IPv6-Netzwerk haben. Alle xxx.companyname.localServer in unserem Netzwerk haben nur IPv4-Adressen und der DNS-Server hat nur A-Einträge. Dies bedeutet, dass die Adresse in Schritt 5 aufgelöst wird. Das Problem dabei ist, dass Schritt 3 zehn Sekunden dauert, bevor eine Zeitüberschreitung auftritt! Jedes Mal, wenn ich eine Verbindung zu unserem Wiki, SVN-Server, Kerberos-Server usw. herstelle, tritt eine Verzögerung von 10 Sekunden auf.

Ich habe es geschafft, Lion zu täuschen, indem ich Zeilen wie die folgenden hinzufügte /etc/hosts

::FFFF:10.99.99.99 xxx.companyname.local

In diesem Fall geht Lion davon aus, dass eine IPv6-Adresse für die Domäne vorhanden ist, und stoppt nach Schritt 1. Durch diese Problemumgehung werden jedoch alle nützlichen Funktionen von DNS vollständig umgangen. Ich möchte die IP-Adressen von Dutzenden von internen Domains nicht manuell verfolgen! Ich könnte genauso gut aufhören, Hostnamen zu verwenden und einfach IP-Adressen eingeben!

Also: Hat jemand eine Idee, wie man diese Suchreihenfolge ändert? Oder deaktivieren Sie die IPv6-Suche, da wir sowieso kein IPv6-Netzwerk haben?

Jakob Egger
quelle
Vielen Dank für die Frage - ich habe es als Mac-DNS-Auflösungsreferenz markiert;)
Alex
Sie sollten besser herausfinden, warum Ihre DNS-Server 10 Sekunden AAAAbenötigen , um eine leere Datensatzantwort für Datensätze zu senden, wenn sie (wie Sie sagen) nicht annähernd so lange brauchen, um AAnfragen zu beantworten gleichen Domainnamen. Sie scheinen sich im klassischen RFC 4074-Gebiet zu befinden, wo das Problem darin besteht, dass die Server defekt sind . Hinweis auch, dass Sie auf einem der mehreren bekannten und lange diskutiert Gründen getroffen habe nicht mit local.für Split-Horizon - DNS - Dienst. Das ist auch besser zu beheben.
JdeBP
1
Die DNS-Server in Schritt 2 geben sofort einen leeren AAAA-Eintrag zurück. Das Problem ist Schritt 3 - die MDNS / Bonjour / Zeroconf-Abfrage. Lion wartet 10 Sekunden nach der Übertragung, bevor das Zeitlimit überschritten wird. Nachdem ich ein bisschen gegoogelt habe, ist mir klar, dass das Verwenden local.eine schlechte Idee ist, aber die IT-Abteilung hat mir gesagt, dass das Verwenden local.companyname.für sie vollkommen in Ordnung ist und ich kann nichts dagegen tun.
Jakob Egger
Die Mitarbeiter in Ihrer IT-Abteilung sind stark unterinformiert. Es ist bekannt, dass dies in Kreisen der Netzwerkadministration seit ungefähr einem halben Jahrzehnt nicht mehr "vollkommen in Ordnung" ist. Sie könnten… dazu ermutigen…, das Netzwerkwissen Ihrer IT-Abteilung in das 21. Jahrhundert einzubringen. Sie könnten sie daran erinnern, dass es nicht ihre Aufgabe ist , Dinge so zu arrangieren, dass die Firmencomputer nicht richtig funktionieren. ☺
JdeBP
@JdeBP Und dennoch hat Apple entschieden, dass es eine gute Idee ist, es zu verwenden ... Sie werden feststellen, dass Microsoft es auch verwendet und es als bewährte Methode empfiehlt. Also ... wer sagt das nicht ?
Basic

Antworten:

8

Verhindern Sie den Missbrauch Ihrer IT-Abteilung local..

Wie bereits erwähnt, ist die missbräuchliche Verwendung eines Domainnamens , den Ihr Unternehmen nicht besitzt , und die Annahme, dass er Unternehmens-Subdomains erstellen kann, falsch und das halbe Problem. Wenn die Firmencomputer Macintosh-Computer (oder andere Computer, die DNSSD verwenden) enthalten, sollten Sie auf keinen Fall davon ausgehen, dass Sie local.damit auf diese Weise frei herumspielen können .

Rüsten Sie Ihren Macintosh auf.

MacOS 10.4 würde in der Tat so behandeln, xxx.companyname.local.wie Sie es beschreiben. Dies hat sich jedoch in späteren Versionen des Betriebssystems geändert. MacOS 10.5 übergibt nur Namen mit zwei Bezeichnungen an Multicast-DNS. Drei-Label-Namen wie xxx.companyname.local.werden von MDNS nicht behandelt. MacOS 10.6 geht noch einen Schritt weiter und versucht festzustellen, ob der DNS-Server für eine local. Zone falsch konfiguriert wurde, und entsprechend vorzugehen .

Sie sollten Ihren Macintosh mindestens so konfigurieren, dass er eine /etc/resolver/Firmennamensdatei.local enthält, search_order 1in der die aktuellen IP-Adressen Ihrer Proxy-DNS-Server aufgelistet sind. Dies funktioniert jedoch nicht gut mit DHCP-zugewiesenen DNS-Server-IP-Adressen, die sich laut Apple ändern.

Auf der packenden Hand ...

… Das sind einfach immer komplexere Gebilde, um Fehltritte auszugleichen. Um Marc Krochmal von Apple zu zitieren: "Es wird immer ein Problem geben", wenn Menschen local.auf die Art und Weise missbrauchen, wie Ihr Unternehmen es tut. Es ist seit 2002 bekannt, dass es falsch ist (eine schnelle Suche sagt es mir), wenn nicht vorher. Tu es einfach nicht .

Weitere Lektüre

JdeBP
quelle
2
Keine dieser Informationen behebt meine Probleme mit der DNS-Auflösung in Lion (Mac OS X 10.7). Außerdem /etc/resolver/companyname.localscheint Lion ignoriert zu werden.
Jakob Egger
0

Ich kenne keinen Mac, kann also nicht wirklich helfen, aber ich kam mit einer cleveren "somedomain.com DNAME companyname.local"Lösung : Wenn Sie irgendwo im Internet einrichten , wird DNAME in Schritt 2 erkannt. Jetzt bin ich nicht sicher, was passieren wird als nächstes wird es immer noch auf bonjour zurückgreifen, oder da es sich bereits mitten in einem DNS-Prozess befindet, wird es vielleicht bei DNS bleiben.

Alex
quelle
Ich kann freiwillig den DNAME für Sie erstellen, wenn Sie es wünschen :)
Alex