Domain-Name-System

如何查看 DNS 記錄的生存時間 (TTL)?

  • June 7, 2019

我想查看 CNAME 記錄的生存時間 (TTL) 值。

我可以訪問dig(在 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

值“43200”是此 DNS 記錄的 TTL 嗎?

是的,那裡的數字是該記錄到期前的秒數(假設我們沒有查詢權威名稱伺服器)。顯然,對於 CNAME,存在一定程度的重定向,因此在這種情況下它指向的 A 記錄的 TTL 可能也很重要。

如果您等待幾秒鐘並在本地名稱伺服器上再次執行 dig,您應該會看到 TTL 數減少了您等待的秒數(大約)。當它達到 0 時,它將刷新,或者如果您的名稱伺服器出於某種原因刷新了該區域。

如上所述,針對具有記憶體條目的名稱伺服器執行 dig 與對該條目具有權威性的名稱伺服器之間存在差異。

(在下面我使用的範例中,我使用+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部分,請特別注意表示這是權威答案(即未記憶體)的aa標誌。

$ 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會不斷減少。這基本上就是我之前所說的計數器。

引用自:https://serverfault.com/questions/179630