淺談DNS遞迴解析和迭代解析之間的區別
DNS解析是網際網路中的重要環節,承擔著將域名翻譯為可由計算機直接讀取的IP地址的基礎功能。根據查詢物件不同DNS解析可分為遞迴解析和迭代解析兩種方式,接下來,中科三方將簡單介紹下兩種查詢方式的流程以及兩種方式的區別。
什麼是遞迴查詢?
“遞迴解析”是最常見也是預設的一種解析方式。在這種解析方式中,如果客戶端配置的本地域名伺服器(Local DNS伺服器)不能解析的話,則後面的查詢過程全部 由本地域名伺服器代替DNS客戶端進行查詢 ,直到本地域名伺服器從權威域名伺服器得到了正確的解析結果,然後由本地域名伺服器告訴DNS客戶端查詢的結果。
在整個遞迴查詢過程中,除一開始客戶端向本地域名伺服器發起查詢請求外,其餘各個環節均是以本地域名伺服器為中心進行迭代查詢,DNS客戶端一直處於等待狀態,直到本地域名伺服器發回最終查詢結果。相當於,在整個查詢環節中本地域名伺服器承擔了中介代理的角色。
遞迴解析的查詢過程大致如下:
1.客戶端向本機配置的本地域名伺服器發起DNS域名查詢請求;
2.本地域名伺服器收到請求後,會先查詢本地快取,如果有記錄值會直接返回給客戶端;如果沒有記錄,則本地域名伺服器會向根域名伺服器發起請求;
3.根域名伺服器收到請求後,會根據所要查詢域名中的字尾將所對應的頂級域名伺服器(如.com、.cn等)返回給本地域名伺服器;
4.本地域名伺服器根據返回結果向所對應的頂級域名伺服器發起查詢請求;
5.對應的頂級域名伺服器在收到DNS查詢請求後,也是先查詢自己的快取,如果有所請求域名的解析記錄,則會直接將記錄返回給本地域名伺服器,然後本地域名伺服器再將記錄返回給客戶端,完成整個DNS解析過程。
6.如果頂級域名伺服器沒有記錄值,就會將二級域名對應的伺服器地址返回給本地域名伺服器,本地域名伺服器再次對二級域名伺服器發起請求,如此類推,直到最終對應區域的權威域名伺服器返回結果給本地域名伺服器。然後本地域名伺服器將記錄值返回給DNS客戶端,同時快取本地查詢記錄,以便在TTL值內使用者再次查詢時直接將記錄返回給客戶端。
什麼是迭代查詢?
從上面的介紹中我們看到了,遞迴查詢除在一開始客戶端發起查詢請求外,其他環節都是由本地域名伺服器代替客戶端進行的。而 迭代查詢則是指所有查詢工作全部由客戶端自己進行 ,除此之外,整個查詢路徑和步驟與遞迴查詢沒有太大區別。
首先客戶端向本地域名伺服器發起請求,如果本地域名伺服器沒有快取記錄,客戶端便會依次對根域名伺服器、頂級域名伺服器和二級域名伺服器等發起迭代查詢,直到獲得最終的查詢結果。
在以下條件之一滿足時,就會採用迭代解析方式:
1.在查詢本地域名伺服器時,如果客戶端的請求報文中沒有申請使用遞迴查詢,即在DNS請求報文中的RD欄位沒有設定為1。
2.客戶端在DNS請求報文中申請使用遞迴查詢,但所配置的本地域名伺服器禁止使用遞迴查詢,即在應答DNS報文頭部的RA欄位設定為0。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69996004/viewspace-2840567/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DNS遞迴解析和迭代解析的區別-VeCloudDNS遞迴Cloud
- 遞迴解析和權威解析的區別是什麼?遞迴
- JS:解析forEach()、map()原始碼及淺談兩者之間的區別JS原始碼
- 淺談querySelector和getElementById之間的區別
- 淺談智慧DNS雲解析(一)DNS
- 淺談智慧DNS雲解析(二)DNS
- DNS解析問題:遞迴伺服器和權威伺服器有什麼區別?DNS遞迴伺服器
- JavaScript淺談之迭代器(Iterator) 和for-of迴圈JavaScript
- 什麼是DNS雲解析?雲解析和普通解析有什麼區別?DNS
- dom解析和sax解析的區別
- 淺談尾遞迴遞迴
- 淺談SFTP和FTP的區別FTP
- 淺談let和var的區別
- 淺談遞迴演算法遞迴演算法
- 淺談JS預解析JS
- 【JSON解析】淺談JSONObject的使用JSONObject
- 什麼是遞迴解析伺服器?遞迴解析伺服器的作用是什麼?遞迴伺服器
- 對遞迴和迭代的效率的思考和分析遞迴
- 輸出區間內的偶數和(遞迴)遞迴
- 使用Python獲取DNS解析時間和響應時間PythonDNS
- iOS探索:Block解析淺談iOSBloC
- 使用DocumentBuilderFactory解析XML淺談UIXML
- 淺談TCP和UDP協議的區別TCPUDP協議
- mybatis collection解析以及和association的區別MyBatis
- 雲解析專家講解DNS解析生效時間問題DNS
- 淺談Go型別轉換之間的那些事Go型別
- 淺談 Go 型別轉換之間的那些事Go型別
- 談談遞迴遞迴
- 中科三方:淺談DNS攻擊型別和DNS安全防護措施DNS型別
- 全排列的實現之遞迴版與迭代版遞迴
- 什麼是DNS解析?如何提升DNS解析安全?DNS
- 深度解析!Linux 命令 su 和 sudo 的區別Linux
- @Bean和@Component之間的區別?Bean
- querySelector和getElementById之間的區別
- 敏捷和 Scrum 之間的區別敏捷Scrum
- DNS解析常見問題:域名解析生效原理及時間DNS
- DNS解析流程DNS
- DNS解析原理DNS