CNAME et un enregistrement ont des TTL différents. Lequel sera mis en cache?

16

Si a CNAMEa un TTL d'une heure qui pointe vers un Aenregistrement avec un TTL de 1 minute, est-ce que quelqu'un qui le recherchera CNAMEaura le résultat entier mis en cache pendant 1 heure, ou devra-t-il continuer à chercher l'enregistrement A toutes les 1 minute?

Sean
la source

Réponses:

5

Vous pouvez voir que le CNAME et l'enregistrement suivant ont des TTL différents en utilisant dig ..

 dig docs.nwesd.org

; <<>> DiG 9.5.1-P3 <<>> docs.nwesd.org
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 28244
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 4, ADDITIONAL: 4

;; QUESTION SECTION:
;docs.nwesd.org.                        IN      A

;; ANSWER SECTION:
docs.nwesd.org.         7200    IN      CNAME   ghs.google.com.
ghs.google.com.         16662   IN      CNAME   ghs.l.google.com.
ghs.l.google.com.       195     IN      A       74.125.95.121

;; AUTHORITY SECTION:
google.com.             32196   IN      NS      ns1.google.com.
google.com.             32196   IN      NS      ns4.google.com.
google.com.             32196   IN      NS      ns3.google.com.
google.com.             32196   IN      NS      ns2.google.com.

;; ADDITIONAL SECTION:
ns1.google.com.         32193   IN      A       216.239.32.10
ns2.google.com.         32193   IN      A       216.239.34.10
ns3.google.com.         70187   IN      A       216.239.36.10
ns4.google.com.         242861  IN      A       216.239.38.10

;; Query time: 102 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Wed Mar 17 18:40:05 2010
;; MSG SIZE  rcvd: 232

Pour montrer que vous obtenez à la fois le CNAME et ce à quoi il est renvoyé est renvoyé dans une seule demande à un serveur récursif.

18:40:05.418435 IP 192.168.32.10.24712 > 216.146.36.113.53: UDP, length 43
        0x0000:  4500 0047 4e58 0000 4011 4e98 c0a8 200a  [email protected].....
        0x0010:  d892 2471 6088 0035 0033 aae5 f66c 0100  ..$q`..5.3...l..
        0x0020:  0001 0000 0000 0001 0464 6f63 7305 6e77  .........docs.nw
        0x0030:  6573 6403 6f72 6700 0001 0001 0000 2910  esd.org.......).
        0x0040:  0000 0080 0000 00                        .......
18:40:05.519081 IP 216.146.36.113.53 > 192.168.32.10.24712: UDP, length 243
        0x0000:  4500 010f b93a 0000 3511 eded d892 2471  E....:..5.....$q
        0x0010:  c0a8 200a 0035 6088 00fb 6ceb f66c 8180  .....5`...l..l..
        0x0020:  0001 0003 0004 0005 0464 6f63 7305 6e77  .........docs.nw
        0x0030:  6573 6403 6f72 6700 0001 0001 c00c 0005  esd.org.........
        0x0040:  0001 0000 1c20 0010 0367 6873 0667 6f6f  .........ghs.goo
        0x0050:  676c 6503 636f 6d00 c02c 0005 0001 0000  gle.com..,......
        0x0060:  4116 0008 0367 6873 016c c030 c048 0001  A....ghs.l.0.H..
        0x0070:  0001 0000 00c3 0004 4a7d 5f79 c030 0002  ........J}_y.0..
        0x0080:  0001 0001 11ac 0006 036e 7333 c030 c030  .........ns3.0.0
        0x0090:  0002 0001 0001 11ac 0006 036e 7332 c030  ...........ns2.0
        0x00a0:  c030 0002 0001 0001 11ac 0006 036e 7334  .0...........ns4
        0x00b0:  c030 c030 0002 0001 0001 11ac 0006 036e  .0.0...........n
        0x00c0:  7331 c030 c0a2 0001 0001 0000 7dc1 0004  s1.0........}...
        0x00d0:  d8ef 200a c07e 0001 0001 0000 7dc1 0004  .....~......}...
        0x00e0:  d8ef 220a c06c 0001 0001 0002 0204 0004  .."..l..........
        0x00f0:  d8ef 240a c090 0001 0001 0003 b4ad 0004  ..$.............
        0x0100:  d8ef 260a 0000 2910 0000 0080 0000 00    ..&...)........
Zoredache
la source
3
Est-ce que cela répond à la question? Je suis un peu confus.
Simon East
19

Le CNAME doit mettre en cache pendant une heure (la valeur d'alias), mais lorsque le A correspondant est recherché, il ne mettra en cache que pendant 1 minute au total. Vous parlez de deux enregistrements indépendants qui sont traités séparément.

McJeff
la source
+1 - Spot on. Il y aura deux trajets vers le serveur DNS, un pour le CNAMEet un pour le A, et ils seront correctement mis en cache
Mark Henderson
3
@Farseeker, ce n'est pas tout à fait vrai. Le serveur DNS généralement récursif renverra à la fois le CNAME et les résultats de la recherche du CNAME.
Zoredache
Eh bien, c'est boiteux. J'espérais que, puisque le CNAME était mis en cache pendant une heure, chaque demande (d'une personne) pour ce domaine serait mise en cache pendant une heure - même si l'enregistrement A vers lequel il pointe ne faisait que 1 minute. Parce que leur ordinateur met en cache le résultat pendant une heure. Il semble juste étrange qu'il se comporte de cette façon. Êtes-vous sûr à 100%?
Sean
1
Bien que les alias puissent être regroupés dans la même réponse DNS, ils sont mis en cache indépendamment. Considérez les implications si ce n'était pas le cas. L'administrateur met à jour un enregistrement et s'attend à ce qu'il prenne effet immédiatement (peut-être pour une migration), et il est obligé d'attendre la durée du CNAME TTL. Cela dit, il PEUT être possible de remplacer cela avec certains logiciels NS de mise en cache et de simplement définir votre propre TTL sur l'ensemble de votre cache.
McJeff
8

En utilisant les serveurs DNS publics de Google, l'expiration de l'enregistrement A entraîne également une requête de l'enregistrement CNAME, même si le CNAME a un TTL plus long.

Nous l'avons douloureusement vécu car le fournisseur DNS nous a facturés pour les requêtes DNS. Le CNAME hébergé par le fournisseur DNS avait un TTL de plusieurs jours. Le TTL de l'enregistrement A a été hébergé sur Windows Azure avec un TTL de 10 secondes. Le fournisseur DNS nous a facturé 7,5 millions de requêtes.

Alex
la source