用wireshark抓包分析DHCP協(xié)議!數(shù)據(jù)報文單播還是多播?
DHCP動態(tài)主機(jī)分配協(xié)議,在平時我們上網(wǎng)中應(yīng)用得相當(dāng)廣泛,比如家庭上網(wǎng)用的路由器就是一個DHCP服務(wù)器。當(dāng)我們將客戶機(jī)設(shè)置為自動獲取IP地址時,DHCP服務(wù)器就會根據(jù)DHCP協(xié)議給客戶機(jī)分配IP地址。下面我們用wireshark來分析下DHCP協(xié)議是如何工作的。DHCP協(xié)議自動分配IP的報文主要有四種:DHCP Discover:由客戶端發(fā)出,用來發(fā)現(xiàn)DHCP服務(wù)器。DHCP Offer:由DHCP服務(wù)器發(fā)出,告訴客戶端,我可以提供IP地址。DHCP Request:由客戶端發(fā)出,告訴對應(yīng)的DHCP服務(wù)器,我需要IP地址。DHCP ACK:由DHCP服務(wù)器發(fā)出,提供客戶端響應(yīng)的IP地址。下面利用wireshark(版本:3.4.6),win10的環(huán)境,來抓取DHCP報文來分析。先開啟wireshark,利用家庭路由器作為DHCP服務(wù)器。首先斷開網(wǎng)絡(luò)連接,來重現(xiàn)獲取IP地址的過程。這里需要用到兩個命令,ipconfig /release 釋放IP地址,斷開網(wǎng)絡(luò)連接;ipconfig /renew來重新獲取IP地址。在wireshark過濾欄中輸入dhcp,只顯示DHCP數(shù)據(jù)包。其中,釋放IP地址對應(yīng)的數(shù)據(jù)包是DHCP Release數(shù)據(jù)包,我們主要看下面四個數(shù)據(jù)包,對應(yīng)于IP地址獲取的交互過程。0.0.0.0表示網(wǎng)卡還沒有獲取到ip地址,需要向DHCP服務(wù)器申請IP地址。255.255.255.255用來表示本地網(wǎng)絡(luò)的廣播地址,它不能被轉(zhuǎn)發(fā),不能過過網(wǎng)關(guān)。1、DHCP Discover數(shù)據(jù)包:客戶端使用0.0.0.0發(fā)送一個單播數(shù)據(jù)包,目的地址是255.255.255.255,向DHCP服務(wù)器請求分配192.168.16.234這個IP地址。從抓取的數(shù)據(jù)包,我們可以清楚的看出,DHCP屬于應(yīng)用層協(xié)議,傳輸層使用UDP協(xié)議,客戶機(jī)UDP端口68,DHCP服務(wù)器UDP端口67。 2、DHCP Offer數(shù)據(jù)包:DHCP服務(wù)器以單播的形式,回送DHCP Offer,告訴客戶端192.168.16.234地址可用,并給出響應(yīng)的子網(wǎng)掩碼、廣播地址。從這里,也可以看到IP地址的租期是12個小時,租期的1/2是6小時,租期的7/8是10個半小時。3、DHCP Request:客戶端在得到DHCP服務(wù)器回復(fù)IP地址可用后,即請求分配192.168.16.234地址。這個時候,客戶端還沒有獲取到合法的IP地址,只能以0.0.0.0發(fā)送單播數(shù)據(jù)包,目的地址255.255.255.255。4、DHCP ACK:DHCP服務(wù)器收到客戶端請求后,用ACK數(shù)據(jù)包回應(yīng),正式確認(rèn)192.168.16.234分配給該客戶端。從以上四個數(shù)據(jù)包,我們注意到都是以單播的形式發(fā)送數(shù)據(jù)包,discover和request兩個數(shù)據(jù)包雖然在IP層、數(shù)據(jù)鏈路層都是廣播的形式,但在DHCP協(xié)議標(biāo)識的是單播,即最后修改成了單播。至于DHCP協(xié)議中,Bootp flag為什么沒有標(biāo)識成廣播呢,經(jīng)查詢一些資料,主要與是否使用DHCP中繼器廣播字段有關(guān)。這中間還有一個問題,offer和ACK目的地址按理也應(yīng)該是255.255.255.255,為什么現(xiàn)在直接變成了192.168.16.234了呢。個人猜測,是不是因?yàn)闊o線路由器中保留有原客戶端的IP地址,就不再使用廣播地址呢?這個原因,尚不得而知。而且在無線環(huán)境下,直接斷開無線連接下,再重新連接。經(jīng)多次抓包發(fā)現(xiàn),根本就沒有discover和offer的過程,只有最后兩個包request和ACK數(shù)據(jù)包,request數(shù)據(jù)包目的地址是廣播地址,而ACK目的還是單播地址。下次計(jì)劃eNSP模擬有線環(huán)境下DHCP的過程。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報。