CNAME und A-Datensatz haben unterschiedliche TTLs. Welches wird zwischengespeichert?

16

Wenn a CNAMEeine TTL von 1 Stunde hat, die auf einen ADatensatz mit einer TTL von 1 Minute verweist , hat jemand, der dies CNAMEnachschaut, das gesamte Ergebnis 1 Stunde lang im Cache, oder muss er den A-Datensatz weiterhin alle 1 Minute nachschlagen?

Sean
quelle

Antworten:

5

Sie können sehen, dass der CNAME und der nachfolgende Datensatz unterschiedliche TTLs haben, indem Sie dig verwenden.

 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

Um zu zeigen, dass Sie sowohl den CNAME als auch das, auf das verwiesen wird, erhalten, wird dieser in einer einzigen Anforderung an einen rekursiven Server zurückgegeben.

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
quelle
3
Beantwortet dies die Frage? Ich bin ein bisschen verwirrt.
Simon East
19

Der CNAME sollte eine Stunde lang zwischengespeichert werden (der Alias-Wert), aber wenn das entsprechende A nachgeschlagen wird, wird es nur insgesamt 1 Minute zwischengespeichert. Sie sprechen von zwei unabhängigen Datensätzen, die separat behandelt werden.

McJeff
quelle
+1 - genau richtig. Es gibt zwei Trips zum DNS-Server, einen für den CNAMEund einen für den A, und sie werden entsprechend zwischengespeichert
Mark Henderson
3
@Farseeker, das ist nicht ganz richtig. Der normalerweise rekursive DNS-Server gibt sowohl den CNAME als auch die Ergebnisse der Suche nach dem CNAME zurück.
Zoredache
Nun, das ist lahm. Ich hatte gehofft, dass, da der CNAME für eine Stunde zwischengespeichert wurde, jede Anforderung (von einer Person) für diese Domain für eine Stunde zwischengespeichert wird - auch wenn der A-Datensatz, auf den er verweist, nur 1 Minute beträgt. Weil ihr Computer das Ergebnis für eine Stunde zwischenspeichert. Es scheint nur seltsam, dass es sich so verhalten würde. Bist du 100% sicher?
Sean
1
Die Aliase können zwar in dieselbe DNS-Antwort gepackt werden, sie werden jedoch unabhängig voneinander zwischengespeichert. Betrachten Sie die Auswirkungen, wenn dies nicht der Fall ist. Administratoraktualisierungen Ein Datensatz und erwartet, dass er sofort wirksam wird (möglicherweise für eine Migration), und sie sind gezwungen, auf die Dauer der CNAME-TTL zu warten. Das heißt, es KANN möglich sein, dies mit einer bestimmten NS-Cache-Software außer Kraft zu setzen und einfach Ihre eigene TTL für den gesamten Cache festzulegen.
McJeff
8

Unter Verwendung der öffentlichen DNS-Server von Google führt der Ablauf des A-Eintrags auch zu einer Abfrage des CNAME-Eintrags, selbst wenn der CNAME eine längere TTL hat.

Wir haben das schmerzlich erlebt, weil der DNS-Anbieter uns DNS-Anfragen in Rechnung gestellt hat. Der vom DNS-Anbieter gehostete CNAME hatte eine TTL von mehreren Tagen. Die TTL des A-Datensatzes wurde unter Windows Azure mit einer TTL von 10 Sekunden gehostet. Der DNS-Anbieter hat uns 7,5 Millionen Anfragen in Rechnung gestellt.

Alex
quelle