題 公共名稱服務器實際上做了什麼?


我試圖理解公共DNS名稱服務器的目的(公共,因為不是SOA;如8.8.8.8)。

我執行了一個 dig +trace 命令,並且,據我所知,使用名稱服務器的唯一時間是查找根域的SOA .。之後,查詢層次結構中每個域的SOA。

我的假設是公共名稱服務器用於:

  • 識別根域的SOA,因此不必在客戶端上進行硬編碼。
  • 分散流程和緩存。因此,如果域的SOA發生故障,另一台服務器可以引導客戶端。
  • 減少SOA上的負載。如果另一個服務器知道recored,則不需要查詢SOA。

我有3個問題:

  • 我的假設是否正確?

  • 如果這些確實是名稱服務器所做的唯一事情,如果我不需要緩存並且願意自己進行遞歸查詢,我可以停止使用名稱服務器嗎?

  • 如果SOA執行過多請求,是否可以拒絕回答來自特定名稱服務器的查詢?

4
2018-05-13 15:08


起源


由於某些技術術語的錯誤使用,您的問題很難理解。例如,我認為您沒有正確使用“SOA”,特別是在最後一句中。 - bortzmeyer


答案:


你的假設不正確。該 +trace 選項告訴dig查詢每個域的SOA服務器;這不是它的正常行為。正常的DNS查找將使用您配置的DNS服務器(例如公共遞歸DNS服務器)進行所有查找。

除非您準備僅使用IP地址,否則不能停止使用名稱服務器。但是,您可以運行自己的遞歸名稱服務器,可能與客戶端軟件在同一台計算機上運行,在這種情況下,您可以停止使用公共遞歸名稱服務器。


7
2018-05-13 16:05



如果不是SOA,公共服務器如何知道答案? - David Bryant
@DavidBryant如果公共服務器沒有緩存結果,它將從SOA獲取它。這就是遞歸DNS服務器所做的事情。但 你的客戶 沒有從SOA獲得任何東西。 - Mike Scott
謝謝你的澄清。最後一個問題:我注意到當我每秒向公共域名服務器發送大量請求時,我開始得到 REFUSED/SERVFAIL 回應或只是完全錯誤的回答,比如 NXDOMAIN 對於現有域名。這是公共服務器禁止我的結果,還是SOA禁止公共服務器? (考慮到公共服務器不緩存響應並且每次都詢問SOA) - David Bryant
這很可能是公共服務器限制您的訪問。 - Mike Scott
無論您查詢DNS服務器多少次,它都不會發送 NXDOMAIN 對於現有域名。如果DNS服務器執行此操作,則該DNS服務器出現故障。 - kasperd


作為一個小的補充 邁克斯科特的答案...

公共名稱服務器的主要用途(如您所定義)是:

  1. 讓個人不必運行自己的名稱服務器。

  2. 幫助(可能)加速解析域的過程。

關於你的“三個假設”的一些註釋

  • 某些名稱服務器僅將未知請求的查找轉發到其他遞歸解析器(例如公共名稱服務器)。由於公共名稱服務器保持 root提示文件 要做遞歸查找,這確實意味著這些文件是不必要的 轉發只 名稱服務器。 但是,這與任何“客戶”無關(據我了解你的意思)。

  • 公共名稱服務器可以(可以說)幫助進行分散和緩存。同樣,它們可以潛在地為整個DNS系統提供穩健性。但這些都是附帶的好處。

  • 公共DNS服務器可以減少權威名稱服務器上的負載,但同樣,這不是繞過這些服務器的主要原因。這個想法是,與從權威名稱服務器請求該信息相比,返回的緩存信息更快。


5
2018-05-13 18:19





一個公共解析器(小心名稱“名稱服務器”:有兩種名稱服務器,解析器和權威,它們幾乎沒有任何共同點)只是一個解析器,就像你的ISP或你自己運行的那個在你的網絡上。與任何服務一樣,它們可以比默認服務更快或更慢,或多或少可靠,具有一些額外的好或壞功能,但它們不做任何具體的操作。


0
2018-05-15 14:26