Registro raiz do DNS codificado em seguida, por que ele tem ttl?

8

Como hospedo um servidor de nomes recursivo localmente, não preciso do meu provedor de serviços ou de outro servidor DNS público para a resolução de nomes. Embora os endereços IP do servidor de nomes raiz sejam codificados no arquivo de configuração (no /etc/bind/db.rootarquivo Bind ), quando executo vários nslookupcomandos consecutivos para o servidor de nomes raiz ., o campo TTL ainda diminui.

Por que o TTL diminui quando é codificado no arquivo de configuração?
E por que um TTL no nível da raiz seria necessário em primeiro lugar quando é codificado?

user2632528
fonte

Respostas:

14

Normalmente, você configuraria explicitamente os servidores raiz DNS semelhantes ao trecho de código abaixo:

zone "." {
  type hint;
  file "/etc/bind/db.root";
};

Onde você observa que o tipo de zona não é o comum masternem slave um tipo de zona especial chamado hint.

Quando o servidor de nomes é iniciado, ele usa apenas as dicas de raiz para encontrar um servidor de nomes raiz responsável e, em seguida, obtém a lista atual de servidores de nomes raiz. Esses são os servidores raiz que serão realmente usados ​​durante a operação.

Como esses são armazenados em cache, eles precisarão de um TTL e, como você observou: esse TTL diminuirá como qualquer outro registro DNS em cache.

Se nenhuma zona de dica for especificada para a classe IN, o servidor utilizará um conjunto padrão compilado de dicas de servidores raiz. Fonte: Manual de Referência do Administrador de Ligação .

Como Brian explicou em sua resposta, a zona raiz muda e, desde que pelo menos um servidor de nomes permaneça válido, a zona de dica permite essas alterações nos servidores de nomes raiz sem exigir que todos os servidores de nomes existentes atualizem seus arquivos de configuração estáticos.

HBruijn
fonte
4

Eles não são codificados permanentemente - o arquivo da zona raiz muda com o tempo, portanto, as entradas passadas para os resolvedores não podem ser definidas para durar para sempre.

Por exemplo, a atual foi atualizada pela última vez em 2014, como mostra o início do arquivo aqui :

;       This file holds the information on root name servers needed to
;       initialize cache of Internet domain name servers
;       (e.g. reference this file in the "cache  .  <file>"
;       configuration file of BIND domain name servers).
;
;       This file is made available by InterNIC 
;       under anonymous FTP as
;           file                /domain/named.cache
;           on server           FTP.INTERNIC.NET
;       -OR-                    RS.INTERNIC.NET
;
;       last update:    November 05, 2014
;       related version of root zone:   2014110501
;
; formerly NS.INTERNIC.NET
;
.                        3600000      NS    A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
A.ROOT-SERVERS.NET.      3600000      AAAA  2001:503:ba3e::2:30
Brian
fonte
2

O db.root é usado apenas como parte do processo de inicialização do servidor DNS para encontrar os verdadeiros servidores raiz atuais. Eles são atualizados de acordo com o TTL.

Tom Hallam
fonte