Alternative zum Ersetzen des mDNSResponder-Arguments entdecken?

13

Dies ist eine direkte Fortsetzung dieser Frage . Vor Yosemite habe ich der mDNSResponder-Plist-Datei das Argument "-AlwaysAppendSearchDomains" hinzugefügt, damit bei allen lokalen Auflösungssuchen die Suchdomänen hinzugefügt wurden, unabhängig davon, ob das zu suchende Etikett einen Punkt enthält. Egal, ob ich versuche, auf den Hostnamen foo.bar oder foo zu ssh zuzugreifen, sollte die Suchdomäne von baz.com nicht nur für den letzteren Fall ausprobiert werden, da dies das Standardverhalten war (und ist).

Es sieht so aus, als wäre der mDNSResponder verschwunden und durch discoveryd ersetzt. Ich kann keine ähnliche Option finden, um die Suchdomäne immer anzuhängen. Vorschläge? Ich würde es vorziehen, keinen nicht standardmäßigen lokalen Resolver zu verwenden, aber ich würde es als Option in Betracht ziehen. Im Moment gebe ich nur die langen FQDNs ein, aber ich würde es lieber nicht tun.

Danke, Pete

Sigsegv
quelle
Ich hatte zuvor versucht, den deaktivierten mDNSResponder zu aktivieren, aber seit DP8 scheint dies nicht mehr zu geschehen :( Ich habe ein Support-Ticket an die Yosemite-Ingenieure verschickt, das sich mit der Option -AlwaysAppendSearchDomains befasst und erläutert, wie dies mit discoveryd gehandhabt wird Erkenntnisse hier, wenn sie sich in ein paar Tagen bei mir
melden
@djh, hast du Glück mit den Apple-Ingenieuren?
Sigsegv
Dies wird als Teil der festen 10.10.1 Update: Allows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information). Siehe die Antwort von @ Teknisten unten.
cOle2
Dies scheint für neuere Versionen von macOS weniger relevant zu sein, da sie Discoveryd in 10.10.4 entfernt haben. Macrumors.com/2015/06/30/apple-releases-os-x-10-10-4
Scott Willeke

Antworten:

18

Da 10.10.1, der einfachste Weg , dies zu beheben , ist hinzuzufügen , --AlwaysAppendSearchDomainsum ProgramArgumentsin plist - Datei/System/Library/LaunchDaemons/com.apple.discoveryd.plist

Dann neu starten com.apple.discoveryd.plistmit:

sudo launchctl unload /System/Library/LaunchDaemons/com.apple.discoveryd.plist
sudo launchctl load /System/Library/LaunchDaemons/com.apple.discoveryd.plist

All dies gemäß der Hilfe von:

/usr/libexec/discoveryd --help

Soweit ich das beurteilen kann, wird dies genauso funktionieren wie bei mDNSResponder.

Teknisten
quelle
Ich arbeite leider nicht in El Capitan.
Dmitry Verkhoturov
4

Führen Sie sudo discoveryutil mdnsactivedirectory yes im Terminal aus. Laut https://discussions.apple.com/message/26927843#26927843 ist es die Lösung.

Dies kann automatisch ausgeführt werden, wenn ein Terminal ohne Kennwort gestartet wird:

  • sudo visudo
    • füge unten eine Linie hinzu %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • Wenn die Administratorgruppe nicht funktioniert, führen Sie sie groupsam Terminal aus und verwenden Sie eine geeignete Gruppe - möglicherweise "Mitarbeiter" oder "Alle". Oder verwenden Sie einfach einen individuellen Benutzernamen ohne den führenden%
  • Visudo change testen
    • sudo -k
    • sudo suund vergewissern Sie sich , dass Sie nach dem Passwort gefragt werden. Dann control-c ohne Eingabe deines Passwortes
    • sudo discoveryutil mdnsactivedirectoryund vergewissern Sie sich , dass Sie nicht nach dem Passwort gefragt werden
  • Fügen Sie eine Zeile zu ~ / .bash_profile hinzu sudo discoveryutil mdnsactivedirectory yes
  • Fügen Sie Terminal zu den Anmeldeelementen Ihres Benutzers hinzu
    • Wählen Sie unter 10.10: Systemeinstellungen-> Benutzer und Gruppen Benutzer aus
    • Gehen Sie zur Registerkarte "Anmeldeobjekte" und fügen Sie / Programme / Dienstprogramme / Terminal hinzu
user97566
quelle
Wie machst du das dauerhaft? Nach einem Neustart müssen Sie diesen Befehl erneut ausführen.
JoeriBe
Dies scheint bei mir nicht zu funktionieren, zumindest bei nicht-lokalen Hostnamen. Ich muss weiterhin "ssh foo.bar.baz.com" anstelle von "ssh foo.bar" eingeben, obwohl sich ".baz.com" in meinem Suchpfad befindet.
Sigsegv
Sie sollten einem Benutzer ~/.bash_profilekeine Konfigurationsänderung hinzufügen , die auf der Ebene des Systemdämons vorgenommen werden muss discoveryd.
Dan
1

Leider keine Lösung, aber ich habe herausgefunden, dass Sie zumindest die Resolver-Konfiguration mit 'discoveryutil' überprüfen können:

mdbraber-mba:~ mdbraber$ sudo discoveryutil configresolver
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope None, order 0
    server 192.168.143.1
    search domain ourhouse
Configuration Resolvers: Resolver domain [default], type Unicast, ifIndex 4, port 0, timeout 30, A yes, AAAA no, serviceID 0, scope InterfaceID, order 0
    server 192.168.143.1

Anscheinend listet der erste Resolver eine Suchdomäne auf, obwohl es nicht so zu funktionieren scheint wie unter OS X <10.10. Keine Ahnung, warum es einen zweiten Resolver ohne Suchdomäne gibt.

mdbraber
quelle
1

Hier ist eine gehackte Lösung mit einem lokalen Nameserver - funktioniert für mich:

https://github.com/joedj/yosemite_dnsfix

joedj
quelle
1
Es ist besser, die Lösung als Teil der Antwort hinzuzufügen. Andernfalls wird die Antwort unbrauchbar, wenn der Link jemals verschwindet. Sie können Ihren eigenen Beitrag bearbeiten, um ihn hinzuzufügen.
Tetsujin