Qu'est-ce qui déclenche l'utilisation du temps négatif pour vivre la valeur d'enregistrement DNS SOA?

8

Je lis le didacticiel DNS suivant et il contient cet exemple:

domain.com.  IN SOA ns1.domain.com. admin.domain.com. (
                                        12083   ; serial number
                                        3h      ; refresh interval
                                        30m     ; retry interval
                                        3w      ; expiry period
                                        1h      ; negative TTL
)

La description de la negative TTLvaleur dit ceci:

1h: il s'agit de la durée pendant laquelle le serveur de noms mettra en cache une erreur de nom s'il ne trouve pas le nom demandé dans ce fichier.

Quelles sont les conditions qui pourraient déclencher le serveur pour mettre en cache une erreur de nom comme celle-ci? Un exemple serait vraiment utile.

Ole
la source

Réponses:

11

L'intervalle de mise en cache négatif dans le SOAentre en jeu lorsqu'un serveur faisant autorité a indiqué que l'enregistrement demandé n'existait pas. Les cas spécifiques sont:

  • Répond avec un code de réponse de NXDOMAIN.
  • Répond avec un NODATAétat synthétique, mais ne se forme que lorsqu'un SOAenregistrement est présent. ( NOERRORrcode, 0 réponses, 1 SOAenregistrement dans la section autorité + NSenregistrements optionnels )

Il est courant que le logiciel serveur applique un maximum configuré localement sur cette valeur, donc même si vous avez un TTL négatif de 86400la non-existence ne sera pas nécessairement mis en cache aussi longtemps par les serveurs récursifs distants.

Les cas sont couverts par la section RFC 2308 si vous souhaitez en savoir plus. Lisez la section 2 comme amorce, puis 5-6.

Andrew B
la source
IIUC si je demande "not.available.example.com" au serveur faisant autorité, il est mis en cache pour la durée de vie négative?
Ole
Correct. Les serveurs récursifs complets mettront en cache de manière fiable la non-existence, mais le comportement des résolveurs de stub (tels que les bibliothèques de résolveurs de système d'exploitation) variera. Windows le fait, par exemple. Vous trouverez "le nom n'existe pas". dans la sortie de ipconfig /displaydns, ce qui représente NXDOMAIN. Vous trouverez également des instances de «Aucun enregistrement de type X» dans cette sortie, ce qui correspond à NODATA. La plupart des systèmes UNIX ne le font pas , car ils ne sont pas mis en cache du tout sans configuration supplémentaire. ( nscdavec mise en cache activée, serveur récursif local et utilisation de 127.0.0.1 pour les recherches DNS, etc.)
Andrew B
Donc, si j'imagine le but correctement, est-ce pour pouvoir vérifier que "not.available.example.com" n'était vraiment pas disponible selon le serveur récursif complet? En d'autres termes, si je n'obtiens pas d'adresse IP, je peux interroger le serveur sur quelque chose comme un point de terminaison / displaydns, et le résultat devrait contenir la confirmation que l'adresse n'existe pas?
Ole
ipconfig /displaydnsexiste pour vous indiquer le contenu du cache du résolveur de stub local. Ni plus ni moins. Ce que les administrateurs pourraient vouloir faire avec ces informations est ouvert.
Andrew B
@Ole Le but est d'empêcher les requêtes répétées pour le nom, une fois que le serveur a déjà dit au résolveur qu'il n'existe pas. Comme toute autre mise en cache.
Barmar