DNS 레코드에 대한 TTL (Time-To-Live)을 어떻게 확인할 수 있습니까?


117

CNAME 레코드의 TTL (Time-To-Live) 값을보고 싶습니다.

발굴 (Apple Mac OS X에서)에 액세스 할 수 있습니다 .

% dig host.example.gov
<*SNIP*>
;; ANSWER SECTION:
host.example.gov.       43200   IN  CNAME   host1.example.gov.
host1.example.gov.      43200   IN  A       192.168.16.10

이 DNS 레코드의 TTL 값이 '43200'입니까?

답변:


142

예, 레코드가 만료 될 때까지 남은 시간 (초)은 신뢰할 수있는 네임 서버를 쿼리하지 않는 경우입니다. 분명히 CNAME에는 리디렉션 수준이 있으므로이 경우 A 레코드의 TTL도 중요 할 수 있습니다.

몇 초 동안 기다렸다가 로컬 네임 서버에서 다시 발굴을하면 TTL 번호가 대기 한 시간 (약)만큼 줄어드는 것을 볼 수 있습니다. 0에 도달하면 새로 고치거나 네임 서버가 어떤 이유로 영역을 새로 고칩니다.

위에서 언급 한 바와 같이, 캐시 된 항목이있는 이름 서버와 해당 항목에 대해 권한이있는 이름 서버에 대해 실행되는 차이점이 있습니다.

(아래에서 사용하는 예제 에서는 출력을 간결하게 유지하기 위해 +noauthority +noquestion& +nostats플래그를 사용합니다 ).

다음 쿼리의 차이점에 유의하십시오.

$ dig +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net.

; <<>> DiG 9.7.0-P1 <<>> +noauthority +noquestion +nostats stackoverflow.com @ns2.p19.dynect.net.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50066
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; ANSWER SECTION:
stackoverflow.com.  432000  IN  A   69.59.196.211

위의 쿼리에서 stackoverflow.com에 대한 권한이있는 네임 서버를 쿼리합니다. 당신이 통지하는 경우 flags섹션의 특별한주의를 지불 금주 모임 이는 것입니다 의미 플래그 권위있는 대답 (즉 캐시되지 않습니다).

$ dig +noauthority +noquestion +noadditional +nostats stackoverflow.com 

; <<>> DiG 9.7.0-P1 <<>> +noauthority +noquestion +noadditional +nostats stackoverflow.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 43514
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 4

;; ANSWER SECTION:
stackoverflow.com.  246696  IN  A   69.59.196.211

위의 쿼리에는 aa 플래그 가 없으며 쿼리 및 쿼리에 따라 TTL이 계속 감소합니다. 이것은 본질적으로 내가 전에 이야기했던 카운터입니다.


49

Windows 상자에 붙어서 nslookup에만 액세스 할 수있는 경우 :

nslookup -qa=A -debug host.example.com authoritiative-dns-host-here.com

15

Is the value '43200' the TTL for this DNS record?

예-쿼리에 응답 한 서버에서보고 한대로 (캐싱 서버를 요청하는 경우 남은 시간을 캐시에 반환 함)

실제 레코드 쿼리에서 TTL 세트를 확인하려면 권한있는 네임 서버 ( dig @some.dns.server host.example.gov-권한있는 DNS 서버는 dig 출력의 권한 섹션에 나열됩니다)

신뢰할 수있는 NS를 요청하는지 확인하십시오. dig다시 실행 하고 TTL이 변경되면 캐시에 충돌했을 수 있습니다. 동일하게 유지되면 인증 서버 (또는 캐싱이 손상된 서버)를 요청하는 것일 수 있습니다.


1
ttl이 변경되지 않으면 도메인 자체가 신뢰할 수 있다고 생각할 수 있습니다. 도메인 소유자가 이전 서버를 종료하지 않고 DNS 서버를 변경했을 수 있습니다. 지난 달에 문제가있었습니다.
Jasen

2
@Jasen 예, 그것은 가능합니다 (중요한 부분도 나타납니다 : DNS 관리자가 다음 회사에서 음료를
사러

7

기본 파기 출력에서 ​​신뢰할 수있는 서버를 볼 수 없었지만 다음과 같습니다.

dig +nssearch host.example.com

이 레코드를 반환 한 다음 voretaq7에서 설명한대로 레코드의 실제 TTL 값을 얻을 수 있습니다.

업데이트 :이 작업을 잊어 버리고 다시 돌아와야하기 때문에 먼저 권위있는 네임 서버를 가져 와서 사용하는 작은 스크립트를 작성했습니다.

#!/bin/bash

show_help(){
        echo Usage $0 domain
}

if [ -z "$1" ]; then
        show_help
        exit 1
fi

DOMAIN=$1
APEX_DOMAIN=`echo $DOMAIN | sed 's/\(.*\.\)\([^.]*\.[^.]*\)/\2/'`
FIRST_AUTHORITATIVE_NS=$(dig +nssearch $APEX_DOMAIN | awk '$1=="SOA"{sub(".$","",$2);print $2;exit;}')

echo
echo Using authoritative nameserver $FIRST_AUTHORITATIVE_NS

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