在實際應用中DNS查詢主要分為兩種方式查詢:1.遞歸查詢;2.迭代查詢
一般情況下:為了減少資源的消耗,網絡中客戶端與所屬的本地DNS服務器查詢方式通常為遞歸查詢,本地DNS服務器與外部的公共DNS服務器間的查詢方式為迭代查詢。
1. 什么遞歸查詢
如下所示為DNS遞歸查詢的過程:
查詢過程如下:
Step A:客戶端向本地DNS服務器查詢某個域名解析(這里以"example.microsoft.com"為例);
Step B:本地DNS服務器先查找緩存查詢不到,然后查找本地區域文件還是找不到,則通過根提示文件向負責.com頂級域的根名稱DNS服務器查詢;
Step C:根DNS服務器收到請求后直接將下屬的.com的權威DNS服務器IP地址返回給本地DNS服務器;
Step D:本地DNS服務器收到根域名服務器發出的DNS信息后直接向.com的權威DNS服務器查詢;
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 信息,那么該服務器會詢問其他服務器,并將返回的查詢結果提交給客戶機。
2. 什么迭代查詢
如下所示為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 服務器提交請求,依次循環直到返回查詢的結果為止。
轉載于:https://blog.51cto.com/blief/2135412