DNS 迭代查詢與遞歸查詢

DNS 查詢以各種不同的方式進行解析。有時,客戶端也可使用從先前的查詢獲得的緩存信息就地應答查詢。DNS 服務器可使用其自身的資源記錄信息緩存來應答查詢。DNS 服務器也可代表請求客戶端查詢或聯繫其他 DNS 服務器,以便完全解析該名稱,並隨後將應答返回至客戶端。這個過程稱爲遞歸。

另外,客戶端自己也可嘗試聯繫其他的 DNS 服務器來解析名稱。當客戶端這麼做的時候,它會根據來自服務器的參考答案,使用其他的獨立查詢。該過程稱作迭代。

只要發出遞歸查詢,服務器必需回答目標IP與域名的映射關係。
而迭代查詢是,服務器收到一次迭代查詢回覆一次結果,這個結果不一定是目標IP與域名的映射關係,也可以是其它DNS服務器的地址。
如圖所示:從客戶端到本地DNS服務器是屬於遞歸查詢,而DNS服務器之間就是的交互查詢就是迭代查詢。
dns查詢
2010-10-13 14:09 上傳
下載附件 (81.93 KB)
dns查詢



總之,DNS 查詢過程按兩部分進行:

名稱查詢從客戶端計算機開始,並傳送至解析程序即 DNS 客戶服務程序進行解析。
不能就地解析查詢時,可根據需要查詢 DNS 服務器來解析名稱。
下面的部分將更加詳細地解釋這兩個過程:

第一部分:本地解析程序
下圖顯示了完整的 DNS 查詢過程的概況。
dnsq2.png 
  
如查詢過程的初始步驟所示,DNS 域名由本機的程序使用。該請求隨後傳送至 DNS 客戶服務,以便使用本地緩存信息進行解析。如果可以解析查詢的名稱,則應答該查詢,該處理完成。

本地解析程序的緩存可包括從兩個可能的來源獲取的名稱信息:

如果本地配置主機文件,則來自該文件的任何主機名稱到地址的映射,在 DNS 客戶服務啓動時將預先加載到緩存中。
從以前的 DNS 查詢應答的響應中獲取的資源記錄,將被添加至緩存並保留一段時間。
如果此查詢與緩存中的項目不匹配,則解析過程繼續進行,客戶端查詢 DNS 服務器來解析名稱。

第二部分:查詢 DNS 服務器
如前面的圖中所示,客戶端將查詢首選 DNS 服務器。在此過程的初始客戶/服務器查詢部分中使用的實際服務器,選自全局列表。有關如何編譯和更新該全局列表的詳細信息,請參閱客戶端功能。

當 DNS 服務器接收到查詢時,首先檢查它能否根據在服務器的本地配置區域中獲取的資源記錄信息作出權威性的應答。如果查詢的名稱與本地區域信息中的相應資源記錄匹配,則使用該信息來解析查詢的名稱,服務器作出權威性的應答,。

如果區域信息中沒有查詢的名稱,則服務器檢查它能否通過來自先前查詢的本地緩存信息來解析該名稱。如果從中發現匹配的信息,則服務器使用該信息應答查詢。接着,如果首選服務器可使用來自其緩存的肯定匹配響應來應答發出請求的客戶端,則此次查詢完成。

如果無論從緩存還是從區域信息,查詢的名稱在首選服務器中都未發現匹配的應答,那麼查詢過程可繼續進行,使用遞歸來完全解析名稱。這涉及來自其他 DNS 服務器的支持,以便幫助解析名稱。在默認情況下,DNS 客戶端服務要求服務器,在返回應答前使用遞歸過程來代表客戶端完全解析名稱。在大多數情況下,DNS 服務器被默認配置爲支持遞歸過程,如下圖所示。

dnsq2.png 
  
爲了使 DNS 服務器正確執行遞歸過程,首先需要在 DNS 域名空間內有關於其他 DNS 服務器的一些有用的聯繫信息。該信息以根提示的形式提供,它是一張初始資源記錄列表,DNS 服務可利用這些記錄定位其他 DNS 服務器,它們對 DNS 域名空間樹的根具有絕對控制權。根服務器對於 DNS 域名空間樹中的根域和頂級域具有絕對控制權。詳細信息,請參閱更新根提示。

使用根提示查找根服務器,DNS 服務器可完成遞歸的使用。理論上,該過程啓用 DNS 服務器,以便那些對域名空間樹的任何級別使用的任何其他 DNS 域名具有絕對控制權的服務器。

例如,當客戶端查詢單個 DNS 服務器時,請考慮使用遞歸過程來定位名稱“host-b.example.microsoft.com”。在 DNS 服務器和客戶端首次啓動,並且沒有本地緩存信息可幫助解析名稱查詢,就會進行上述過程。根據其配置的區域,它假定由客戶端查詢的名稱是域名,該服務器對該域名沒有本地知識。

首先,首選服務器分析全名,並確定它需要對頂級域“com”具有權威性控制的服務器的位置。隨後,對“com”DNS 服務器使用迭代查詢,以便獲取“microsoft.com”服務器的參考信息。接着,來自“microsoft.com”服務器的參考性應答,傳送到“example.microsoft.com”的 DNS 服務器。

最後,與服務器“example.microsoft.com”聯繫上。因爲該服務器包括作爲其配置區域一部分的查詢名稱,所以它向啓動遞歸的源服務器作出權威性地應答。當源服務器接收到表明已獲得對請求查詢的權威性應答的響應時,它將此應答轉發給發出請求的客戶端,這樣遞歸查詢過程就完成了。

儘管執行上述遞歸查詢過程可能需要佔用大量資源,但對於 DNS 服務器來說它仍然具有一些性能上的優勢。例如,在遞歸過程中,執行遞歸查詢的 DNS 服務器,獲得有關 DNS 域名稱空間的信息。該信息由服務器緩存起來並可再次使用,以便提高使用此信息或與之匹配的後續查詢的應答速度。雖然打開與關閉 DNS 服務時,這些緩存信息將被清除,但是隨着時間的推移,它們會不斷增加並佔據大量的服務器內存資源。

dnsq2.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章