Delegação e servidores autoritativos
O DNS é uma árvore de zonas: cada pai diz, em registros NS, qual servidor responde pela zona filha, e só esse dá resposta autoritativa (aa).
O DNS é uma árvore. A raiz (.) sabe quem cuida de .org; os servidores de .org sabem quem cuida de exemplo.org; e exemplo.org pode delegar um pedaço, como lab.exemplo.org, a outro servidor. Cada pedaço com dono próprio é uma zona, e quem guarda os dados dela é o servidor autoritativo.
A delegação fica no pai, em registros NS:
$ dig @ns1.exemplo.org lab.exemplo.org NS +norec
;; AUTHORITY SECTION:
lab.exemplo.org. 300 IN NS ns.lab.exemplo.org.
;; ADDITIONAL SECTION:
ns.lab.exemplo.org. 600 IN AAAA 2001:db8::53
O pai não responde pela zona filha: ele aponta para quem responde e, quando conhece, manda junto o endereço desse servidor na seção ADDITIONAL.
Recursivo ou autoritativo. O computador comum pergunta a um resolvedor recursivo (o da rede, ou públicos como 1.1.1.1 e 8.8.8.8), que percorre a árvore e guarda as respostas em cache. A resposta dele não traz o bit aa. Quem responde com flags: qr aa é o próprio autoritativo da zona: o aa (Authoritative Answer) quer dizer "eu sou a fonte desta informação".
Comandos úteis:
dig nome NS +tracerefaz o caminho desde a raiz e mostra cada delegação;dig @servidor nome tipo +norecpergunta a um servidor só, sem pedir que ele vá buscar em outro lugar.
Delegação manca (lame delegation): o pai aponta para um servidor que não responde pela zona (ele devolve REFUSED, ou nem responde). O resolvedor então devolve SERVFAIL. Para ver para onde a zona foi delegada, pergunte direto aos servidores do pai.
Perguntas sobre o próprio servidor. Além da classe IN (internet), muitos servidores respondem na classe CH (CHAOS) a nomes que descrevem o próprio programa: dig @servidor version.bind TXT CH costuma devolver o nome e a versão do software, e hostname.bind ou id.server, o nome da máquina. Administradores cuidadosos escondem ou trocam essas respostas, porque a versão exata entrega as falhas conhecidas daquela versão.