2011-06-07 97 views
4

我還沒有找到這個問題的答案在任何地方,我有點困惑..我想知道是否迭代或遞歸查詢根DNS服務器? 就我對該主題的理解而言,可以遞歸地查詢它們,因爲它們是撤銷名稱的「最後選項」,所以它們必須用IP地址/錯誤消息來回答。我對麼?請爲我清楚。謝謝。接受查詢的DNS根服務器

回答

4

遞歸服務器(即服務的最終用戶的客戶端的那些)進行迭代查詢權威服務器。

針對這些迭代查詢,在鏈從根下的每個權威服務器要麼返回答案如果它的權威性該域,或轉診下一個服務器環比下滑是威力有答案。

根名稱服務器不要提供完全遞歸服務,只能引用由每個TLD運行的名稱服務器。

16

對任何DNS服務器的查詢,無論它們是否是根服務器,都會根據服務器允許發佈的關於他們知道的名稱的信息得到答案。這意味着如果你向服務器查詢一個它不知道的名字,但它確實知道誰擁有它的一部分,它會引用你到下一個要求的地方。

可以說你需要找出www.example.com是哪裏。如果您在綁定包中使用該實用程序,您可以查詢根的答案,看看它會告訴你:

# dig @b.root-servers.net. www.example.com a 
;; QUESTION SECTION: 
;www.example.com.    IN  A 

;; AUTHORITY SECTION: 
com.     172800 IN  NS  h.gtld-servers.net. 
com.     172800 IN  NS  d.gtld-servers.net. 
; [...11 more authority servers for .com not shown...] 

;; ADDITIONAL SECTION: 
h.gtld-servers.net.  172800 IN  A  192.54.112.30 
d.gtld-servers.net.  172800 IN  A  192.31.80.30 
; [...11 more IP addresses for .com not shown...] 

上述反應的效果是根服務器,告訴你「我 唐不知道www.exmaple.com是哪裏,你需要去問下面的.com, 這是在以下列表中的地址:

然後你就可以去問問.com服務器了同樣的問題:

# dig @h.gtld-servers.net. www.example.com a 
;; QUESTION SECTION: 
;www.example.com.    IN  A 

;; AUTHORITY SECTION: 
example.com.   172800 IN  NS  a.iana-servers.net. 
example.com.   172800 IN  NS  b.iana-servers.net. 

;; ADDITIONAL SECTION: 
a.iana-servers.net.  172800 IN  A  199.43.132.53 
a.iana-servers.net.  172800 IN  AAAA 2001:500:8c::53 
b.iana-servers.net.  172800 IN  A  193.0.0.236 
b.iana-servers.net.  172800 IN  AAAA 2001:610:240:2::c100:ec 

這個答案可以幫助你進一步說:「我也不知道,但去問問example.com的業主 」。問他們最終會得到你正在尋找一個 真正的答案:

# dig @a.iana-servers.net. www.example.com a 

;; ANSWER SECTION: 
www.example.com.  172800 IN  A  192.0.32.10 

最後,我們有一個服務器是願意給我們真正的 答案。

但是,請注意,我們依次詢問每個服務器,從根 開始,然後往下走。在每一步都有人說「我有答案」 或「我沒有答案,但我知道下一次應該與誰談話」。