dig obtém o resultado correto do servidor DNS, mas o nome ainda não consegue resolver

dig obtém o resultado correto do servidor DNS, mas o nome ainda não consegue resolver

Sob quais condições ocorreria o seguinte? De uma determinada máquina OSX em uma rede interna:

$~ cat /etc/resolv.conf
nameserver 10.102.120.7
nameserver 10.102.120.2

Da mesma máquina:

$~ dig @10.102.120.7 in.local
<snip> ...
;; QUESTION SECTION:
;in.local.                      IN      A

;; ANSWER SECTION:
in.local.               43200   IN      A       10.102.123.30
<snip> ...

E ainda assim, esta estação de trabalho não pode executar ping in.local, nem carregar páginas hospedadas pelo Apache naquela máquina. 10.102.123.30 está definitivamente ativo (duas máquinas OSX que eu conheço não conseguem resolver in.local - mas outras máquinas na rede podem). Eu também verifiquei o /etc/hosts para ver se algo poderia interferir... Não tenho certeza do que mais verificar...

Responder1

O .localtld é resolvido primeiro no MacOS X pelo Multicast DNS Bonjour/Rendezvous. Isso significa que se você estiver tentando usar um servidor DNS com o .localtld, o problema não será resolvido usando o servidor DNS.

Algumas redes privadas também usam domínios ".local" para hosts registrados em seu servidor DNS interno, mesmo que não seja um domínio de nível superior válido na Internet pública. Se o seu Mac estiver conectado a essa rede, você pode procurar nomes de host que terminam em ".local" usando Unicast DNS para se comunicar com um servidor DNS, da mesma forma que procura nomes de host como "www .apple.com" na Internet.

Ver:http://support.apple.com/kb/HT3473 e:http://support.apple.com/kb/TA20999

Responder2

O OS X possui um cache DNS no nível do sistema operacional que pode ser necessário liberar - como o nscd no solaris/linux/bsd.

Experimente dscacheutil -flushcache(no Leopard) ou lookupd -flushcache(no 10.5.1 e anteriores).

Responder3

Você acabou de descobrir o porquêusar .LOCAL é uma má ideia.

Responder4

A única coisa que consigo pensar é que você não está usando DNS para serviço de nomes ou o nome está armazenado em cache.

Estou mais familiarizado com o Linux, mas você pode estar procurando o arquivo nsswitch.conf (ou equivalente) no /etc/equivalente para OSX ou a configuração (nscd.conf) ou estado do daemon de cache (nscd no Linux).

nsswitch.conf controla como os nomes são resolvidos. DNS é apenas um mecanismo. Outros incluem arquivos (/etc/host), LDAP e (eu acho) NIS.

nscd é um cache de nomes que ajuda a resolver nomes mais rapidamente quando você recebe solicitações repetidas para o mesmo nome (por exemplo, você carrega 300 páginas de um servidor web), armazenando em cache a resposta por um período de tempo apropriado (por exemplo, 43.200 segundos a partir do seu exemplo de saída dig)

informação relacionada