O MacOS tem um sistema sofisticado de roteamento de solicitações de DNS ("escopo de consultas") para lidar com casos como VPN, onde você pode querer que solicitações de nome de domínio do seu trabalho entrem em seu túnel VPN para obter respostas de seu trabalho. servidores DNS internos, que podem ter informações mais / diferentes que os servidores DNS externos do seu trabalho.
Para ver todos os servidores DNS que o macOS está usando e como o escopo da consulta está configurado, use:
scutil --dns
Para consultar o DNS do mesmo modo que o macOS, use:
dns-sd -G v4v6 example.com
… ou…
dns-sd -q example.com 255 255
Veja as man pages de scutil(8)
e dns-sd(1)
para mais informações.
Ferramentas de solução de problemas de DNS, como nslookup(1)
, dig(1)
e host(1)
, contêm seu próprio código de resolvedor de DNS e não fazem uso das APIs de consulta DNS do sistema para não obter o comportamento do sistema. Se você não especificar qual servidor DNS usar, provavelmente usará apenas um dos listados em /etc/resolv.conf
, que é gerado automaticamente e contém apenas os servidores DNS padrão para consultas sem escopo.
As tradicionais ferramentas de linha de comando Unix que não são específicas do DNS, como ping(8)
, provavelmente chamam as tradicionais gethostbyname(3)
APIs, que, no macOS, usam os comportamentos de resolução de DNS do sistema.
Para ver o que seu servidor DHCP disse ao seu Mac para usar, veja a linha domain_name_server
na saída de:
ipconfig getpacket en0
(substitua en0 pelo nome correto da interface no estilo BSD como você veria em ifconfig
)
Por favor, note que tenho certeza que os RFCs de DNS não exigem implementações de DNS para considerar a lista de servidores a serem classificados de preferência. Embora seja comum que as implementações de DNS as tratem dessa maneira, provavelmente não é aconselhável confiar em todas as implementações para implementar as coisas dessa maneira, se não estiverem especificadas nos padrões relevantes.
Ah, observe também que seu Mac também pode estar recebendo listas de servidores DNS de anúncios de roteador IPv6 ou DHCP6, se eles estiverem ativos em sua rede. E, claro, configurações de VPN, perfis de configuração instalados, Open Directory, Active Directory, etc., se qualquer uma dessas coisas estiver em uso no seu ambiente.