DNS抓包分析
TCP/IP原理與應(yīng)用課程作業(yè)一對(duì)DNS 域名系統(tǒng)的抓包分析姓名:XXX學(xué)號(hào):XXXXXXXXXX學(xué)院:計(jì)算機(jī)科學(xué)與工程 ,一、 實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)網(wǎng)絡(luò)抓包試驗(yàn),深刻理解TCP/
TCP/IP原理與應(yīng)用課程作業(yè)一
對(duì)DNS 域名系統(tǒng)的抓包分析
姓名:XXX
學(xué)號(hào):XXXXXXXXXX
學(xué)院:計(jì)算機(jī)科學(xué)與工程
,一、 實(shí)驗(yàn)?zāi)康?/p>
通過(guò)網(wǎng)絡(luò)抓包試驗(yàn),深刻理解TCP/IP協(xié)議簇中DNS 域名系統(tǒng)的使用方式與報(bào)文具體格式與含義,加強(qiáng)對(duì)課程的理解與應(yīng)用。
二、 相關(guān)原理
2.1 DNS的定義
DNS 是域名系統(tǒng) (Domain Name System) 的縮寫(xiě),它是由解析器和域名服務(wù)器組成的。域名服務(wù)器是指保存有該網(wǎng)絡(luò)中所有主機(jī)的域名和對(duì)應(yīng)IP 地址,并具有將域名轉(zhuǎn)換為IP 地址功能的服務(wù)器。其中域名必須對(duì)應(yīng)一個(gè)IP 地址,而IP 地址不一定有域名。域名系統(tǒng)采用類(lèi)似目錄樹(shù)的等級(jí)結(jié)構(gòu)。域名服務(wù)器為客戶機(jī)/服務(wù)器模式中的服務(wù)器方,它主要有兩種形式:主服務(wù)器和轉(zhuǎn)發(fā)服務(wù)器。將域名映射為IP 地址的過(guò)程就稱為“域名解析”。在Internet 上域名與IP 地址之間是一對(duì)一(或者多對(duì)一)的,域名雖然便于人們記憶,但機(jī)器之間只能互相認(rèn)識(shí)IP 地址,它們之間的轉(zhuǎn)換工作稱為域名解析,域名解析需要由專(zhuān)門(mén)的域名解析服務(wù)器來(lái)完成,DNS 就是進(jìn)行域名解析的服務(wù)器。 DNS 命名用于 Internet 等 TCP/IP 網(wǎng)絡(luò)中,通過(guò)用戶友好的名稱查找計(jì)算機(jī)和服務(wù)。當(dāng)用戶在應(yīng)用程序中輸入 DNS 名稱時(shí),DNS 服務(wù)可以將此名稱解析為與之相關(guān)的其他信息,如 IP 地址。因?yàn)?,你在上網(wǎng)時(shí)輸入的網(wǎng)址,是通過(guò)域名解析系統(tǒng)解析找到了相對(duì)應(yīng)的IP 地址,這樣才能上網(wǎng)。其實(shí),域名的最終指向是IP 。
2.2 DNS的構(gòu)成
在IPV4中IP 是由32位二進(jìn)制數(shù)組成的,將這32位二進(jìn)制數(shù)分成4組每組8個(gè)二進(jìn)制數(shù),將這8個(gè)二進(jìn)制數(shù)轉(zhuǎn)化成十進(jìn)制數(shù),就是我們看到的IP 地址,其范圍是在0~255之間。因?yàn)椋?個(gè)二進(jìn)制數(shù)轉(zhuǎn)化為十進(jìn)制數(shù)的最大范圍就是0~255?,F(xiàn)在已開(kāi)始試運(yùn)行、將來(lái)必將代替IPv4的IPV6中,將以128位二進(jìn)制數(shù)表示一個(gè)IP 地址。
2.3 DNS的查詢
DNS 查詢可以有兩種解釋?zhuān)环N是指客戶端查詢指定DNS 服務(wù)器上的資源記錄(如A 記錄),另一種是指查詢FQDN 名的解析過(guò)程。
一、查詢DNS 服務(wù)器上的資源記錄
您可以在Windows 平臺(tái)下,使用命令行工具,輸入nslookup ,返回的結(jié)果包括域名對(duì)應(yīng)的IP 地址(A 記錄)、別名(CNAME 記錄)等。除了以上方法外,還可以通過(guò)一些DNS 查詢站點(diǎn)如國(guó)外的國(guó)內(nèi)的 查詢域名的DNS 信息。
二、FQDN 名的解析過(guò)程查詢
若想跟蹤一個(gè)FQDN 名的解析過(guò)程,在Linux Shell下輸入dig www trace,返回的結(jié)果包括從跟域開(kāi)始的遞歸或迭代過(guò)程,一直到權(quán)威域名服務(wù)器。
2.4 DNS的報(bào)文格式
DNS 報(bào)文的首部:
,


