Pular para o conteúdo
Todos os conceitos

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".

zonas e quem responde por elas .(raiz) servidores da raiz NS org. servidores de .org NS exemplo.org. ns1.exemplo.org NS lab.exemplo.org. ns.lab.exemplo.org Resolvedor recursivo 1 aponta a zona filha 2 aponta a zona filha 3 aponta a zona filha 4 responde com aa
Cada zona aponta, com registros NS, para quem responde pela zona filha; o resolvedor desce a árvore de indicação em indicação até o autoritativo de lab.exemplo.org, o único que responde com aa.

Comandos úteis:

  • dig nome NS +trace refaz o caminho desde a raiz e mostra cada delegação;
  • dig @servidor nome tipo +norec pergunta 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.

Aparece nestes desafios