ttl = 0인 경우 재귀 DNS 쿼리에서는 어떻게 되나요?

ttl = 0인 경우 재귀 DNS 쿼리에서는 어떻게 되나요?

이름 확인(바인드의 현재 버전)에서 반환 패스에서 재귀 응답이 ttl 0에 도달하면 어떻게 됩니까?

답변1

TTL 값은 캐시된 DNS 항목이 플러시되기 전에 캐시에 남아 있는 시간(보통 초 단위)입니다. 따라서 TTL 값이 0에 도달하면 권한 있는 이름 서버에 다시 쿼리하여 최신 DNS 항목을 가져옵니다.

dig 명령을 사용하여 새로 고쳐진 DNS 항목을 확인할 수 있습니다. 다음은 google.com 도메인을 쿼리하는 dig의 예입니다. 이 도메인은 TTL이 작아서 DNS 항목이 새로 고쳐질 때까지 오래 기다릴 필요가 없기 때문에 선택했습니다.

$ dig google.com

; <<>> DiG 9.8.1-P1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39327
;; flags: qr rd ra; QUERY: 1, ANSWER: 11, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     154 IN  A   74.125.237.33  <== '154 is the  TTL value'
... (ANSWERS TRUNCATED)

;; Query time: 16 msec   <== notice that the query took 16ms to complete
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:04:56 2012
;; MSG SIZE  rcvd: 204

이제 쿼리 시간을 다시 확인해보세요.

$ dig google.com

... (HEADER TRUNCATED)

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     103 IN  A   74.125.237.35  <== TTL value gradually decreases over time
... (ANSWERS TRUNCATED)

;; Query time: 2 msec <== query time is much smaller!
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:05:48 2012
;; MSG SIZE  rcvd: 204

google.com의 로컬 캐시 값이 반환되므로 쿼리 시간이 더 짧아집니다.

이제 TTL 값이 0으로 감소할 때까지 기다리겠습니다.

$ dig google.com @localhost

... (HEADER TRUNCATED)

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     5   IN  A   74.125.237.34
... (ANSWERS TRUNCATED)

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:07:26 2012
;; MSG SIZE  rcvd: 204

거기쯤...

$ dig google.com @localhost

... (HEADER TRUNCATED)

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     1   IN  A   74.125.237.39
... (ANSWERS TRUNCATED)

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:07:30 2012
;; MSG SIZE  rcvd: 204

이제 캐시된 DNS 값이 새로 고쳐지고 TTL 값이 다시 카운트다운되기 시작합니다.

$ dig google.com @localhost

... (HEADER TRUNCATED)

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     291 IN  A   74.125.237.131
... (ANSWERS TRUNCATED)

;; Query time: 16 msec <== Notice the longer Query time again.
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Dec 17 21:07:32 2012
;; MSG SIZE  rcvd: 204

답변2

IP와 DNS TTL(Time-to-Live)을 혼동하고 계십니까?

하나IP 패킷 TTL...

데이터그램의 송신자에 의해 설정되고 목적지까지의 경로에 있는 각 라우터에 의해 감소됩니다. 데이터그램이 대상에 도달하기 전에 TTL 필드가 0에 도달하면 데이터그램이 삭제되고 ICMP 오류 데이터그램(11 - 시간 초과)이 보낸 사람에게 다시 전송됩니다.

이것DNS 레코드 TTL

특정 리소스 레코드에 대해 권한 있는 이름 서버에 의해 설정됩니다. 캐싱(재귀) 이름 서버가 권한 있는 이름 서버에 리소스 레코드를 쿼리할 때 TTL에서 지정한 시간(초) 동안 레코드를 캐시합니다.

따라서 DNS 레코드의 TTL은 0에 도달하지 않으며 대신 DNS 레코드를 요청하는 데 사용된 IP 패킷이 도착하여 TTL=0발신자가 위의 ICMP 오류를 받게 됩니다.

관련 정보