DNS 報(bào)文首部的后面是可變部分,包括四個(gè)小部分。 問(wèn)題部分由一組問(wèn)題記錄組成。

圖2-4 DNS 報(bào)文問(wèn)題記錄格式
DNS 報(bào)文的其余三個(gè)部分是回答部分、授權(quán)部分和附加信息部分,附加信息包含回答部分和授權(quán)部分返回的資源所要求的附加信息(如IP 地址)。這三部分均由一組資源記錄組成,而且僅在應(yīng)答報(bào)文中出現(xiàn)。一條資源記錄描述一個(gè)域名。
三、 結(jié)合具體抓包實(shí)例進(jìn)行的分析
3.1協(xié)議數(shù)據(jù)包窗口
,
從包到達(dá)的時(shí)間,順序以及源和目的IP 地址可知,這是一對(duì)DNS 請(qǐng)求與應(yīng)答報(bào)文。下圖為1號(hào)包與2號(hào)包中DNS 段的報(bào)文分析注釋?zhuān)纱丝勺C明,包1為DNS 請(qǐng)求報(bào)文,包2為包1的應(yīng)答報(bào)文,請(qǐng)求與應(yīng)答報(bào)文的到達(dá)間隔時(shí)間為0.022177000s ,它們的標(biāo)識(shí)字段都為0xf03aH ,用于相互匹配。


因?yàn)镈NS 請(qǐng)求報(bào)文的目的是請(qǐng)求www.soku.com 的IP 地址,故包1的源IP 地址為本機(jī)IP ,目的IP 地址為DNS 服務(wù)器的IP ,包2與包1相反。 3.2協(xié)議樹(shù)窗口 DNS 請(qǐng)求報(bào)文:

DNS 應(yīng)答報(bào)文:

可以看出,DNS 請(qǐng)求報(bào)文與應(yīng)答報(bào)文鏈路層的MAC 地址相反,請(qǐng)求報(bào)文中的源物理地址為本機(jī)的物理地址,這與IP 地址相對(duì)應(yīng)。此外,DNS 請(qǐng)求報(bào)文與應(yīng)答報(bào)文傳輸層中UDP 的源端口與目的端口相反,其中請(qǐng)求報(bào)文UDP 的源端口為客戶機(jī)動(dòng)態(tài)申請(qǐng)的本地端口,目的端口為DNS 所固有的53號(hào)周知端口。這兩點(diǎn)都體現(xiàn)了DNS 請(qǐng)求報(bào)文與應(yīng)答報(bào)文間的請(qǐng)求-應(yīng)答關(guān)系。
DNS 請(qǐng)求報(bào)文與應(yīng)答報(bào)文協(xié)議樹(shù)窗口顯示的協(xié)議層次與網(wǎng)絡(luò)協(xié)議的層次對(duì)應(yīng)相

DNS 請(qǐng)求報(bào)文:
,
DNS 應(yīng)答報(bào)文:

以上兩張圖分別給出了DNS 請(qǐng)求報(bào)文與應(yīng)答報(bào)文的時(shí)間參數(shù)、包號(hào)、長(zhǎng)度與協(xié)議層次,在此不一一細(xì)說(shuō)。但是,我們可以很清楚的看出,DNS 請(qǐng)求報(bào)文的長(zhǎng)度為72字節(jié),而應(yīng)答報(bào)文的長(zhǎng)度為156字節(jié),比請(qǐng)求報(bào)文長(zhǎng)得多。這是由于在DNS 應(yīng)答報(bào)文中,具有請(qǐng)求報(bào)文所沒(méi)有的回答部分、授權(quán)部分與附加部分,在下面的應(yīng)答報(bào)文分析中會(huì)具體說(shuō)明。
3.4數(shù)據(jù)鏈路層節(jié)點(diǎn)
DNS 請(qǐng)求報(bào)文:

DNS 應(yīng)答報(bào)文:

由上圖可以更明顯的看出,DNS 請(qǐng)求與應(yīng)答報(bào)文的源與目的MAC 地址的相反現(xiàn)象。此外,DNS 請(qǐng)求與應(yīng)答報(bào)文以太網(wǎng)協(xié)議中的類(lèi)型均為IP ,即在DNS 協(xié)議層次中網(wǎng)絡(luò)層協(xié)議為IP ,這體現(xiàn)了DNS 作為T(mén)CP/IP協(xié)議簇中協(xié)議的特點(diǎn)。
3.5 IP節(jié)點(diǎn)
DNS 請(qǐng)求報(bào)文:
,
DNS 應(yīng)答報(bào)文:

DNS 請(qǐng)求與應(yīng)答報(bào)文IP 層相同點(diǎn):
版本號(hào):IPv4
首部長(zhǎng)度:20字節(jié),沒(méi)有其他選項(xiàng)
服務(wù)類(lèi)型:最低優(yōu)先級(jí)的一般服務(wù)
片偏移:0,無(wú)分片
協(xié)議標(biāo)識(shí):UDP (0x11H )
DNS 請(qǐng)求與應(yīng)答報(bào)文IP 層不同點(diǎn):
數(shù)據(jù)報(bào)長(zhǎng)度:上文已有分析。
標(biāo)識(shí)不同,因?yàn)檎?qǐng)求與應(yīng)答為兩個(gè)不同的報(bào)文,信源機(jī)給予的用于區(qū)分分片的標(biāo)識(shí)不同。
生存時(shí)間不同,請(qǐng)求報(bào)文為64,應(yīng)答報(bào)文為60。
校驗(yàn)和不同,DNS 請(qǐng)求與應(yīng)答報(bào)文IP 層首部不同,故校驗(yàn)和不同。 源與目的IP 地址不同,原因在前面的分析中已經(jīng)說(shuō)明。
3.6 UDP節(jié)點(diǎn)
DNS 請(qǐng)求報(bào)文:
,
DNS 應(yīng)答報(bào)文:

DNS 請(qǐng)求與應(yīng)答報(bào)文的源與目的端口相反,原因在前面的分析中已經(jīng)說(shuō)明。 請(qǐng)求報(bào)文UDP 長(zhǎng)度為38字節(jié),應(yīng)答報(bào)文UDP 長(zhǎng)度為122字節(jié)。
3.7DNS 節(jié)點(diǎn)
3.7.1DNS 請(qǐng)求報(bào)文
首部:

標(biāo)識(shí)字段:0xf03aH ,用于匹配請(qǐng)求與響應(yīng)
標(biāo)志字段:0x0100H
QR :0,為請(qǐng)求報(bào)文
OpCode :0000(0),標(biāo)準(zhǔn)查詢(正向解析)
AA :0,此字段只在服務(wù)器的響應(yīng)中有效,在上圖中不顯示
TC :0,報(bào)文沒(méi)有被截?cái)?/p>
RD :1,請(qǐng)求服務(wù)器進(jìn)行遞歸解析
RA :0,此字段只在服務(wù)器的響應(yīng)中有效,在上圖中不顯示
3比特保留位:000
rCode :0000,沒(méi)有錯(cuò)誤
問(wèn)題記錄數(shù):1
回答記錄數(shù):0(DNS 請(qǐng)求報(bào)文此字段為0)
,授權(quán)記錄數(shù):0(DNS 請(qǐng)求報(bào)文此字段為0)
附加信息記錄數(shù):0(DNS 請(qǐng)求報(bào)文此字段為0)
問(wèn)題部分:

詢問(wèn)名:可變長(zhǎng),在此為14字節(jié),由標(biāo)號(hào)序列組成,每個(gè)標(biāo)號(hào)前有一個(gè)字節(jié)指出該標(biāo)號(hào)的字節(jié)長(zhǎng)度,0長(zhǎng)度表示名稱結(jié)束。具體表示:

