成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

DNS協議分析_wireshark

1.1 DNS識別主機有兩種方式:主機名、IP 地址。前者便于記憶,但路由器很難處理(主機名長度不定) ;后者定長、有層次結構,便于路由器處理,但難以記憶。折中的辦法就是建立IP 地址與主機名間的映射

1.1 DNS

識別主機有兩種方式:主機名、IP 地址。前者便于記憶,但路由器很難處理(主機名長度不定) ;后者定長、有層次結構,便于路由器處理,但難以記憶。折中的辦法就是建立IP 地址與主機名間的映射,這就是域名系統DNS 做的工作。DNS 通常由其他應用層協議使用(如HTTP 、SMTP 、FTP) ,將主機名解析為IP 地址,其運行在UDP 之上,使用53號端口。 注:DNS 除了提供主機名到IP 地址轉換外,還提供如下服務:主機別名、郵件服務器別名、負載分配。

1.2 HTTP使用DNS 情形

考慮這樣的操作,在瀏覽器輸入http://www.baidu.com/index.html并回車,首先需要將URL(存放對象的服務器主機名和對象的路徑名) 解析成IP 地址,具體步驟為:

(1)同一臺用戶主機上運行著DNS 應用的客戶機端(如瀏覽器)

(2)從上述URL 抽取主機名www.baidu.com ,傳給DNS 應用的客戶機端(瀏覽器)

(3)該DNS 客戶機向DNS 服務器發(fā)送一個包含主機名的請求(DNS 查詢報文)

(4)該DNS 客戶機收到一份回答報文(即DNS 回答報文) ,該報文包含該主機名對應的IP 地址119.75.218.70

(5)瀏覽器由該IP 地址定位的HTTP 服務器發(fā)送一個TCP 鏈接

用Wireshark 捕獲的DNS 報文如下圖,顯然第一行是DNS 查詢報文,第二行是DNS 回答報文。

圖1 Wireshark捕獲的DNS 報文

二、DNS 報文

2.1 DNS報文格式

DNS 只有兩種報文:查詢報文、回答報文,兩者有著相同格式,如下:

,

圖2 DNS

報文格式

2.1.1 首部區(qū)域

標識數

對該查詢進行標識,該標識會被復制到對應的回答報文中,客戶機用它來匹配發(fā)送的請求與接收到的回答。

標志[1]

圖3 DNS報文首部區(qū)域的標志

QR(1比特) :查詢/響應的標志位,1為響應,0為查詢。

opcode(4比特) :定義查詢或響應的類型(若為0則表示是標準的,若為1則是反向的,若為2則是服務器狀態(tài)請求) 。

AA(1比特) :授權回答的標志位。該位在響應報文中有效,1表示名字服務器是權限服務器(關于權限服務器以后再討論)

TC(1比特) :截斷標志位。1表示響應已超過512字節(jié)并已被截斷(依稀好像記得哪里提過這個截斷和UDP 有關,先記著)

RD(1比特) :該位為1表示客戶端希望得到遞歸回答(遞歸以后再討論)

,

RA(1比特) :只能在響應報文中置為1

,表示可以得到遞歸響應。

zero(3比特) :不說也知道都是0了,保留字段。

rcode(4比特) :返回碼,表示響應的差錯狀態(tài),通常為0和3,各取值含義如下: 0 無差錯

1 格式差錯

2 問題在域名服務器上

3 域參照問題

4 查詢類型不支持

5 在管理上被禁止

6 -- 15 保留

問題數、回答RR 數、權威RR 數、附加RR 數

這四個字段都是兩字節(jié),分別對應下面的查詢問題、回答、授權和附加信息部分的數量。一般問題數都為1,DNS 查詢報文中,資源記錄數、授權資源記錄數和附加資源記錄數都為0[1]。

2.1.2 區(qū)域

(1)問題區(qū)域

包含正在進行的查詢信息。包含查詢名(被查詢主機名字的名字字段) 、查詢類型、查詢類。

圖4 DNS報文的問題區(qū)域

,

查詢名

查詢名部分長度不定,一般為要查詢的域名(也會有IP 的時候,即反向查詢) 。此部分由一個或者多個標示符序列組成,每個標示符以首字節(jié)數的計數值來說明該標示符長度,每個名字以0結束。計數字節(jié)數必須是0~63之間。該字段無需填充字節(jié)。還是借個例子來說明更直觀些,查詢名為gemini.tuc.noao.edu 的話,查詢名字段如下[1]:

