2016-12-28 92 views
3

我對TTL和傳播時間的概念有點困惑,我想澄清一些我在網上找不到具體答案的東西。 AFAIK,TTL(生存時間)表示世界各地的服務器更新其特定DNS的緩存值所需的(頂部)時間。DNS傳播是否依賴於TTL?

所以......

  1. 如果我改變DNS記錄,這一變化立即發生,採取TTL時間到世界各地的更新?還是隻有在TTL時間過去之後,這些變化纔會更新,然後開始在全球傳播?

  2. 每臺服務器會定期檢查TTL間隔的DNS,對嗎?因此,如果服務器檢查TTL爲14400的DNS記錄,並在之後立即更改它,服務器將在稍後低於14400時更新其緩存。如果我在檢查之前更改它,它將更新幾乎立即。

  3. DNS記錄(例如MX)的TTL值是否取決於其他TTL值或更新時間,比如覆蓋/延長其實際生存時間的更一般元素(例如,SOA刷新時間) ?換句話說,如果我只關心更新MX記錄,而且我需要每4小時完成一次,那麼除了那些MX記錄的TTL之外,是否需要設置其他任何內容?

  4. TTL是特定DNS記錄在全球更新的(理論上)限制嗎?雖然實際更新時間差異很大,但據我瞭解,由於服務器保留自己的緩存時間。

回答

1
  1. 沒有 「傳播」,只存在緩存。因此,當您更新權威服務器上的記錄時,它將立即在那裏更改。緩存過期後,緩存服務器將更新其數據。

例如,我將從我的個人域中查詢我公司的本地DNS服務器中的一個主機名。我的域名的權威名稱服務器是AWS和記錄ata3ias.test.bajic.nl配置有TTL 120和IP地址127.0.0.5:

首先,我要查詢的授權AWS名稱服務器:

[[email protected] ~]# dig ata3ias.test.bajic.nl @ns-1695.awsdns-19.co.uk 
... 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 120  IN  A  127.0.0.5 
;; WHEN: Thu Dec 29 12:43:13 2016 

我會再次更改IP地址127.0.0.6和查詢:

[[email protected] ~]# dig ata3ias.test.bajic.nl @ns-1695.awsdns-19.co.uk 
... 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 120  IN  A  127.0.0.6 
;; WHEN: Thu Dec 29 12:43:22 2016 

接下來,我將詢問我公司的內部DNS服務器(我可以安全地假設之前沒有人試圖解決這個地址有在DNS服務器的緩存中沒有輸入):

[[email protected] ~]# dig ata3ias.test.bajic.nl @10.0.0.5 
... 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 119  IN  A  127.0.0.6 
;; Query time: 26 msec 
;; WHEN: Thu Dec 29 12:46:20 2016 

通知的TTL,並且還會注意到查詢時間:緩存服務器查詢的權威DNS服務器,得到了與TTL響應,並記住的信息。現在

,如果我再這樣做:

[[email protected] ~]# dig ata3ias.test.bajic.nl @10.0.0.5 
... 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 107  IN  A  127.0.0.6 
;; Query time: 0 msec 
;; WHEN: Thu Dec 29 12:46:32 2016 

這個答案是從緩存中,你可以看到,通過TTL(這樣不僅緩存服務器將保持數據在緩存TTL時間,它也會將有關剩餘TTL的信息傳遞給客戶端),並且您可以看到,它花費了0ms來解決查詢(因爲不需要聯繫權威名稱服務器)。

然後,我將再次轉到AWS控制檯再次編輯IP地址並將其更改爲127.0.0.7。要確認更改,我將再次直接查詢的權威服務器:

[[email protected] ~]# dig ata3ias.test.bajic.nl @ns-1695.awsdns-19.co.uk 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 120  IN  A  127.0.0.7 
;; WHEN: Thu Dec 29 12:47:10 2016 

現在我將再次查詢內部DNS服務器:

[[email protected] ~]# dig ata3ias.test.bajic.nl @10.0.0.5 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 63  IN  A  127.0.0.6 
;; WHEN: Thu Dec 29 12:47:16 2016 

它仍然是服務於舊數據,並將另一這樣做63秒。

[[email protected] ~]# dig ata3ias.test.bajic.nl @10.0.0.5 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 3  IN  A  127.0.0.6 
;; WHEN: Thu Dec 29 12:48:16 2016 

最後,幾秒鐘後,內部DNS服務器將服務信息新鮮:一分鐘後

[[email protected] ~]# dig ata3ias.test.bajic.nl @10.0.0.5 
;; ANSWER SECTION: 
ata3ias.test.bajic.nl. 119  IN  A  127.0.0.7 
;; WHEN: Thu Dec 29 12:48:21 2016 
  • 完全正確。
  • 一般而言,SOA TTL值僅用於主要和次要(從屬)名稱服務器之間的同步,因此不需要爲MX記錄設置除TTL之外的其他任何內容。您可以找到所有SOA TTL記錄的詳細解釋here
  • 對於表現良好的服務器,是的。對於其他人,你無能爲力。
  • +0

    謝謝您的回答:) 1.所以到期的高速緩存是指TTL爲通過在他們最後一次檢查DNS正確的時間服務器? 3.那麼在這種情況下SOA TTL值是否適用?在經銷商帳戶中,例如SOA是否負責更新客戶域的DNS記錄? – Ata3ias

    +1

    請參閱編輯,它應該澄清緩存。另外,我添加了一個指向詳細的SOA TTL解釋的鏈接。 –