dns協議
計算機網路域名系統
DNS是域名系統(DomainNameSystem)的縮寫,該系統用於命名組織到域層次結構中的計算機和網路服務。域名是由圓點分開一串單詞或縮寫組成的,每一個域名都對應一個惟一的IP地址,在Internet上域名與IP地址之間是一一對應的,DNS就是進行域名解析的伺服器。DNS命名用於Internet等TCP/IP網路中,通過用戶友好的名稱查找計算機和服務。DNS是網際網路的一項核心服務它作為可以將域名和IP地址相互映射的一個分散式資料庫。
DNS是一種可以將域名和IP地址相互映射的以層次結構分佈的資料庫系統。DNS系統採用遞歸查詢請求的方式來響應用戶的查詢,為網際網路的運行提供關鍵性的基礎服務。目前絕大多數的防火牆和網路都會開放DNS服務,DNS數據包不會被攔截,因此可以基於DNS協議建立隱蔽通道,從而順利穿過防火牆,在客戶端和伺服器之間傳輸數據。
DNS允許終端用戶設備將給定的人類可讀URL轉換為網路可以理解的機器可用IP地址。Internet Engineering Task Force(IETF)標準組對HTTP和DNS進行了標準化定義。原始的DNS標準是在1987年發布的,因為用戶在使用網路瀏覽器的同時需要使用其他應用程序,例如將電子郵件地址轉換為IP地址。
DNS 定義了兩種報文,一種為查詢報文;另一種是對查詢報文的響應,稱為響應報文。無論是查詢報文還是響應報文,都有12個位元組的頭和查詢問題。
dns協議
報文細節分析
(1)標識:佔兩個位元組,同一個問題的查詢和響應標識必須相同。
(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)問題數、回答資源記錄數、授權資源記錄數、附加資源記錄數分別描述各自的記錄數目。對於查詢報文,問題數通常是1,而其他三項則均為0。響應報文隨問題不同而變化。
(4)查詢問題:由查詢名、查詢類型、查詢類三部分組成。查詢名是要查找的名字,它是一個或多個標識符的 序列,它的存儲方法是先存儲每個子域的字元數,再存儲相應的字元,依次存儲,最後填寫一個0位元組;查詢類型 佔兩個位元組,常用的有(A,1)代表IP地址、(NS,2)代表名字伺服器、(PTR,12)代表指針記錄;查詢類佔兩個位元組,通常為(IN,1),指網際網路地址。
(5)資源記錄:只出現在響應報文中,它們有一種統一的格式。
DNS報文解析
下面分析一個正向解析的查詢和響應報文:即已知主機名www.safepro.com.cn查詢其對應的IP值。查詢報文(用嗅探器抓的包)。響應報文中的回答資源記錄列出了查詢結果,即www.safepro.com.cn對應的IP為211.154.170.7;授權資源記錄列出了該主機名所屬域由ns1.cendata.net和ns2.cendata.net這兩個域名伺服器來進行管理;附加資源記錄列出了這兩個域名伺服器所對應的IP地址,也就說執行主機名www.safepro.com.cn查詢的可以是這兩個域名伺服器之一。
DNS是一種可以將域名和IP地址相互映射的層次結構的分散式資料庫系統,主要包括如下3個組成部分:
(1)域名空間(domain name space)和資源記錄(resource record);
(2)域名伺服器(name server);
(3)解析器(resolver)。
DNS系統採用遞歸查詢請求的方式來響應用戶的查詢,其一般過程如下:
(1)客戶端首先向首選域名伺服器查詢。
(2)首選域名伺服器檢查本地資源記錄,如果存在則作權威回答,如果不存在,則檢查本地緩存,如果有記錄則直接返回結果。若本地資源記錄和緩存記錄都不存在,則向根域名伺服器查詢。
(3)根域名伺服器返回相應頂級域的權威域名伺服器的地址,首選域名伺服器繼續向該頂級權威域名伺服器查詢。
(4)頂級權威域名伺服器返回次級域的權威域名伺服器地址,首選域名伺服器如此迭代查詢,直到得到對查詢域名的權威回答,保存在本地緩存中並返回給客戶端,完成此次查詢。目前絕大多數的網路都會開放DNS服務,DNS數據包不會被防火牆等網路安全防護設備攔截,因此,可以基於DNS協議建立隱蔽通道,從而順利穿過防火牆,在客戶端和伺服器之間隱蔽地傳輸數據。
未來將會有數十億個物聯網設備具有5G連接性,DNS將為這些設備的發現和定址創造全新的需求。IETF也已經開始進行一些關鍵的協議開發,比如以DNS-SD為代表的“DNS Service Discovery”。DNS—SD允許所有設備在對等體中相互組播,來快速發現本地設備和服務。在智能住宅設置中,例如,這將允許燈控開關可以自動控制所有燈具,而不需要任何人機配置或管理步驟。因此,與傳統的DNS方法相比,DNS—SD將在未來更有效地擴展,這需要集中查詢伺服器和大量手動配置功能的實現。