複製鏈接
請複製以下鏈接發送給好友

dns協議

鎖定
域名系統(Domain Name System,縮寫:DNS)是互聯網的一項服務。它作為將域名IP地址相互映射的一個分佈式數據庫,能夠使人更方便地訪問互聯網。DNS使用TCP和UDP端口53。當前,對於每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。DNS協議是用來將域名轉換為IP地址(也可以將IP地址轉換為相應的域名地址)。
中文名
域名解析協議
外文名
DNS protocol
作    用
完成域名地址與IP地址的轉換

dns協議簡介

DNS是一種可以將域名和IP地址相互映射的以層次結構分佈的數據庫系統。DNS系統採用遞歸查詢請求的方式來響應用户的查詢,為互聯網的運行提供關鍵性的基礎服務。目前絕大多數的防火牆和網絡都會開放DNS服務,DNS數據包不會被攔截,因此可以基於DNS協議建立隱蔽信道,從而順利穿過防火牆,在客户端和服務器之間傳輸數據。 [1] 
DNS允許終端用户設備將給定的人類可讀URL轉換為網絡可以理解的機器可用IP地址。Internet Engineering Task Force(IETF)標準組對HTTP和DNS進行了標準化定義。原始的DNS標準是在1987年發佈的,因為用户在使用網絡瀏覽器的同時需要使用其他應用程序,例如將電子郵件地址轉換為IP地址。 [2] 

dns協議報文格式

DNS 定義了兩種報文 ,一種為查詢報文;另一種是對查詢報文的響應,稱為響應報文。無論是查詢報文還是響應報文,都有12個字節的頭和查詢問題。 [3] 
DNS響應報文格式 DNS響應報文格式 [3]
DNS查詢報文格式 DNS查詢報文格式 [3]

dns協議報文細節分析

(1)標識:佔兩個字節,同一個問題的查詢和響應標識必須相同。 [3] 
DNS報文標誌 DNS報文標誌
(2)標誌:佔兩個字節QR:這一位是查詢和響應報文的標誌,0表示查詢報文,1表示響應報文;Opcode:操作碼佔4bit,值為0表示標準查詢,值為1表示反向查詢,值為2表示服務器狀態請求。標準查詢是給出主機名查詢其對應的IP;反向查詢是給出IP查詢其對應的主機名;AA:佔1bit,表示該域名服務器是否是授權給該域的,1表示授權,0表示未授權;TC:佔1bit,表示是否可截斷。當使用UDP時,若此位為1,表示當響應報文的總長度超過512字節時,只返回前512個字節,是可截斷的;RD:佔1bit,表示是否期望遞歸。為1時表示查詢方式是遞歸查詢;如果該位為0,且被請求的域名服務器沒有一個授權回答,則查詢方式為迭代查詢;RA:佔1bit,表示是否
可用遞歸。如果域名服務器支持遞歸查詢,則在響應中將該比特設置為1,大多數名字服務器都提供遞歸查詢,除
了某些根服務器;隨後的3bit字段必須為0;Rcode:結果代碼佔4bit,值為0表明沒有差錯,值為1表明報
文格式出錯,值為2表明服務器查詢失敗,值為3表明名字出錯。 [3] 
(3)問題數、回答資源記錄數、授權資源記錄數、附加資源記錄數分別描述各自的記錄數目。對於查詢報文,
問題數通常是1,而其他三項則均為0。響應報文隨問題不同而變化。 [3] 
(4)查詢問題:由查詢名、查詢類型、查詢類三部分組成。查詢名是要查找的名字,它是一個或多個標識符的
序列,它的存儲方法是先存儲每個子域的字符數,再存儲相應的字符,依次存儲,最後填寫一個0字節;查詢類型
佔兩個字節,常用的有(A,1)代表IP地址、(NS,2)代表名字服務器、(PTR,12)代表指針記錄;查詢類佔兩個字節,通常為(IN,1),指互聯網地址。 [3] 
(5)資源記錄:只出現在響應報文中,它們有一種統一的格式。 [3] 

dns協議DNS報文解析

下面分析一個正向解析的查詢和響應報文:即已知主機名www.safepro.com.cn查詢其對應的IP值。查
詢報文(用嗅探器抓的包)。
DNS查詢報文實例 DNS查詢報文實例
響應報文中的回答資源記錄列出了查詢結果,即www.safepro.com.cn對應的IP為211.154.170.7;授權資源記錄列出了該主機名所屬域由ns1.cendata.net和ns2.cendata.net這兩個域名服務器來進行管理;附加資源記錄列出了這兩個域名服務器所對應的IP地址,也就説執行主機名www.safepro.com.cn查詢的可以是這兩個域名服務器之一。 [3] 

dns協議工作原理

DNS是一種可以將域名和IP地址相互映射的層次結構的分佈式數據庫系統,主要包括如下3個組成部分:
(1)域名空間(domain name space)和資源記錄(resource record);
(2)域名服務器(name server);
(3)解析器(resolver)。 [4] 
DNS體系結構 DNS體系結構 [4]
DNS系統採用遞歸查詢請求的方式來響應用户的查詢,其一般過程如下:
(1)客户端首先向首選域名服務器查詢。 [4] 
(2)首選域名服務器檢查本地資源記錄,如果存在則作權威回答,如果不存在,則檢查本地緩存,如果有記錄則直接返回結果。若本地資源記錄和緩存記錄都不存在,則向根域名服務器查詢。 [4] 
(3)根域名服務器返回相應頂級域的權威域名服務器的地址,首選域名服務器繼續向該頂級權威域名服務器查詢。 [4] 
(4)頂級權威域名服務器返回次級域的權威域名服務器地址,首選域名服務器如此迭代查詢,直到得到對查詢域名的權威回答,保存在本地緩存中並返回給客户端,完成此次查詢。目前絕大多數的網絡都會開放DNS服務,DNS數據包不會被防火牆等網絡安全防護設備攔截,因此,可以基於DNS協議建立隱蔽通道,從而順利穿過防火牆,在客户端和服務器之間隱蔽地傳輸數據。 [4] 

dns協議5G時代下的發展

未來將會有數十億個物聯網設備具有5G連接性,DNS將為這些設備的發現和尋址創造全新的需求。IETF也已經開始進行一些關鍵的協議開發,比如以DNS-SD為代表的“DNS Service Discovery”。DNS—SD允許所有設備在對等體中相互組播,來快速發現本地設備和服務。在智能住宅設置中,例如,這將允許燈控開關可以自動控制所有燈具,而不需要任何人機配置或管理步驟。因此,與傳統的DNS方法相比,DNS—SD將在未來更有效地擴展,這需要集中查詢服務器和大量手動配置功能的實現。 [2] 
參考資料