Você está sendo controlado por dicas de raiz. Este é um truque para solucionar problemas, e depende da compreensão de que a consulta . IN NS
enviada no início de um rastreio não define o sinalizador RD
(recursão desejada) no pacote.
Quando o servidor DNS da Microsoft recebe uma solicitação não recursiva para os servidores de nomes raiz, é possível que eles retornem as dicas de raiz configuradas. Contanto que você não adicione o sinalizador RD
à solicitação, o servidor continuará feliz em retornar a mesma resposta com um TTL fixo durante todo o dia.
$ dig @192.0.2.11 +norecurse . NS
; <<>> DiG 9.8.2 <<>> @192.0.2.11 +norecurse . NS
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12586
;; flags: qr ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 2
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 3600 IN NS dns2.ad.example.com.
. 3600 IN NS dns1.ad.example.com.
;; ADDITIONAL SECTION:
dns2.ad.example.com. 3600 IN A 192.0.2.228
dns1.ad.example.com. 3600 IN A 192.0.2.229
É aí que a maioria dos esforços de resolução de problemas se desintegra, porque a suposição simples de saltar para é que dig @whatever . NS
reproduzirá o problema, o que na verdade o mascara completamente. Quando o servidor obtém uma solicitação de servidores de nomes raiz com o conjunto de sinalizadores RD
, ele acessa e obtém uma cópia dos servidores de nomes raiz real . NS sem a bandeira RD
magicamente começará a funcionar como esperado. Isso deixa dig +trace
feliz novamente, e todos podem voltar a coçar suas cabeças até que o problema reapareça.
Suas opções são negociar uma configuração diferente com seus administradores de domínio ou solucionar o problema. Contanto que as dicas de raiz envenenadas sejam boas o suficiente na maioria das circunstâncias (e você está ciente das circunstâncias em que elas não estão: visões conflitantes, etc.), isso não é um grande inconveniente.
Algumas soluções alternativas sem alterar as dicas de raiz são:
- Execute seus rastreamentos em uma máquina que tenha um conjunto de resolvedores padrão menos louco.
- Inicie seu rastreio a partir de um servidor de nomes que retorne servidores de nomes raiz para a Internet em resposta a
. NS
. Você também pode hardwire este nameserver em${HOME}/.digrc
, mas isso pode confundir os outros em uma conta compartilhada ou ser esquecido por você em algum momento. %código% - Proponha as dicas de raiz para você mesmo antes de executar o rastreamento.
dig @somethingelse +trace example.com
dig . NS