Alternativa descoberta para substituir o argumento mDNSResponder?


13

Este é um seguimento direto a esta pergunta . Antes de Yosemite , eu adicionava o argumento "-AlwaysAppendSearchDomains" ao arquivo mDNSResponder plist para que todas as pesquisas de resolvedores locais adicionassem os domínios de pesquisa, independentemente de haver um período no rótulo a ser procurado. Por exemplo, se eu tentar ssh como nome do host foo.bar ou foo, o domínio de pesquisa do baz.com deve ser tentado, não apenas no último caso, como foi (e é) o comportamento padrão.

Agora, parece que o mDNSResponder se foi, substituído pelo discoveryd. Não consigo encontrar uma opção semelhante para sempre anexar o domínio de pesquisa. Sugestões? Prefiro não seguir o caminho de usar um resolvedor local não padrão, mas considero isso uma opção. Por enquanto, digito apenas os FQDNs longos, mas prefiro não.

Obrigado, Pete


Eu já havia tentado ativar o mDNSResponder desativado, mas desde o DP8 isso parece ausente :( Eu tenho um ticket de suporte escalado para os engenheiros da Yosemite agora sobre a opção -AlwaysAppendSearchDomains e como lidar com isso com o discoveryd, para que eu poste mais resultados aqui quando em contato comigo em poucos dias.
djh

@djh, alguma sorte com os engenheiros da Apple?
Sigsegv

Este é fixado no âmbito do 10.10.1 atualização: Allows you to append search domains for partially qualified domain names when performing DNS lookups (consult the discoveryd man page for more information). Veja a resposta de @ Teknisten abaixo.
cOle2

Esta parece ser menos relevante em versões mais recentes do MacOS desde que tenham removido discoveryd em 10.10.4 macrumors.com/2015/06/30/apple-releases-os-x-10-10-4
Scott Willeke

Respostas:


18

Desde a versão 10.10.1, a maneira mais simples de corrigir isso é adicionar --AlwaysAppendSearchDomainsao ProgramArgumentsarquivo plist/System/Library/LaunchDaemons/com.apple.discoveryd.plist

Em seguida, reinicie com.apple.discoveryd.plistcom:

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

Tudo isso de acordo com a ajuda impressa por:

/usr/libexec/discoveryd --help

Isso fará o mesmo que para o mDNSResponder, até onde eu sei.


Infelizmente não estou trabalhando em El Capitan.
Dmitry Verkhoturov

4

Execute sudo discoveryutil mdnsactivedirectory yes no Terminal. De acordo com https://discussions.apple.com/message/26927843#26927843 , é a solução.

Isso pode ser feito para ser executado automaticamente sempre que iniciar um terminal sem uma senha:

  • sudo visudo
    • adicione uma linha ao fundo %admin ALL=NOPASSWD: /usr/sbin/discoveryutil
    • Se o grupo de administradores não funcionar, corra groupsno terminal e use um grupo apropriado - talvez 'equipe' ou 'todos'. Ou apenas use um nome de usuário individual sem os principais%
  • Para testar a alteração de visudo
    • sudo -k
    • sudo sue verifique se a senha é solicitada. Então control-c sem digitar sua senha
    • sudo discoveryutil mdnsactivedirectorye verifique se você não pediu a senha
  • Adicione uma linha a ~ / .bash_profile sudo discoveryutil mdnsactivedirectory yes
  • Adicionar terminal aos itens de login do usuário
    • na 10.10: Preferências do sistema-> Usuários e grupos, selecione Usuário
    • Vá para a guia "Itens de login" e adicione / Aplicativos / Utilitários / Terminal

Como você torna isso permanente? Após uma reinicialização, você precisará executar este comando novamente.
JoeriBe

Isso não parece funcionar para mim, pelo menos, nomes de host não-locais. Ainda preciso digitar "ssh foo.bar.baz.com" em vez de "ssh foo.bar", mesmo que ".baz.com" esteja no meu caminho de pesquisa.
SIGSEGV

Você não deve adicionar em um usuário ~/.bash_profileuma modificação na configuração que deve ser feita no nível do daemon do sistema aqui discoveryd.
dan

1

Infelizmente, não há solução, mas descobri que você pode pelo menos verificar a configuração do resolvedor usando 'discoveryutil', assim:

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, o primeiro resolvedor lista um domínio de pesquisa, embora não pareça funcionar nas versões do OS X <10.10. Não faço ideia por que existe um segundo resolvedor sem um domínio de pesquisa listado.


1

Aqui está uma solução hackeada usando um servidor de nomes local - funciona para mim:

https://github.com/joedj/yosemite_dnsfix


1
Seria melhor adicionar a solução como parte da resposta, caso contrário, se o link desaparecer, a resposta se tornará inútil. Você pode editar sua própria postagem para adicioná-la.
Tetsujin
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.