Multicast-Hostnamensuche unter OSX

7

Ich habe ein Problem mit der Suche nach Hostnamen auf meinem OSX-Computer. Laut Apples HK3473- Dokument heißt es für Version 10.6:

Hostnamen, die neben lokal nur eine Bezeichnung enthalten, z. B. "My-Computer.local", werden standardmäßig mit Multicast-DNS (Bonjour) aufgelöst. Hostnamen, die zusätzlich zu lokal zwei oder mehr Bezeichnungen enthalten, z. B. "server.domain.local", werden standardmäßig über einen DNS-Server aufgelöst.

Welches ist nicht wahr als meine Prüfung. Wenn ich versuche, auf meinem lokalen Computer eine Verbindung zu einem Remote-Port herzustellen:

telnet example.domain.local 22

Anschließend wird die IP-Adresse mit Multicast-DNS neben Aund AAAAgesucht. Dies führt bei jeder Suche zu einem Suchzeitlimit von zwei Sekunden. Welches ist viel!

Wenn ich es nur mit IPv4 versuche, werden die Multicast-Abfragen nicht verwendet, um die Remote-Adresse abzurufen, sondern nur die einfachen AAbfragen.

telnet -4 example.domain.local 22

Wenn ich es nur mit IPv6 versuche:

telnet -6 example.domain.local 22

dann wird es mit dem Multicast - DNS - Lookup und AAAA wieder, und die 2 Sekunden Timeout - Zeit wieder auftritt.

Ich habe versucht, einen Resolver-Eintrag für mein /etc/resolver/domain.localund zu erstellen /etc/resolver/local.1, aber keiner von ihnen hat funktioniert.

Gibt es eine Möglichkeit, diese Multicast-Suche für die "Hinzufügung von zwei oder mehr Labels zu lokalen" Domänen zu deaktivieren oder sie einfach für die ausgewählte Subdomain (domain.local) zu deaktivieren?

Vielen Dank!

Update Nr. 1

Vielen Dank an @mralexgray für den scutil --dnsBefehl. Jetzt kann ich meine Domain in der Liste sehen, aber es ist spät in der Reihenfolge:

DNS configuration

resolver #1
  domain : adverticum.lan
  nameserver[0] : 192.168.1.1
  order   : 200000

resolver #2
  domain : local
  options : mdns
  timeout : 2
  order   : 300000

resolver #3
  domain : 254.169.in-addr.arpa
  options : mdns
  timeout : 2
  order   : 300200

resolver #4
  domain : 8.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 300400

resolver #5
  domain : 9.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 300600

resolver #6
  domain : a.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 300800

resolver #7
  domain : b.e.f.ip6.arpa
  options : mdns
  timeout : 2
  order   : 301000

resolver #8
  domain : domain.local
  nameserver[0] : 192.168.1.1
  order   : 200001

Vielleicht würde es funktionieren, wenn ich das resolver #8auf Position 2 bringen könnte.

Update Nr. 2

Nein wird wahrscheinlich nicht funktionieren, da der lokale DNS-Server beim 192.168.1.1Beantworten von domain.localAnfragen vor dem mDNS ( resolver #2) steht.

Update Nr. 3

Ich könnte das mDNS-Zeitlimit in der /System/Library/SystemConfiguration/IPMonitor.bundle/Contents/Info.plistDatei verringern , was die Suche etwas beschleunigt, aber dies ist nicht die Lösung.

KARASZI István
quelle
Haben Sie jemals eine Antwort darauf gefunden? Das Deaktivieren von mDNSResponder hat tatsächlich alle Anwendungen beschädigt, die Hostnamen aufgelöst haben (Safari, Finder usw.)
jishi
Nein, leider noch nicht :(
KARASZI István
Betrachtet man das Feld order:: Ich denke, Ihr Resolver ist bereits der zweite.
Sander Steffann
Ja, das scutilsagt das, aber die Auflösung funktioniert anders!
KARASZI István

Antworten:

1

Haben Sie versucht, die Namen in Ihrer /etc/hostsDatei zu definieren?

10.0.1.1                ns1 ns1.local
10.0.1.200              www www.local
2001:470:20::9999       www ns1 www.example.net ns1.example.net 

Welche anderen DNS-Dienste werden im lokalen Subnetz betrieben? Sie können viele Probleme lösen, indem Sie lokales DNS explizit und ganz einfach bereitstellen - mit DNSMasq , was ich von ganzem Herzen empfehle.

Möglicherweise müssen Sie die Dinge auch einfach mit einem dscacheutil -flushcache↩ oder einem guten alten sudo killall mDNSResponder↩ ausspülen. Am äußersten Ende der Dinge, die ich nicht vorschlage - Sie können mDNSResponder (Bonjour usw.) auch insgesamt deaktivieren ↝

launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponderHelper.plist
launchctl unload -w /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist

Post-10.5-Systeme bieten DNS-Auflösung über eine ziemlich verwirrende Kette von Anweisungen, die von configd vorgeschrieben werden und dem alten " Systemkicker " erben . So erhalten Sie den Status ↝ scutil --dns↩, der die Systemreihenfolge der DNS-Auflösung anzeigt, z. B. ↯

DNS-Konfiguration

Resolver # 1 Domain: example.net Suchdomäne [0]: example.net Nameserver [0]: 127.0.0.1 Reihenfolge: 200000

Resolver # 2 Domain: Lokale Optionen: MDNS Timeout: 2 Reihenfolge: 300000

resolver # 3 domain: 254.169.in-addr.arpa options: mdns timeout: 2 order: 300200

Resolver # 4 Domain: 8.efip6.arpa Optionen: MDNS Timeout: 2 Reihenfolge: 300400

Wenn Sie immer noch Probleme haben, stellen Sie sicher, dass diese Liste "für Sie sinnvoll" ist - und gehen Sie von dort aus ...

mralexgray
quelle
Ich konnte die Adressen in meiner /etc/hostsDatei nicht festlegen , da sie sich im DNS des Unternehmens befinden.
KARASZI István
Zu Ihrer Information: Wenn ich in meiner Hosts-Datei einen Beispielhost festlege, funktioniert dieser und sendet keine mDNS-Anforderungen.
KARASZI István
Was bekommen Sie, wenn Sie scutil --dns eingeben ? und wie wäre es mit einer Ausgrabung oder einem nslookup, das für Sie nicht funktioniert ...
mralexgray
Ich habe meine sciutil --dnsAusgabe bereits in die Frage eingefügt . (Siehe Update). Das Problem ist nicht das, das nslookupoder digfunktioniert nicht. Ein einfaches Nachschlagen telnetoder Öffnen einer Endseite durch Safari domain.localnimmt jedoch aufgrund des mDNS-Nachforschens zu viel Zeit in Anspruch.
KARASZI István
1
Auf neueren Systemen (10.6 und höher, möglicherweise älter) verlieren Sie alle Domain-Lookups, wenn Sie mDNSResponder deaktivieren.
Dan Pritts