您好,登錄后才能下訂單哦!
這篇文章主要講解了“迭代DNS查詢和遞歸DNS查詢的區別是什么”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“迭代DNS查詢和遞歸DNS查詢的區別是什么”吧!
DNS查詢可以根據請求被處理的方式進行分類。通常查詢可以分為以下幾類:
遞歸查詢。
迭代查詢或非遞歸查詢。
反向查詢。
在遞歸查詢中,接收客戶端請求的DNS服務器將完成全部的工作,然后返回結果。在工作過程中,DNS服務器可能代表客戶端,向internet上的其他DNS服務器查詢,以獲得答案。
讓我們通過以下步驟了解遞歸查詢的整個過程。
假設你想瀏覽www.example.com網站,并且/etc/resolve.conf文件包含以下條目:
[root@myvm ~]# cat /etc/resolv.conf nameserver 172.16.200.30 nameserver 172.16.200.31
這份resolve conf文件表是DNS服務器是172.16.200.30和172.16.200.31。無論你使用什么應用程序,操作系統都將向這兩個DNS服務器發送查詢請求。
步驟1:你在瀏覽器中輸入www.example.com。操作系統向DNS服務器172.16.200.30發送請求,查詢A記錄。
步驟2:DNS服務器172.16.200.30在接收到查詢后,檢查本地緩存表,查找域名www.example.com的IP地址(A記錄),沒有找到。
步驟3:因為DNS服務器172.16.200.30上沒有查詢到信息,這個DNS服務器發送請求到一臺根服務器查詢答案。這里的一個重要事實在于,根服務器只支持迭代查詢。
相關:DNS根服務器及其位置
步驟4:DNS根服務器返回一組DNS服務器地址,這些服務器負責處理.com頂級域名。
步驟5:我們的DNS服務器172.16.200.30將從根服務器返回的列表中選擇一個頂級域名服務器繼續查詢www.example.com的IP地址。
步驟6:與根服務器類似,頂級域名服務器的也是迭代的。它返回給172.16.200.30另一組DNS服務器地址列表。這些DNS服務器(權威authoritative域名服務器)負責查詢域名www.example.com。
相關:DNS區域文件及其內容
步驟7:現在我們的DNS服務器將從權威域名服務器列表中選擇一個IP,向其查詢www.example.com的A記錄。權威域名服務器查詢后,回復如下的A記錄:
www.example.com = <XXX:XX:XX:XX>(某個IP地址)
步驟8:DNS服務器172.16.200.30把IP、域名對(以及其他可用資源)返回給我們。現在瀏覽器將向給定的IP發送請求,獲取網頁www.example.com。
下面圖表可能會使概念更清楚。 遞歸DNS查詢 如上圖所示,DNS服務器172.16.200.30代表我們向其他DNS服務器進行查詢。
注:上面解釋的遞歸查詢場景之所以會發生,是因為我們的DNS服務器172.16.200.30被配置為遞歸DNS服務器。你也可以禁用DNS服務器的遞歸查詢功能。
在上面的例子中你已經看到,DNS服務器172.16.200.30需要多次從一個服務器列表中選擇一個服務器進行查詢。
例如有13臺根服務器(我們常說一共有13臺根服務器。13是全部服務器地址的數量。實際上在世界各地一共有數百臺服務器。這13個根服務器地址是anycaste地址),要從那個根服務器查詢信息呢?
相關:什么是IP Anycast,它是如何工作的?
幾乎所有的DNS服務器都使用某種算法從列表中進行選擇,以便以便分配負載,降低響應時間。
最著名的DNS服務器軟件BIND使用一種稱為RTT度量(Round Trip Time metric)的技術。使用這種技術,服務器跟蹤每個根服務器的往返時間,并選擇RTT較低的那個。
在開始解釋迭代查詢之前,需要注意的一點是,所有DNS服務器都必須支持迭代(非遞歸)查詢。
在迭代查詢中,名字服務器不會去獲取完整的答案,而是返回其他可能直到答案的DNS服務器地址。在前面的示例中,DNS服務器172.16.200.30代表我們取查詢信息,并為我們提供最終結果。
但是如果我們的DNS服務器不是遞歸的(這意味著它是迭代的),如果答案在它的記錄中,它會告訴我們答案。否則它會告訴我們根服務器的地址(它本身不會查詢根服務器或其他服務器)。
現在,操作系統中解析程序的任務是查詢根服務器、.COM頂級域名服務器和權威名字服務器,以獲得答案。
讓我們來看看所涉及的步驟。
步驟1:你在瀏覽器中輸入www.example.com。操作系統的解析程序向DNS服務器172.16.200.30發送請求,查詢A記錄。
步驟2: DNS服務器172.16.200.30在接收到查詢后,查看緩存表,查找www.example.com的IP地址(A記錄)。但沒有找到。
步驟3:現在,我們的DNS服務器不再查詢根服務器,而是把根服務器列表返回給我們。操作系統的解析程序將查詢根服務器,尋求答案。
接下來的步驟同上文一樣。迭代查詢的唯一區別是:
如果DNS服務器沒有答案,它將不會向其他服務器查詢答案,而是返回DNS根服務器的地址。
如果DNS服務器有答案,它將返回答案(這在迭代查詢和遞歸查詢中是一樣的)。
在迭代查詢中,從其他DNS服務器中查詢答案的任務由操作系統的解析程序完成。
迭代DNS查詢 從上圖可以清楚地看出,在迭代查詢中,DNS服務器不會為你向其他服務器查詢答案(但如果已經有答案,則會告訴你答案)。但是會告訴你的解析程序其他DNS服務器的地址(在我們的例子中是根服務器地址)。
感謝各位的閱讀,以上就是“迭代DNS查詢和遞歸DNS查詢的區別是什么”的內容了,經過本文的學習后,相信大家對迭代DNS查詢和遞歸DNS查詢的區別是什么這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。