Domain-Name-System

擷取所有 DNS 記錄是否是減少查詢的好習慣?

  • December 6, 2017

我們有一個使用 Route 53 作為 DNS 提供商的域。我們對不再存在的記錄有很多查詢。我認為設置具有高 TTL 的全部記錄是個好主意,例如:*.example.com -> 1.1.1.1. 這意味著所有沒有現有記錄的 DNS 查詢都將具有長 TTL。問題是,現在當我創建一個新記錄並使用https://www.whatsmydns.net/檢查傳播時,一些伺服器返回1.1.1.1,一些伺服器返回真實 IP 地址。這是一個好習慣嗎?

謝謝

在沒有與這些地址的所有者達成某種協議的情況下,將您的 DNS 記錄指向其他人的 IP 地址絕不是一個好習慣。

此外,擁有*記錄通常不是一個好主意。有一天,您可能會遇到確實需要 NXDOMAIN 響應某些名稱的情況,如果存在*記錄,這會有點棘手。此外,您的區域中存在*記錄意味著您很容易忘記您依賴*記錄的實際名稱。這最終意味著很難*用單個名稱記錄替換記錄,因此您可能會遇到次優配置。

此外,您注意到高 TTL 意味著您所做的更改需要很長時間才能生效。這就是為什麼 NXDOMAIN 響應(通過 SOA 記錄指定)的 TTL 通常相當低的原因。

此外,*記錄可能不會像您想像的那樣減少查詢。沒有*記錄的區域有天文數字的不存在名稱。沒有遞歸器會為每個可能的 63 個字元的子域記憶體一個單獨的條目。因此,對不存在名稱的查詢可能會產生無窮無盡的查詢流,而記憶體單個名稱永遠不會減少。

另一種選擇是使用 DNSSEC 簽署您的區域。隨著RFC 8198的引入, DNSSEC 允許遞歸器根據覆蓋整個名稱範圍的記憶體條目使用 NXDOMAIN 進行響應,而不是每個記憶體記錄僅涵蓋一個名稱。

如果您從支持RFC 8198的遞歸器收到大量不存在名稱的查詢,那麼您可以通過簽署您的區域來減少這些查詢。

具體來說,RFC 是這樣說的:

如果驗證解析器的否定記憶體有足夠的資訊來驗證查詢,則解析器應該使用 NSEC、NSEC3 和萬用字元記錄來合成本文件中描述的答案。否則,它必須退回以將查詢發送到權威 DNS 伺服器。

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