¿Alternativa descubierta para reemplazar el argumento mDNSResponder?


13

Este es un seguimiento directo de esta pregunta . Antes de Yosemite , agregaba el argumento "-AlwaysAppendSearchDomains" al archivo plist mDNSResponder para que todas las búsquedas de resolución local agregaran los dominios de búsqueda, independientemente de si había un período en la etiqueta para buscar. Por ejemplo, ya sea que intente ssh al nombre de host foo.bar o foo, el dominio de búsqueda de baz.com debe probarse, no solo para el último caso, como era (y es) el comportamiento predeterminado.

Ahora, parece que el mDNSResponder se ha ido, reemplazado por discoveryd. No puedo encontrar una opción similar para que siempre agregue el dominio de búsqueda. Sugerencias? Prefiero no seguir la ruta del uso de un solucionador local no predeterminado, pero lo consideraría como una opción. Por ahora, simplemente escribiré los FQDN largos, pero realmente prefiero no hacerlo.

Gracias pete


Anteriormente había intentado habilitar el mDNSResponder deshabilitado, pero desde DP8, eso parece ausente por completo :( Tengo un ticket de soporte escalado a los ingenieros de Yosemite ahora sobre la opción -AlwaysAppendSearchDomains y cómo manejar esto con discoveryd, así que publicaré más hallazgos aquí cuando me contactan en unos días.
djh

@djh, ¿alguna suerte con los ingenieros de Apple?
Sigsegv

Esto se fijará en el marco de la 10.10.1 actualización Allows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information). Ver la respuesta de @ Teknisten a continuación.
cOle2

Esto parece ser menos relevante en las versiones más nuevas de macOS ya que han eliminado el descubrimiento en 10.10.4 macrumors.com/2015/06/30/apple-releases-os-x-10-10-4
Scott Willeke

Respuestas:


18

Desde 10.10.1, la forma más sencilla de solucionar esto es agregarlo --AlwaysAppendSearchDomainsal ProgramArgumentsarchivo plist/System/Library/LaunchDaemons/com.apple.discoveryd.plist

Luego reinicie com.apple.discoveryd.plistcon:

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

Todo esto según la ayuda impresa por:

/usr/libexec/discoveryd --help

Hasta donde puedo decir, eso hará lo mismo que para mDNSResponder.


Desafortunadamente, no estoy trabajando en El Capitán.
Dmitry Verkhoturov

4

Ejecute sudo discoveryutil mdnsactivedirectory yes en la Terminal. De acuerdo con https://discussions.apple.com/message/26927843#26927843 es la solución.

Se puede hacer que se ejecute automáticamente cada vez que inicie un terminal sin contraseña:

  • sudo visudo
    • agrega una línea al final %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • Si el grupo de administración no funciona, ejecute groupsen la terminal y use un grupo apropiado, tal vez 'personal' o 'todos'. O simplemente use un nombre de usuario individual sin el líder%
  • Para probar el cambio de visudo
    • sudo -k
    • sudo suy verifique que se le solicite la contraseña. Luego control-c sin ingresar su contraseña
    • sudo discoveryutil mdnsactivedirectoryy verifique que no se le solicite la contraseña
  • Agregue una línea a ~ / .bash_profile sudo discoveryutil mdnsactivedirectory yes
  • Agregue Terminal a los elementos de inicio de sesión de su usuario
    • en 10.10: Preferencias del sistema-> Usuarios y grupos, Seleccionar usuario
    • Vaya a la pestaña "Elementos de inicio de sesión" y agregue / Aplicaciones / Utilidades / Terminal

¿Cómo haces esto permanente? Después de reiniciar, deberá ejecutar este comando nuevamente.
JoeriBe

Esto no parece funcionar para mí, al menos wrt nombres de host no .local. Todavía necesito escribir "ssh foo.bar.baz.com" en lugar de "ssh foo.bar", aunque ".baz.com" esté en mi ruta de búsqueda.
Sigsegv

No debe agregar a un usuario ~/.bash_profileuna modificación de configuración que deba realizarse a nivel del demonio del sistema, aquí discoveryd.
dan

1

Desafortunadamente, no hay solución, pero descubrí que al menos puede verificar la configuración del resolutor usando 'discoveryutil', de esta manera:

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

Aparentemente, el primer resolutor enumera un dominio de búsqueda, aunque no parece funcionar como en las versiones OS X <10.10. No tengo idea de por qué hay una segunda resolución sin un dominio de búsqueda en la lista.


1

Aquí hay una solución pirateada que usa un servidor de nombres local: funciona para mí:

https://github.com/joedj/yosemite_dnsfix


1
Sería mejor agregar la solución como parte de la respuesta, de lo contrario, si el enlace desaparece, la respuesta se vuelve inútil. Puedes editar tu propia publicación para agregarla.
Tetsujin
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.