Ao resolver FQDNs ou nomes de máquinas para endereços IP em minha rede local (mycompany.internal), posso usar o dig na linha de comando (linux / mac) ou nslookup (windows) para consultar o servidor configurado e obter uma resposta. Mas tentar inserir o FQDN ou mesmo apenas o nome da máquina em um comando ping ou em um navegador da Web resulta em erros de 'Host Desconhecido' ou DNS. Aqui está uma amostra, esta do Mac:
mac:~ atroon$ dig server.mycompany.internal
; <<>> DiG 9.6.0-APPLE-P2 <<>>
server.mycompany.internal ;; global
options: +cmd ;; Got answer: ;;
->>HEADER<<- opcode: QUERY, status: NOERROR, id: 5219 ;; flags: qr aa rd
ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0,
ADDITIONAL: 0
;; QUESTION SECTION:
;server.mycompany.internal. IN A
;; ANSWER SECTION:
server.mycompany.internal. 1200 IN A 172.16.254.36
;; Query time: 0 msec ;; SERVER:
172.16.254.8#53(172.16.254.8) ;; WHEN: Wed Dec 16 11:39:15 2009 ;; MSG SIZE
rcvd: 55
mac:~ atroon$ ping server.mycompany.internal<br>
ping: cannot resolve server.mycompany.internal: Unknown host
Eu não posso, para a vida de mim, descobrir isso. O servidor DNS é uma caixa do SBS 2003 que lida com o AD, algum arquivo / impressão, etc., para uma rede de pequena empresa. Este problema acontece comigo cerca de três vezes por semana, e quando estou conectado à rede local diretamente, o mesmo switch que o servidor mesmo. Eu posso fazer qualquer conexão que eu quiser com endereços IP, eu simplesmente não posso fazer o DNS funcionar. Além disso, ao mesmo tempo que estou passando por isso, outros usuários estão bem, o que me faz pensar que é um problema no meu Mac. Mas que tipo de problema? Como pode cavar enviar uma consulta e obter uma resposta, e ping dizer "host desconhecido"?
Estou postando aqui vs. serverfault porque acho que isso é um problema local, não um problema no servidor ... mas se alguém puder me apontar para o servidor, acho que nós vamos descer a rua um domínio ou dois.
fonte
lookupd
, 10.5 DNS foi armazenado com informações de serviços de diretório, enquanto 10.6 é gerenciado através demDNSResponder
para a maioria dos itens.Respostas:
Dependendo de qual versão do Mac OS X você está usando, a forma como o DNS é tratado pelo sistema mudou.
Essencialmente, existem dois mecanismos de resolução de DNS no Mac OS X. A abordagem padrão do UNIX (
/etc/resolv.conf
) que é usado pordig
e então a abordagem usada pelo resto do sistema.No Mac OS X 10.4 e 10.5, as duas abordagens estavam muito mais ligadas; Um refrescante tendia a refrescar os dois. No entanto, em 10.6 e em muito menor grau 10.5 é possível ter
dig
lhe dá o valor correto enquanto o mecanismo de resolução do sistema ainda tem um valor ruim.Para limpar o cache DNS de cada uma das versões do Mac OS X:
lookupd -flushcache
dscacheutil -flushcache
sudo dscacheutil -flushcache
ousudo killall -HUP mDNSResponder
(O primeiro comando deve executar o segundo comando para você agora, mas nas versões anteriores do 10.6 ele não aparecia)ping
se bem me lembro usa a pesquisa do sistema - tão diferente mecanismo de resolução./etc/resolv.conf
sempre usará os servidores DNS em ordem, enquantomDNSResponder
tenta ser "inteligente", que pode mordê-lo na parte traseira, dependendo da sua configuração.Além disso, você tem vários servidores DNS especificados no seu Mac e / ou via DHCP? O Snow Leopard introduziu um comportamento diferente (bug?) Onde a ordem dos servidores DNS será alterada. Isso atrapalha o DNS dividido (internamente, você usa um IP, mas externamente um DNS diferente), pois às vezes ele pára de perguntar primeiro ao servidor DNS interno antes de solicitar o segundo servidor (externo desta vez) na fila. É supostamente um método para contatar o servidor DNS mais rápido para evitar atrasos relacionados ao DNS. A correção mais fácil anterior a 10.6.3 é servir apenas o servidor DNS interno via DHCP e verificar se as configurações de encaminhamento no servidor DNS estão definidas de acordo.
Agora, a partir de 10.6.3, é possível dizer ao mDNSResponder para sempre usar a ordem correta e não tentar otimizar os tempos de solicitação de DNS. Você pode fazer isso adicionando a chave
StrictUnicastOrdering
e configurando-o como true para o daemon de Launch do mDNSResponder (e recarregue-o conforme necessário).(Fonte: support.apple.com e obrigado a Yar, que colocou isso antes de mim.)
Você pode automatizar isso (um pouco mais rápido e mais fácil que os comandos da Apple) executando os seguintes comandos:
sudo /usr/libexec/PlistBuddy -c "Add :StrictUnicastOrdering bool true" /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
e inverta-o executando:
sudo /usr/libexec/PlistBuddy -c "Delete :StrictUnicastOrdering" com.apple.mDNSResponder.plist
Depois disso, você precisará recarregar a tarefa no launchd para reiniciar o mDNSResponder executando:
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
e depois
sudo launchctl load /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
fonte
Finalmente, uma correção graças a 10.6.3 e um pouco brincando . Basicamente você modifica o
com.apple.mDNSResponder.plist
e reinicie o dnsresponder.Eu posso estar errado, mas acho que as instruções estão fora, e devo dizer
sudo cp
onde eles dizemsudo mv
no inicio.fonte
Olhe o que está em
/etc/resolv.conf
para ver quais servidores de nomes seu Mac está usando. Você também pode adicionar servidores de nomes nas preferências de rede - escolha o adaptador que você está usando, clique no botão "Avançado ..." e, em seguida, clique na guia "DNS".Em um mac, a ferramenta de linha de comando para liberar o cache do DNS é:
Atualizar :
Eu encontrei muitas coisas boas em esta discussão em discussions.apple.com . Por exemplo:
Você pode ver o que foi armazenado em cache executando
sudo killall -INFO mDNSResponder
e depois olhando/var/log/system.log
fonte
A maioria dos aplicativos dependerá do serviço de cliente DNS (bem, eles contam com o sistema operacional que usa o serviço ...) - Eu iria verificar que ainda está em execução. Talvez até reinicie o serviço quando você tiver os problemas.
Você também pode tentar liberar seu cache de DNS, mas esteja ciente de que alguns aplicativos (navegadores da web em particular) armazenarão em cache as entradas de DNS internamente, portanto, talvez seja necessário reiniciá-los também.
Por fim, há uma chance de malware fazer com que as coisas fiquem descontroladas. Muitos malwares sequestram DNS ou determinados hosts. Provavelmente vale a pena verificar isso também.
fonte