圖5 DNS報文問題區(qū)別的查詢名

查詢類型

通常查詢類型為A(由名字獲得IP 地址) 或者PTR(獲得IP 地址對應的域名) ,類型列表如下:

表1 DNS報文查詢類型

NS 記錄指定了名字服務器。一般情況,每個DNS 數據庫中,針對每個頂級域都會有一條NS 記錄,這樣一來,電子郵件就可以被發(fā)送到域名樹中遠處的部分。

查詢類

通常為1,指Internet 數據。

,

(2)回答、權威、附加區(qū)域

回答區(qū)域包含了最初請求名字的資源記錄,一個回答報文的回答區(qū)域可以包含多條資料記錄RR(因為一個主機名可以對應多個IP

地址,冗余Web 服務器) 。權威區(qū)域包含了其他權威DNS 服務器的記錄。附加區(qū)域包含其他一些" 有幫助" 的記錄,例如,對于一個MX(郵件交換) 請求的回答報文中,回答區(qū)域包含一條資料記錄(該記錄提供郵件服務器的規(guī)范主機名) ,附加區(qū)域可以包含一條類型A 記錄(該記錄提供了該郵件服務器的規(guī)范主機名的IP 地址) 。

每條資料記錄是一個五元組,如下:

(域名,生存期,類別,類型,值)

直接表示如下[1]:

圖6 DNS報文的資源記錄

域名(2字節(jié)或不定長)

記錄中資源數據對應的名字,它的格式和查詢名字段格式相同。當報文中域名重復出現時,就需要使用2字節(jié)的偏移指針來替換。例如,在資源記錄中,域名通常是查詢問題部分的域名的重復,就需要用指針指向查詢問題部分的域名。關于指針怎么用,TCP/IP詳解里面有,即2字節(jié)的指針,最前面的兩個高位是11,用于識別指針。其他14位從報文開始處計數(從0開始) ,指出該報文中的相應字節(jié)數。注意,DNS 報文的第一個字節(jié)是字節(jié)0,第二個報文是字節(jié)1。一般響應報文中,資源部分的域名都是指針

C00C(1100000000001100,12正好是首部區(qū)域的長度) ,剛好指向請求部分的域名[1]。

,

類型(記錄的類型,見表1)

A 記錄,Name 是主機名,Value 是該主機名的IP 地址,因此,一條類型為A 的資源記錄提供了標準的主機名到IP 地址的映射。

NS 記錄,Name 是域(如foo.com) ,Value 是知道如何獲得該域中主機IP 地址的權威DNS 服務器的主機名(如dns.foo.com) ,這個記錄常用于沿著查詢鏈進一步路由DNS 查詢。 CNAME 記錄,Name 是主機別名,Value 是主機別名對應的規(guī)范主機名,該記錄能夠向請求主機提供一個主機名對應的規(guī)范主機名。

MX 記錄,Name 是郵件服務器別名,Value 是郵件服務器別名的規(guī)范主機名。通過MX 記錄,一個公司的郵件服務器和其他服務器可以使用相同的別名。

注:有著復雜主機名的主機能擁有多個別名,前者稱為規(guī)范主機名,后者稱為主機別名(便于記憶) 。

對于Internet 信息,它總是IN 。

生存時間

用于指示該記錄的穩(wěn)定程度,極為穩(wěn)定的信息會被分配一個很大的值(如86400,一天的秒數) 。該字段表示資源記錄的生命周期(以秒為單位) ,一般用于當地址解析程序取出資源記錄后決定保存及使用緩存數據的時間[1]。

資源數據長度(2字節(jié))

表示資源數據的長度(以字節(jié)為單位,如果資源數據為IP 則為0004) 。

資源數據

該字段是可變長字段,表示按查詢段要求返回的相關資源記錄的數據。

2.2 DNS查詢報文實例

以www.baidu.com 為例,用Wireshark 俘獲分組,結合2.1的理論內容,很容易看明白的,DNS 請求報文如下:

,

圖7 DNS請求報文示例

2.3 DNS回答報文實例

,

圖8 DNS回答報文示例

標簽: