Pesquisa de nome DNS (era SSH) Não funciona após a atualização do Snow Leopard

14

Eu acho que começou com a atualização do Snow Leopard. Limpei o diretório .ssh, ainda tendo o problema.

~: uname -a
Darwin california-example-com.local 10.0.0 Darwin Kernel Version 10.0.0: Fri Jul 31 22:47:34 PDT 2009; root:xnu-1456.1.25~1/RELEASE_I386 i386

~: ssh -V
OpenSSH_5.2p1, OpenSSL 0.9.8k 25 Mar 2009

~: ls -l ~/.ssh

~: nslookup nevada
Server:     10.94.62.3
Address:    10.94.62.3#53

Name:   nevada.example.com
Address: 10.94.62.3

~: ssh nevada
ssh: Could not resolve hostname nevada: nodename nor servname provided, or not known
    
por Peter Cardona 12.09.2009 / 21:56

10 respostas

16

Eu encontrei exatamente o mesmo problema e encontrei um tópico sobre um Mac mini ter problemas de DNS nas discussões da Apple é extremamente útil.

O cerne do problema: mDNSResponder parece ocasionalmente mudar a ordem dos servidores DNS que ele consulta e, portanto, se ele consultar os servidores DNS do seu provedor primeiro, ele não obterá um registro adequado (ou se você estiver usando o DNS dividido vai pegar seu IP público).

A melhor solução para isso é garantir (como você fez) que apenas os servidores DNS necessários estejam listados nas configurações de DNS. Isso pode exigir a remoção dos servidores DNS do ISP do seu DHCP (como eu tive que fazer também - todas as solicitações são encaminhadas através do servidor DNS local).

O motivo pelo qual utilitários como dig e nslookup serão bem-sucedidos normalmente estão usando o BIND e /etc/resolv.conf diretamente ao contrário do restante do sistema operacional.

Para referência no Snow Leopard, o cache do DNS agora é armazenado pelo mDNSResponder e para limpá-lo, é necessário reiniciar o processo usando sudo killall -HUP mDNSResponder . Você pode obter mais informações (log, dump internal state, etc.) usando diferentes flags para o comando killall .

"sudo killall -USR1 mDNSResponder" to enable operation logging.
"sudo killall -USR2 mDNSResponder" to enable packet logging.
"sudo killall -HUP mDNSResponder" to clear the DNS cache.
"sudo killall -INFO mDNSResponder" to dump mDNSRepsonder's internal state.

Fonte: Snoop Dogg nesse mesmo tópico.

    
por 16.09.2009 / 05:57
10

tivemos problemas como este:

host example.com     <<< WORKED
ping example.com     <<< FAILED

Resolvido com algo assim:

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

Os aplicativos no Mac OS X não usam o mesmo mecanismo para o DNS como "host / dig / nslookup".

O uso de "host / dig / nslookup" foi útil para determinar que isso não era um problema de rede. Foi um problema com o sistema local resolvido com os comandos acima.

    
por 04.05.2011 / 19:17
2

Eu experimentei o mesmo problema… E, embora a reinicialização do mDNSResponder pareça "funcionar", reiniciá-lo algumas vezes a cada hora é uma droga.

Então, por enquanto, "resolvi" o problema executando dnsmasq localmente. Para fazer isso:

  • Construir o dnsmasq (faça o download do tgz e do make ou brew install dnsmasq )
  • Coloque isso em um arquivo dnsmasq.conf :
resolv-file=resolv.conf
user=nobody
group=nobody
interface=lo0
cache-size=1024
  • Coloque isso em um arquivo resolv.conf que esteja no mesmo diretório que o arquivo dnsmasq.conf (nb: não /etc/resolv.conf ):
nameserver 8.8.8.8
nameserver 4.2.2.1
nameserver 4.2.2.2
  • Execute dnsmasq com sudo dnsmasq --no-daemon --log-queries -C dnsmasq.conf . A saída deve ser algo como:
...
dnsmasq: reading resolv.conf
dnsmasq: using nameserver 4.2.2.1#53
dnsmasq: using nameserver 4.2.2.2#53
dnsmasq: using nameserver 8.8.8.8#53
dnsmasq: read /etc/hosts - 6 addresses
  • Abra as Preferências de rede e verifique se 127.0.0.1 é o único servidor DNS (preferências de rede - > avançado - > DNS - > adicionar 127.0.0.1)

As coisas devem começar a funcionar bem novamente.

Quando as coisas estiverem funcionando, você poderá executar dnsmasq sem as opções --no-daemon e --log-queries , por isso começará em segundo plano e não será necessário manter uma janela do Terminal aberta.

    
por 04.09.2012 / 23:19
1

Notei que eu tinha 10.94.62.3 na lista de servidores DNS (painel de prefs de rede) seguido por 2 do meu provedor. Eu removi os outros 2, forçando todas as pesquisas de nomes através de 10.94.62.3 para este local e agora posso resolver nomes na minha rede, bem como fora.

Não sei por que isso funcionou.

    
por 13.09.2009 / 20:29
1

Acho que temos um problema semelhante, como descrevi aqui: link

Acredito que o problema está na configuração searchdomains: ping / ssh tentando usar gethostbyname2() , que falha porque o named não está mais em execução (pelo menos no Lion) e /etc/resolv.conf com o searchdomains configurado é ignorado. /etc/hosts é o último recurso para gethostbyname2() e, assim, o ssh funciona novamente com entradas adequadas em /etc/hosts . Deve ser corrigido pela Apple.

    
por 08.05.2012 / 13:38
0

Já experimentou nevada-example-com.local?

    
por 13.09.2009 / 03:46
0
dscacheutil -flushcache

Esse comando atualiza seu cache DNS.

10.94.62.3 é um servidor DNS em que você confia? Se sim, por que há apenas um? Você deve ter pelo menos dois servidores DNS para se referir para fins de failover. Se esse cair, você é um pato sentado.

    
por 14.09.2009 / 14:00
0

As pesquisas de ordem de DNS parecem funcionar de forma diferente no Snow Leopard. Se você não conseguir pesquisar um domínio, verifique se há algum servidor DNS inválido listado nas preferências da sua rede. Se você estiver usando uma configuração DHCP padrão, não deverá ter nenhum servidor DNS listado. Antes do meu upgrate eu tinha um servidor DNS antigo listado, e isso não afetou nada. Uma vez que eu atualizei, perdi totalmente o dns.

Abra as preferências de rede > Escolha o aeroporto > Avançado Selecione a guia DNS e remova todos os servidores DNS inválidos.

    
por 08.04.2010 / 04:34
0

Você já olhou para o Console? (Aplicativos - > Utilitários - > Console) Você pode achar que mDNSResponder está aparecendo em:  Informações de diagnóstico e uso - > Relatórios de diagnóstico do sistema

Se ele está falhando devido a outro programa que está carregando módulos (como Little Snitch ou Hands Off), você pode vê-lo lá.

    
por 22.06.2011 / 04:43
-1

Eu tive o mesmo problema com o nslookup que resolveu minha caixa do windows, mas ping me deu um "host desconhecido". Eu tentei o que Navdeep sugeriu e fui limpar os servidores de nomes na guia Network Preferences- > Advanced- > DNS. Não me deixaria subtraí-los, eles estavam acinzentados. Eu finalmente acertei o + e eles desapareceram. Cancelei a adição de um novo e apliquei alterações, uma vez que nenhum servidor DNS foi exibido. Ping começou a trabalhar depois disso. O estranho é que o meu servidor DHCP / roteador local foi o primeiro da lista e é o responsável por resolver a caixa do Windows. Deve ser algo estranho com o pedido. O outro nameserver listado, é um NS de trabalho e não seria capaz de resolver o host do Windows. OBRIGADO Navdeep!

    
por 03.03.2011 / 01:06