CNAME y el registro A tienen TTL diferentes. ¿Cuál será almacenado en caché?

16

Si a CNAMEtiene un TTL de 1 hora que apunta a un Aregistro con un TTL de 1 minuto, ¿alguien que busque esto CNAMEtendrá el resultado completo en caché durante 1 hora, o tendrá que buscar el registro A cada 1 minuto?

Sean
fuente

Respuestas:

5

Puede ver que el CNAME y el registro posterior tienen TTL diferentes al usar 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

Para mostrar que obtiene tanto el CNAME como lo que apunta, se devuelve en una sola solicitud a un servidor recursivo.

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
fuente
3
¿Responde esto la pregunta? Estoy un poco confundido.
Simon East
19

El CNAME debe almacenarse en caché durante una hora (el valor de alias), pero cuando se busca la A correspondiente, solo se almacenará en caché durante un total de 1 minuto. Estás hablando de dos registros independientes que se manejan por separado.

McJeff
fuente
+1 - Spot on. Habrá dos viajes al servidor DNS, uno para el CNAMEy otro para el A, y se almacenarán en la memoria caché de forma apropiada
Mark Henderson
3
@Farseeker, eso no es del todo cierto. Normalmente, el servidor DNS recursivo devolverá tanto el CNAME como los resultados de la búsqueda del CNAME.
Zoredache
Bueno, eso es cojo. Esperaba que, dado que el CNAME se almacenó en caché durante una hora, cada solicitud (de una persona) para ese dominio se almacenaría en caché durante una hora, incluso si el registro A al que apunta es de solo 1 minuto. Debido a que su computadora está almacenando en caché el resultado durante una hora. Simplemente parece extraño que se comportara de esta manera. ¿Estás 100% seguro?
Sean
1
Si bien los alias se pueden empaquetar en la misma respuesta DNS, se almacenan en caché de forma independiente. Considere las implicaciones si ese no fuera el caso. El administrador actualiza un registro y espera que entre en vigencia de inmediato (quizás para una migración), y se ven obligados a esperar la duración del CNAME TTL. Dicho esto, PUEDE ser posible anular eso con cierto software NS de almacenamiento en caché y simplemente configurar su propio TTL en toda su caché.
McJeff
8

Al usar los servidores DNS públicos de Google, la caducidad del registro A también provoca una consulta del registro CNAME, incluso si el CNAME tiene un TTL más largo.

Lo experimentamos dolorosamente porque el proveedor de DNS nos cobró por las consultas de DNS. El CNAME alojado por el proveedor de DNS tuvo un TTL de varios días. El TTL del registro A se alojó en Windows Azure con un TTL de 10 segundos. El proveedor de DNS nos cobró por 7,5 millones de consultas.

Alex
fuente