在實際應用中DNS查詢主要分爲兩種方式查詢:1.遞歸查詢;2.迭代查詢緩存
通常狀況下:爲了減小資源的消耗,網絡中客戶端與所屬的本地DNS服務器查詢方式一般爲遞歸查詢,本地DNS服務器與外部的公共DNS服務器間的查詢方式爲迭代查詢。服務器
以下所示爲DNS遞歸查詢的過程:網絡
查詢過程以下:ide
Step A:客戶端向本地DNS服務器查詢某個域名解析(這裏以"example.microsoft.com"爲例);3d
Step B:本地DNS服務器先查找緩存查詢不到,而後查找本地區域文件仍是找不到,則經過根提示文件向負責.com頂級域的根名稱DNS服務器查詢;blog
Step C:根DNS服務器收到請求後直接將下屬的.com的權威DNS服務器IP地址返回給本地DNS服務器;遞歸
Step D:本地DNS服務器收到根域名服務器發出的DNS信息後直接向.com的權威DNS服務器查詢;ip
Step E:.com權威名稱服務器收到客戶端DNS查詢請求後,發現無此域名的解析就直接將下一級的二級權威名稱服務器的DNS的IP(這裏指microsoft.com的權威名稱服務器的IP)發給本地DNS服務器;資源
Step F:本地DNS收到.com發出的microsoft.com權威DNS服務器後,直接向microsoft.com權威DNS發出解析請求;域名
Step G:microsoft.com權威DNS收到解析請求後,發現是本身負責的域名,而且存在該主機記錄,而後將對應的ip信息發給本地DNS,本地DNS緩存該解析,並響應客戶端查詢,至此整個查詢過程結束;
總結:遞歸查詢是一種DNS 服務器的查詢模式,在該模式下DNS 服務器接收到客戶機請求,必須使用一個準確的查詢結果回覆客戶機。若是DNS 服務器本地沒有存儲查詢DNS 信息,那麼該服務器會詢問其餘服務器,並將返回的查詢結果提交給客戶機。
以下所示爲DNS迭代查詢的過程:
查詢過程以下:
Step A:客戶端向本地DNS服務器查詢某個域名解析(這裏以"example.microsoft.com"爲例)
Step B:本地DNS服務器先查找本地緩存,若是找不到,則直接將本地DNS的根名稱域名(13臺根域名服務器隨機選擇一臺)信息發給客戶端;
Step C:客戶端根據本地DNS服務器發出的DNS報文直接查詢根域名服務器;
Step D:根域名服務器查詢本身的DNS區域文件,而後將負責.com域名解析的權威DNS告訴客戶端,客戶端再次查詢負責.com解析的DNS服務器;
Step E:.com權威名稱服務器收到客戶端DNS查詢請求後,發現無此域名的解析就直接將下一級的二級權威名稱服務器的DNS的IP(這裏指microsoft.com的權威名稱服務器的IP)發給DNS客戶端;
Step F:客戶端直接查詢microsoft.com的權威名稱DNS,microsoft.com權威名稱服務器收到DNS查詢後發現爲本身負責的域名解析,而且存在該域名的A記錄,直接反饋給DNS客戶端,至此整個查詢過程結束;
總結:DNS 服務器另一種查詢方式爲迭代查詢,這種查詢方式下DNS 服務器會向DNS客戶端提供其餘可以解析查詢請求的DNS服務器地址,當客戶機發送查詢請求時,DNS 服務器並不直接回複查詢結果,而是告訴客戶機另外一臺DNS 服務器地址,客戶機再向這臺DNS 服務器提交請求,依次循環直到返回查詢的結果爲止。