3www4soku3com0
詢問(wèn)類(lèi)型:A ,數(shù)值為1,記錄類(lèi)型為IPv4地址,用于域名到IPv4地址的轉(zhuǎn)換。 詢問(wèn)類(lèi):IN ,數(shù)值為1,表示因特網(wǎng)協(xié)議。
3.7.2DNS 應(yīng)答報(bào)文
首部:

標(biāo)識(shí)字段:0xf03aH ,用于匹配請(qǐng)求與響應(yīng),此處與DNS 請(qǐng)求報(bào)文相匹配。 標(biāo)志字段:0x8180H
QR :1,為應(yīng)答報(bào)文
OpCode :0000(0),標(biāo)準(zhǔn)查詢(正向解析)(與請(qǐng)求報(bào)文相同)
AA :0,回答的服務(wù)器是該域的授權(quán)服務(wù)器
TC :0,報(bào)文沒(méi)有被截?cái)?/p>
RD :1,請(qǐng)求服務(wù)器進(jìn)行遞歸解析(與請(qǐng)求報(bào)文相同)
RA :1,服務(wù)器支持遞歸解析(回應(yīng)RD )
3比特保留位:000
rCode :0000,沒(méi)有錯(cuò)誤
問(wèn)題記錄數(shù):1
回答記錄數(shù):1
,授權(quán)記錄數(shù):2
附加信息記錄數(shù):2
問(wèn)題部分:

與請(qǐng)求報(bào)文相同,即作為DNS 請(qǐng)求報(bào)文的回答,DNS 應(yīng)答報(bào)文的問(wèn)題部分就是請(qǐng)求報(bào)文的問(wèn)題部分的拷貝。
回答部分:

域名:0xC00CH ,為指向問(wèn)題部分詢問(wèn)名的指針,具體地址為00000000001100(二進(jìn)制地址)
類(lèi)型:A ,數(shù)值為1,記錄類(lèi)型為IPv4地址,用于域名到IPv4地址的轉(zhuǎn)換。 類(lèi):IN ,數(shù)值為1,表示因特網(wǎng)協(xié)議。
生存時(shí)間:15min
資源數(shù)據(jù)長(zhǎng)度:4字節(jié)
資源數(shù)據(jù):給出查詢得到IP 地址,211.151.50.103
授權(quán)部分:

在此部分中,授權(quán)由2條資源記錄組成。
附加信息:

在此部分中,附加信息仍由2條資源記錄組成。
由于此處授權(quán)和附加信息含義基本一目了然,這里不進(jìn)行贅述了,至此,本次DNS 抓包實(shí)驗(yàn)的分析基本結(jié)束了,下面是本次實(shí)驗(yàn)的個(gè)人小結(jié)。
四、 體會(huì)與小結(jié)
經(jīng)過(guò)本次對(duì)DNS 域名系統(tǒng)的抓包實(shí)驗(yàn)的分析,我加深了對(duì)DNS 域名系統(tǒng)的理解和掌握。首先從DNS 的含義上,DNS 是由解析器和域名服務(wù)器組成的,其中,域名服務(wù)器是指保存有該網(wǎng)絡(luò)中所有主機(jī)的域名和對(duì)應(yīng)IP 地址,并具有將域名轉(zhuǎn)換為IP 地址功能的服務(wù)器。它主要有主服務(wù)器和轉(zhuǎn)發(fā)服務(wù)器兩種形式。在理解了DNS 的含義后,我又對(duì)其具體構(gòu)成進(jìn)行了深入的掌握和理解。本次實(shí)驗(yàn),也讓我對(duì)DNS 的理解達(dá)到了理論與實(shí)際相結(jié)合的程度。另外,我也通過(guò)實(shí)驗(yàn)初步掌握了軟件Wireshark 的使用,也讓我感受到了親自動(dòng)手進(jìn)行實(shí)驗(yàn)的樂(lè)趣,并充分提升了我對(duì)TCP/IP這門(mén)課程的學(xué)習(xí)興趣。相信在未來(lái)的學(xué)習(xí)生活中,我也將通過(guò)自己的努力,更好的掌握TCP/IP這門(mén)課程,并更多的講理論運(yùn)用于實(shí)際。