Enregistrement racine DNS codé en dur alors pourquoi il a ttl?

8

J'héberge un serveur de noms récursif localement, je n'ai donc pas besoin de mon fournisseur de services ou d'un autre serveur DNS public pour la résolution de noms. Bien que les adresses IP du serveur de noms racine soient codées en dur dans le fichier de configuration (dans le /etc/bind/db.rootfichier de liaison ), lorsque j'exécute plusieurs nslookupcommandes consécutives pour le serveur de noms racine pour ., le champ TTL diminue toujours.

Pourquoi le TTL diminuerait-il, alors qu'il est codé dans le fichier de configuration?
Et pourquoi un TTL au niveau racine serait-il nécessaire en premier lieu quand il est codé?

user2632528
la source

Réponses:

14

En règle générale, vous configurez explicitement les serveurs racine DNS similaires à l'extrait de code ci-dessous:

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

Lorsque vous observez ce type de zone n'est pas le type commun masterni slave un type de zone spécial appelé hint.

Lorsque le serveur de noms démarre, il utilise uniquement les indications de racine pour trouver un serveur de noms de racine répondant et obtiendra alors la liste actuelle des serveurs de noms de racine. Ce sont les serveurs racine qui seront réellement utilisés pendant le fonctionnement.

Comme ceux-ci sont mis en cache, ils auront besoin d'un TTL et comme vous l'avez observé: ce TTL diminuera comme tout autre enregistrement DNS mis en cache.

Si aucune zone d'indication n'est spécifiée pour la classe IN, le serveur utilise un ensemble par défaut d'indicateurs de serveurs racine compilés. Source: Manuel de référence de l'administrateur Bind .

Comme Brian l'a expliqué dans sa réponse, la zone racine change, et tant qu'au moins un serveur de noms reste valide, la zone d'indication permet de telles modifications dans les serveurs de noms racine sans que tous les serveurs de noms existants mettent à jour leurs fichiers de configuration statiques.

HBruijn
la source
4

Ils ne sont pas codés en dur de façon permanente - le fichier de la zone racine change au fil du temps, de sorte que les entrées transmises aux résolveurs ne peuvent pas être définies pour durer éternellement.

Par exemple, l'actuel a été mis à jour pour la dernière fois en 2014 comme le montre le début du fichier ici :

;       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
la source
2

db.root n'est utilisé que dans le cadre du processus de démarrage du serveur DNS pour trouver les vrais serveurs racine actuels. Ceux-ci sont ensuite mis à jour conformément au TTL.

Tom Hallam
la source