DNS報(bào)文研究 通過抓包分析dig trace跟蹤全過程
從dig www.jszhdc.cn trace @221.131.143.69 抓包分析dig 的報(bào)文作者 wujunfengDNS 報(bào)文大小分析在UDP 數(shù)據(jù)報(bào)中的用戶數(shù)據(jù)長度顯示為37字節(jié):1
從dig www.jszhdc.cn trace @221.131.143.69 抓包分析dig 的報(bào)文
作者 wujunfeng
DNS 報(bào)文大小分析
在UDP 數(shù)據(jù)報(bào)中的用戶數(shù)據(jù)長度顯示為37字節(jié):
12字節(jié)為固定長度的報(bào)文首部,
21字節(jié)為查詢名字,
以及用于查詢類型和查詢類的4個(gè)字節(jié)。
在DNS 報(bào)文中無需填充數(shù)據(jù)。
查詢結(jié)果中的U DP數(shù)據(jù)長度: 69字節(jié)。為說明這些字節(jié)需要知道以下兩點(diǎn):
1) 在返回的結(jié)果中包含查詢問題。
2) 在返回的結(jié)果中會(huì)有許多重復(fù)的域名,因此使用壓縮方式。在這個(gè)例子中,域名 gemini.tuc.noao.edu 出現(xiàn)了三次。
壓縮方法:當(dāng)一個(gè)域名中的標(biāo)識符是壓縮的,它的單計(jì)數(shù)字節(jié)(范圍由0~6 3)中的最高兩位將被設(shè)置為11。這表示它是一個(gè)16 bit指針而不再是8 bit的計(jì)數(shù)字節(jié)。
指針中的剩下14 bit說明在該D N S報(bào)文中標(biāo)識符所在的位置(起始位置由標(biāo)識字段的第一字節(jié)起算)。


只要一個(gè)標(biāo)識符是壓縮的,就可以使用這種指針,而不一定非要一個(gè)完整的域名壓縮時(shí)才能使用。因?yàn)橐粋€(gè)指針可能指向一個(gè)完整的域名,也可能只指向域名的結(jié)尾部分(這是因?yàn)榻o定域名的結(jié)尾標(biāo)識符是相同的)。
顯示了在問題部分的域名中各標(biāo)識符的計(jì)數(shù)字節(jié)。
在這個(gè)例子中,每個(gè)回答中的指針值為12,表示從DNS 首部開始的偏移量。
====================================================
C:Userswjf>dig www.jszhdc.cn trace @221.131.143.69
; <<>> DiG 9.3.2 <<>> www.jszhdc.cn trace @221.131.143.69
; (1 server found)
;; global options: printcmd
. 498578 IN NS b.root-servers.net.
. 498578 IN NS m.root-servers.net.
. 498578 IN NS f.root-servers.net.
. 498578 IN NS l.root-servers.net.
. 498578 IN NS d.root-servers.net.
. 498578 IN NS k.root-servers.net.
. 498578 IN NS e.root-servers.net.
. 498578 IN NS h.root-servers.net.
. 498578 IN NS c.root-servers.net.
. 498578 IN NS g.root-servers.net.
. 498578 IN NS i.root-servers.net.
. 498578 IN NS a.root-servers.net.
. 498578 IN NS j.root-servers.net.
. 514216 IN RRSIG NS 8 0 518400 20140713000000 201 40705230000 8230 . jgMKRM9a9AWVdIMwO7RR0qmXT dGgvIv9lDt0bFEAMsM6tzSyHpwv80 QyQO
5141EwQxPSjsuQ P6e3XcozCLxx/kZP2M4iQ9LsaZlWKoYfAqQsh
VmdorU8ZRANfOS9167vgW8K7eCk
KaF82SC0LAwM0vpVmuE0yzPvj715r zqU=
;; Received 913 bytes from 221.131.143.69#53(221.131.143.69) in 70 ms
cn. 172800 IN NS e.dns.cn.
cn. 172800 IN NS a.dns.cn.
cn. 172800 IN NS c.dns.cn.
cn. 172800 IN NS d.dns.cn.
cn. 172800 IN NS b.dns.cn.
cn. 172800 IN NS ns.cernet.net.
;; Received 294 bytes from 192.228.79.201#53(b.root-servers.net) in 230 ms
,jszhdc.cn. 86400 IN NS dns2.jiangsumobile.com.
jszhdc.cn. 86400 IN NS dns1.jiangsumobile.com.
;; Received 86 bytes from 203.119.29.1#53(e.dns.cn) in 240 ms
www.jszhdc.cn. 43200 IN A 221.178.251.141
jszhdc.cn. 43200 IN NS dns1.jiangsumobile.com.
jszhdc.cn. 43200 IN NS dns2.jiangsumobile.com.
;; Received 134 bytes from 211.103.13.101#53(dns2.jiangsumobile.com) in 130 ms
經(jīng)過分析發(fā)現(xiàn),dig trace,是客戶端直接與各個(gè)DNS 進(jìn)行報(bào)文交互的(并不是通過221.131.143.69與各個(gè)DNS 交互),同時(shí)會(huì)調(diào)用本地DNS
使用dig trace @221.131.143.69中的@221.131.143.6只是為了從221.131.143.69獲取到13個(gè)根DNS 的域名,
如下是抓包分析192.168.0.115是客戶端電腦的IP


如下是dig trace的第一個(gè)請求報(bào)文(向dig @指定IP 發(fā)起請求)
如下是dig trace的第二個(gè)響應(yīng)報(bào)文
注意在answers 中有14條紀(jì)錄, b.root-servers.net. 排在第一個(gè),
additional 有25條紀(jì)錄


而additional 有25條紀(jì)錄,有的根DNS 除了返回A 紀(jì)錄,另外還多返回一條AAAA 紀(jì)錄


如下是dig trace的第三個(gè)請求報(bào)文(向本地DNS 發(fā)起請求)
當(dāng)前本地DNS 為192.168.0.1,正好與網(wǎng)關(guān)地址一樣,如果本地DNS 為114.114.114.114,則目地DNS 會(huì)變?yōu)?14.114.114.114
如下是dig trace的第四個(gè)響應(yīng)報(bào)文(本地DNS 響應(yīng))


如下是dig trace的第五個(gè)請求報(bào)文(向b.root-servers.net 請求)
如下是dig trace的第六個(gè)響應(yīng)報(bào)文 (b.root-servers.net響應(yīng))


如下是dig trace的第七個(gè)請求報(bào)文(向本地DNS 發(fā)起請求)


如下是dig trace的第八個(gè)響應(yīng)報(bào)文(本地DNS 響應(yīng))
如下是dig trace的第9個(gè)請求報(bào)文(發(fā)給e.dns.cn)

