Comment puis-je voir la durée de vie (TTL) d'un enregistrement DNS?

117

Je voudrais voir la valeur de durée de vie (TTL) pour un enregistrement CNAME.

J'ai accès à dig (sur Apple Mac OS X), ce qui me donne une réponse comme celle-ci:

% dig host.example.gov
<*SNIP*>
;; ANSWER SECTION:
host.example.gov.       43200   IN  CNAME   host1.example.gov.
host1.example.gov.      43200   IN  A       192.168.16.10

La valeur '43200' est-elle la durée de vie de cet enregistrement DNS?

Stefan Lasiewski
la source

Réponses:

142

Oui, le nombre correspond au nombre de secondes restant jusqu'à l'expiration de cet enregistrement (à condition que nous n'interrogions pas le serveur de noms faisant autorité). De toute évidence, avec un CNAME, il existe un niveau de redirection; la durée de vie (TTL) pour l'enregistrement A vers laquelle il pointe dans ce cas peut également être importante.

Si vous attendez quelques secondes et lancez à nouveau dig sur votre serveur de noms local, vous devriez voir que le nombre de TTL diminue du nombre de secondes que vous avez attendu (environ). Lorsqu'il atteint 0, il sera actualisé ou si votre serveur de noms actualise la zone pour une raison quelconque.

Comme mentionné ci-dessus, il existe une différence entre dig exécuté sur un serveur de noms avec une entrée en cache et le serveur de noms faisant autorité pour cette entrée.

(Dans les exemples que j'utilise ci-dessous, j'utilise les drapeaux +noauthority +noquestion& +nostatspour garder le teck de sortie).

Notez la différence entre les requêtes suivantes:

$ dig +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net.

; <<>> DiG 9.7.0-P1 <<>> +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50066
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; ANSWER SECTION:
stackoverflow.com.  432000  IN  A   69.59.196.211

Dans la requête ci-dessus, nous interrogeons donc un serveur de noms faisant autorité pour stackoverflow.com. Si vous remarquez la flagssection, portez une attention particulière au drapeau aa qui indique qu'il s'agit d'une réponse faisant autorité (c'est-à-dire non mise en cache).

$ dig +noauthority +noquestion +noadditional +nostats stackoverflow.com 

; <<>> DiG 9.7.0-P1 <<>> +noauthority +noquestion +noadditional +nostats stackoverflow.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43514
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; ANSWER SECTION:
stackoverflow.com.  246696  IN  A   69.59.196.211

Dans la requête ci-dessus, nous n'avons pas d' indicateur aa , et la durée de vie continue de diminuer à mesure que nous interrogeons et interrogions. C'est essentiellement le compteur dont je parlais précédemment.

Philip Reynolds
la source
49

Si vous êtes bloqué sur une fenêtre et n’avez accès qu’à nslookup:

nslookup -qa=A -debug host.example.com authoritiative-dns-host-here.com
M Sleman
la source
15

Is the value '43200' the TTL for this DNS record?

Oui - tel que rapporté par le serveur qui a répondu à votre requête (si vous demandez à un serveur de mise en cache, il restera le temps restant dans son cache).

Pour voir la durée de vie définie sur l'enregistrement actuel, interrogez le serveur de noms faisant autorité ( dig @some.dns.server host.example.gov- Les serveurs DNS faisant autorité seront répertoriés dans la section Autorité de la sortie numérique)

Vérification rapide pour voir si vous demandez à l'autorité de sécurité faisant autorité: Si vous exécutez à dignouveau et que la durée de vie change, vous rencontrez probablement un cache. Si cela ne change pas, vous demandez probablement au serveur faisant autorité (ou à un serveur qui a cassé la mise en cache).

voretaq7
la source
1
si ttl ne change pas, il peut s'agir simplement d'un serveur qui se considère comme faisant autorité: le propriétaire du domaine peut avoir changé de serveur DNS sans supprimer l'ancien système ... avait ce problème le mois dernier.
Jasen
2
@Jasen Oui, c'est tout à fait possible (Cela indique aussi quelque chose d'important: l'administrateur du DNS achètera des boissons à la prochaine sortie de l'entreprise pour avoir gâché la migration!)
voretaq7
7

Je ne pouvais pas voir les serveurs faisant autorité dans la sortie dig par défaut, mais ce qui suit

dig +nssearch host.example.com

les a retournés, qui pourraient ensuite être utilisés comme décrit par voretaq7 pour obtenir la valeur de durée de vie réelle de l’enregistrement.

Mise à jour: gardé oublié comment faire cela et avoir à revenir, donc écrit un petit script pour aller chercher le serveur de noms faisant autorité puis creuser en utilisant

#!/bin/bash

show_help(){
        echo Usage $0 domain
}

if [ -z "$1" ]; then
        show_help
        exit 1
fi

DOMAIN=$1
APEX_DOMAIN=`echo $DOMAIN | sed 's/\(.*\.\)\([^.]*\.[^.]*\)/\2/'`
FIRST_AUTHORITATIVE_NS=$(dig +nssearch $APEX_DOMAIN | awk '$1=="SOA"{sub(".$","",$2);print $2;exit;}')

echo
echo Using authoritative nameserver $FIRST_AUTHORITATIVE_NS

dig @$FIRST_AUTHORITATIVE_NS $@
Adam
la source