Estou lendo o manual do Cloudflare sobre como a resolução de nomes DNS funciona e cheguei ao termo de servidor de nomes TLD. Ele deve ser retornado por uma consulta de servidor de nomes raiz. Tentei reproduzir um processo feito por um resolvedor recursivo para um domínio aleatório (digamos pinpon.com
) manualmente. Aqui estão os passos que acabei seguindo:
Solicitando quaisquer servidores raiz (digamos a.root-servers.net
, 198.41.0.4) da lista IANA :
Solicitando qualquer servidor TLD (digamos l.gtld-servers.net
, 192.41.162.30) por seu endereço de Registros adicionais :
Agora tenho servidores DNS autoritativos para o nome solicitado, que posso usar para resolver o nome real.
PERGUNTA : É sempre confiável contar com Additional records
endereços ip/ipv6 para um próximo servidor DNS consultar? Ou em geral é necessário resolver um nome retornado pelo servidor root/tld da Authority RR
seção?
Os registros A/AAAA adicionais serão retornados quando o servidor de resposta já tiver uma cópia desses registros, como quando os servidores de nomes de um domínio estiverem sob esse domínio (nesse caso, os endereços serão copiados manualmente como "registros de colagem").
Por exemplo, como os servidores de nomes para
net.
estão sob onet.
domínio, foi necessário que os respectivos registros A/AAAA fossem copiados da zona filha para a.
zona (raiz) como registros de colagem, e eles devem ser retornados na seção adicional se você consultarexample.net.
e obter uma referência paranet.
, evitando assim um loop "catch-22".E como esses registros A/AAAA agora fazem parte da zona raiz , os servidores de nomes raiz também poderão retorná-los para qualquer outra resposta ou referência que faça referência a esses servidores de nomes TLD – como no seu exemplo – embora não seja mais estritamente necessário que eles façam isso, já que no seu exemplo não há ciclo.
Um RFC 9471 publicado recentemente esclarece que o servidor de nomes "DEVE" retornar registros de colagem no primeiro caso, mas somente "DEVERIA" no último caso (como no seu exemplo).
Mas se o servidor de nomes não tiver os dados, então ele não fará mais nenhuma consulta em seu nome, e você será obrigado a resolver os endereços do servidor de nomes sozinho. Digamos que um domínio sob o TLD A usa servidores de nomes que estão sob o TLD B – como
google.fr
usingnsX.google.com
– então os servidores de nomes autoritativos para o TLD A geralmente não terão nenhum registro de colagem e, portanto, a seção adicional estará vazia.Resumindo, você pode confiar que os registros adicionais estarão presentes quando forem necessários para quebrar o ciclo de dependência (como example.com → ns.example.com), mas nem sempre pode confiar que eles estarão presentes em outros casos.
(Não que haja necessidade de depender da presença deles – afinal, se você estiver consultando os servidores autoritativos, estará fazendo o trabalho de um resolvedor e deverá ser capaz de fazer mais algumas consultas, enquanto os próprios servidores autoritativos não são resolvedores e não farão o trabalho para você.)