CNAME과 A 레코드의 TTL이 다릅니다. 어느 것이 캐시됩니까?


16

A는 경우 CNAME1 시간 TTL을 가지고 있음을 가리키는 A이가 보이는 1 분 TTL, 의지의 사람과 기록을 CNAME1 시간 동안 캐시 된 전체 결과를 가지고, 또는이 A 레코드마다 1 분 조회하는 데 계속됩니다 것인가?

답변:


5

dig.를 사용하여 CNAME 및 후속 레코드에 다른 TTL이 있음을 알 수 있습니다.

 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

CNAME과 그것이 가리키는 것을 모두 얻는다는 것을 보여주기 위해 단일 요청으로 재귀 서버에 반환됩니다.

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  E..GNX..@.N.....
        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    ..&...)........

3
이 질문에 대답합니까? 조금 혼란 스러워요.
Simon East

19

CNAME은 한 시간 (별칭 값) 동안 캐시해야하지만 해당 A를 조회하면 총 1 분 동안 만 캐시됩니다. 별도로 처리되는 두 개의 독립 레코드에 대해 이야기하고 있습니다.


+1-켜짐. 이 DNS 서버에 두 개의 여행의 하나가 될 것입니다 CNAME그리고 하나 A, 그들은 적절하게 캐시됩니다
마크 헨더슨

3
@Farseeker, 그것은 전부 사실이 아닙니다. 일반적으로 재귀 DNS 서버는 CNAME과 CNAME 조회 결과를 모두 반환합니다.
Zoredache

글쎄요. CNAME이 1 시간 동안 캐시되었으므로 해당 도메인에 대한 모든 요청 (한 사람의 요청)이 1 시간 동안 캐시되기를 바랐습니다. A 레코드가 1 분만 있더라도 말입니다. 그들의 컴퓨터가 1 시간 동안 결과를 캐싱하기 때문입니다. 이런 식으로 행동하는 것은 이상하게 보입니다. 100 % 확실합니까?
Sean

1
별칭은 동일한 DNS 응답으로 압축 될 수 있지만 독립적으로 캐시됩니다. 그렇지 않은 경우의 의미를 고려하십시오. 관리자는 레코드를 업데이트하고 레코드가 즉시 적용 (아마도 마이그레이션) 될 것으로 예상하고 CNAME TTL 기간 동안 기다려야합니다. 즉, 특정 캐싱 NS 소프트웨어로이를 재정의하고 전체 캐시에 자체 TTL을 설정하는 것이 가능할 수 있습니다.
McJeff

8

Google의 퍼블릭 DNS 서버를 사용하면 CNAME에 TTL이 더 길더라도 A 레코드가 만료되면 CNAME 레코드도 쿼리됩니다.

DNS 공급자가 DNS 쿼리에 대해 요금을 청구했기 때문에 어려움을 겪었습니다. DNS 공급자가 호스팅 한 CNAME의 TTL은 며칠입니다. A 레코드의 TTL은 10 초의 TTL로 Windows Azure에서 호스팅되었습니다. DNS 제공 업체는 750 만 건의 쿼리 비용을 청구했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.