淺談DNS遞迴解析和迭代解析之間的區別

youbingke發表於2021-11-04

DNS解析是網際網路中的重要環節,承擔著將域名翻譯為可由計算機直接讀取的IP地址的基礎功能。根據查詢物件不同DNS解析可分為遞迴解析和迭代解析兩種方式,接下來,中科三方將簡單介紹下兩種查詢方式的流程以及兩種方式的區別。

什麼是遞迴查詢?

“遞迴解析”是最常見也是預設的一種解析方式。在這種解析方式中,如果客戶端配置的本地域名伺服器(Local DNS伺服器)不能解析的話,則後面的查詢過程全部 由本地域名伺服器代替DNS客戶端進行查詢 ,直到本地域名伺服器從權威域名伺服器得到了正確的解析結果,然後由本地域名伺服器告訴DNS客戶端查詢的結果。

在整個遞迴查詢過程中,除一開始客戶端向本地域名伺服器發起查詢請求外,其餘各個環節均是以本地域名伺服器為中心進行迭代查詢,DNS客戶端一直處於等待狀態,直到本地域名伺服器發回最終查詢結果。相當於,在整個查詢環節中本地域名伺服器承擔了中介代理的角色。

遞迴解析的查詢過程大致如下:

技術分享 | 淺談DNS遞迴解析和迭代解析之間的區別

1.客戶端向本機配置的本地域名伺服器發起DNS域名查詢請求;

2.本地域名伺服器收到請求後,會先查詢本地快取,如果有記錄值會直接返回給客戶端;如果沒有記錄,則本地域名伺服器會向根域名伺服器發起請求;

3.根域名伺服器收到請求後,會根據所要查詢域名中的字尾將所對應的頂級域名伺服器(如.com、.cn等)返回給本地域名伺服器;

4.本地域名伺服器根據返回結果向所對應的頂級域名伺服器發起查詢請求;

5.對應的頂級域名伺服器在收到DNS查詢請求後,也是先查詢自己的快取,如果有所請求域名的解析記錄,則會直接將記錄返回給本地域名伺服器,然後本地域名伺服器再將記錄返回給客戶端,完成整個DNS解析過程。

6.如果頂級域名伺服器沒有記錄值,就會將二級域名對應的伺服器地址返回給本地域名伺服器,本地域名伺服器再次對二級域名伺服器發起請求,如此類推,直到最終對應區域的權威域名伺服器返回結果給本地域名伺服器。然後本地域名伺服器將記錄值返回給DNS客戶端,同時快取本地查詢記錄,以便在TTL值內使用者再次查詢時直接將記錄返回給客戶端。

什麼是迭代查詢?

從上面的介紹中我們看到了,遞迴查詢除在一開始客戶端發起查詢請求外,其他環節都是由本地域名伺服器代替客戶端進行的。而 迭代查詢則是指所有查詢工作全部由客戶端自己進行 ,除此之外,整個查詢路徑和步驟與遞迴查詢沒有太大區別。

技術分享 | 淺談DNS遞迴解析和迭代解析之間的區別

DNS迭代查詢流程圖

首先客戶端向本地域名伺服器發起請求,如果本地域名伺服器沒有快取記錄,客戶端便會依次對根域名伺服器、頂級域名伺服器和二級域名伺服器等發起迭代查詢,直到獲得最終的查詢結果。

在以下條件之一滿足時,就會採用迭代解析方式:

1.在查詢本地域名伺服器時,如果客戶端的請求報文中沒有申請使用遞迴查詢,即在DNS請求報文中的RD欄位沒有設定為1。

2.客戶端在DNS請求報文中申請使用遞迴查詢,但所配置的本地域名伺服器禁止使用遞迴查詢,即在應答DNS報文頭部的RA欄位設定為0。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2840567/,如需轉載,請註明出處,否則將追究法律責任。

相關文章