O DNS clássico tinha um limite de 512 bytes para respostas em UDP e nenhum espaço no header (cabeçalho) para opções novas. O (0), definido na 6891, resolve os dois problemas com um pseudo-registro do tipo . O dig mostra esse registro num bloco separado:
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 1232
O nome é pseudo-seção porque o OPT não é um dado real de zona. Ele só existe na mensagem que trafega pela rede, para levar os parâmetros do EDNS; por isso, nunca aparece num arquivo de zona, e você nunca faz uma consulta direta por ele.
O que cada campo significa
version é a versão do EDNS, que na prática é sempre 0. udp é o tamanho da maior resposta UDP que quem envia aceita receber; esse valor é anunciado para que quem responde possa mandar respostas maiores sem precisar recorrer ao TCP. Os resolvers modernos costumam anunciar 1232 bytes, um valor conservador de propósito, escolhido para ficar abaixo do ponto em que a fragmentação IP costuma dar problema. flags traz os bits de flag do EDNS; a que você vai ver é a do, de OK, que é o jeito de o cliente dizer "me mande também os registros DNSSEC".
Abaixo da linha do EDNS, o dig pode mostrar outras opções, como COOKIE (um token leve contra spoofing) ou NSID (um identificador do servidor). Elas são só informativas e variam de um resolver para outro.
Por que isso importa no troubleshooting
É no EDNS que mora a causa de várias falhas confusas. Se uma resposta grande, somada a um tamanho UDP anunciado grande, gera um pacote UDP fragmentado, e um firewall ou um caminho com defeito descarta esse pacote, a consulta parece travar ou falhar, mesmo que o servidor tenha respondido. É exatamente por isso que o tamanho anunciado foi caindo para valores como 1232: respostas menores cabem num pacote só e passam por mais caminhos. Quando aparecer SERVFAIL intermitente em nomes com respostas grandes (muitos endereços ou assinaturas DNSSEC), a linha OPT e o tamanho UDP são o primeiro lugar para olhar, e forçar TCP com +tcp é um jeito rápido de confirmar.
A flag do está ligada diretamente ao DNSSEC: sem ela, o resolver não devolve os registros de assinatura. Então, se você está tentando inspecionar o DNSSEC e não aparece nenhum desses registros, confira se a linha OPT mostra a do ligada.
O tamanho do buffer é uma promessa que a rede pode não cumprir
O registro OPT anuncia o tamanho máximo de resposta UDP que o cliente aceita, normalmente 1232 ou 4096 bytes. Anunciar não é a mesma coisa que receber.
Uma resposta maior que a do caminho é fragmentada, e muitos middleboxes e firewalls descartam fragmentos IP sem nenhum aviso. A consulta sai, o servidor responde, a resposta nunca chega, e o resolver fica esperando um timeout que depois vai pôr na conta do servidor.
É por isso que, tantas vezes, o DNS "lento" não está lento coisa nenhuma. É uma resposta grande falhando em silêncio e um cliente esperando a hora de uma nova tentativa. O sinal é que as consultas pequenas funcionam perfeitamente e os lookups de DNSSEC ou não, porque são essas as respostas que crescem.