DNS協議解析

2021-09-09 05:40:33 字數 2699 閱讀 3507

dns是引用層協議,傳輸層用udp,採用「請求-響應」模式。

1.1. 網域名稱結構

網域名稱系統並不像**號碼通訊錄那麼簡單,通訊錄主要是單個個體在使用,同乙個名字出現在不同個體的通訊錄裡並不會出現問題,但網域名稱是群體中所有人都在用的,必須要保持唯一性。為了達到唯一性的目的,網際網路在命名的時候採用了層次結構的命名方法。每乙個網域名稱(本文只討論英文網域名稱)都是乙個標號序列(labels),用字母(a-z,a-z,大小寫等價)、數字(0-9)和連線符(-)組成,標號序列總長度不能超過255個字元,它由點號分割成乙個個的標號(label),每個標號應該在63個字元之內,每個標號都可以看成乙個層次的網域名稱。級別最低的網域名稱寫在左邊,級別最高的網域名稱寫在右邊。網域名稱服務主要是基於udp實現的,伺服器的埠號為53。

比如:本**的網域名稱jocent.me,由點號分割成了兩個網域名稱jocentme,其中me是頂級網域名稱(tld,top-level domain),jocent是二級網域名稱(sld,second level domain)。關於網域名稱的層次結構,請看下面的示意圖。

注意:最開始的網域名稱最後都是帶了點號的,比如jocent.me擱以前的話應該是jocent.me.,最後面的點號表示根網域名稱伺服器,後來發現所有的**都要加上最後的點,就簡化了寫法,乾脆所有的都不加,但是你在**後面加上點號也是可以正常解析的。

1.2. 網域名稱伺服器

有網域名稱結構還不行,還需要有乙個東西去解析網域名稱,手機通訊錄是由通訊錄軟體解析的,網域名稱需要由遍及全世界的網域名稱伺服器去解析,網域名稱伺服器實際上就是裝有網域名稱系統的主機。由高向低進行層次劃分,可分為以下幾大類:

1.3. 網域名稱解析過程

網域名稱解析總體可分為兩大步驟,第乙個步驟是本機向本地網域名稱伺服器發出乙個dns請求報文,報文裡攜帶需要查詢的網域名稱;第二個步驟是本地網域名稱伺服器向本機回應乙個dns響應報文,裡面包含網域名稱對應的ip位址。從下面對jocent.me進行網域名稱解析的報文中可明顯看出這兩大步驟。注意:第二大步驟中採用的是迭代查詢,其實是包含了很多小步驟的,詳情見下面的流程分析。

其具體的流程可描述如下:

主機10.74.36.90先向本地網域名稱伺服器10.74.1.11進行遞迴查詢本地網域名稱伺服器採用迭代查詢,向乙個根網域名稱伺服器進行查詢

本地網域名稱伺服器向頂級網域名稱伺服器dns.me進行查詢

本地網域名稱伺服器向許可權伺服器dns.jocent.me進行查詢

許可權伺服器dns.jocent.me告訴本地網域名稱伺服器所查詢的主機的ip位址

本地網域名稱伺服器最後把查詢結果告訴 10.74.36.90

其中有兩個概念遞迴查詢和迭代查詢,其實在整個描述的過程中已經體現的很明顯,這裡再說明一下:

請求包截圖:

響應包截圖:

可以看到,響應包比請求包多了一部分「answers」,下面詳解每部分的含義:

1. transaction id為標識字段,2位元組,用於辨別dns應答報文是哪個請求報文的響應,這裡id是0x2376

qr(1bit)

查詢/響應標誌,0為查詢,1為響應

opcode(4bit)

0表示標準查詢,1表示反向查詢,2表示伺服器狀態請求

aa(1bit)

表示授權回答

tc(1bit)

表示可截斷的

rd(1bit)

表示期望遞迴

ra(1bit)

表示可用遞迴

rcode(4bit)

表示返回碼,0表示沒有差錯,3表示名字差錯,2表示伺服器錯誤(server failure)

3. quetions(問題數),2位元組,通常為1

4. answer rrs(資源記錄數)

5. authority rrs(授權資源記錄數)

6. additional rrs(額外資源記錄數)通常為0

7. 欄位queries為查詢或者響應的正文部分,分為name type class

name: 一般該欄位表示的就是需要查詢的網域名稱(如果是反向查詢,則為ip)

type:

型別助記符說明1

a由網域名稱獲得ipv4位址2ns

查詢網域名稱伺服器

5cname

查詢規範名稱

6soa

開始授權

11wks

熟知服務

12ptr

把ip位址轉換成網域名稱

13hinfo

主機資訊

15mx

郵件交換

28aaaa

由網域名稱獲得ipv6位址

252axfr

傳送整個區的請求

255any

對所有記錄的請求

class(類): 2位元組, in 表示internet資料,通常為1

8. 可以看到和請求包相比,響應包多出了乙個answers欄位,該欄位載有回答的資訊。

DNS協議解析過程

dns是網域名稱系統 domain name service 的縮寫,我們通常用來識別主機的方式有兩種,一種是通過主機名,另外一種是通過ip位址。主機名便於我們的記憶,而路由器則更喜歡定長的 有著層次結構的ip位址。所以需要乙個能將網域名稱轉變到ip位址的目錄服務,這就是網域名稱伺服器存在的意義。當...

網域名稱解析協議 DNS

網域名稱系統 英語 domain name system,縮寫 dns 是網際網路的一項服務。它作為將網域名稱和ip位址相互對映的乙個分布式資料庫,能夠使人更方便地訪問網際網路。dns使用tcp和udp埠53。當前,對於每一級網域名稱長度的限制是63個字元,網域名稱總長度則不能超過253個字元。早期...

103 應用層協議 DNS網域名稱解析協議

定義 由於使用ip位址難以對應到每個相應的 使用網域名稱相對而言容易記住,但將每個網域名稱與ip的對應關係放在主機內會消耗大量資源,因此,採用dns伺服器儲存,並用dns網域名稱系統轉換得到ip 網域名稱 網際網路採用層次樹狀結構的網域名稱結構 網域名稱的結構由若干個分量組成,各分量之間用 點 隔開...