dhcp抓包及報(bào)文分析 - 全文
DHCP簡(jiǎn)介
DHCP(Dynamic Host Configuration Protocol),動(dòng)態(tài)主機(jī)配置協(xié)議,是一個(gè)應(yīng)用層協(xié)議。當(dāng)我們將客戶主機(jī)ip地址設(shè)置為動(dòng)態(tài)獲取方式時(shí),DHCP服務(wù)器就會(huì)根據(jù)DHCP協(xié)議給客戶端分配IP,使得客戶機(jī)能夠利用這個(gè)IP上網(wǎng)。
DHCP的前身是BOOTP協(xié)議(Bootstrap Protocol),BOOTP被創(chuàng)建出來(lái)為連接到網(wǎng)絡(luò)中的設(shè)備自動(dòng)分配地址,后來(lái)被DHCP取代了,DHCP比BOOTP更加復(fù)雜,功能更強(qiáng)大。后面可以看到,在用Wireshark過(guò)濾顯示DHCP包,需要輸入過(guò)濾條件BOOTP,而不是DHCP,但或許是因?yàn)槲沂褂玫腤ireshark版本是比較舊的1.12.9,沒(méi)有在新版本中嘗試過(guò),也許可以輸入DHCP讓其只顯示DHCP包。
DHCP的實(shí)現(xiàn)
DHCP的實(shí)現(xiàn)分為4步,分別是:
第一步:Client端在局域網(wǎng)內(nèi)發(fā)起一個(gè)DHCP Discover包,目的是想發(fā)現(xiàn)能夠給它提供IP的DHCP Server。
第二步:可用的DHCP Server接收到Discover包之后,通過(guò)發(fā)送DHCP Offer包給予Client端應(yīng)答,意在告訴Client端它可以提供IP地址。
第三步:Client端接收到Offer包之后,發(fā)送DHCP Request包請(qǐng)求分配IP。
第四步:DHCP Server發(fā)送ACK數(shù)據(jù)包,確認(rèn)信息。
DHCP協(xié)議與抓包分析
DHCP協(xié)議采用UDP作為傳輸協(xié)議,主機(jī)發(fā)送請(qǐng)求消息到DHCP服務(wù)器的67號(hào)端口,DHCP服務(wù)器回應(yīng)應(yīng)答消息給主機(jī)的68號(hào)端口。詳細(xì)的交互過(guò)程如下圖。
DHCP Client以廣播的方式發(fā)出DHCP Discover報(bào)文。
所有的DHCP Server都能夠接收到DHCP Client發(fā)送的DHCP Discover報(bào)文,所有的DHCP Server都會(huì)給出響應(yīng),向DHCP Client發(fā)送一個(gè)DHCP Offer報(bào)文。
DHCP Offer報(bào)文中“Your(Client) IP Address”字段就是DHCP Server能夠提供給DHCP Client使用的IP地址,且DHCP Server會(huì)將自己的IP地址放在“option”字段中以便DHCP Client區(qū)分不同的DHCP Server。DHCP Server在發(fā)出此報(bào)文后會(huì)存在一個(gè)已分配IP地址的紀(jì)錄。
DHCP Client只能處理其中的一個(gè)DHCP Offer報(bào)文,一般的原則是DHCP Client處理最先收到的DHCP Offer報(bào)文。
DHCP Client會(huì)發(fā)出一個(gè)廣播的DHCP Request報(bào)文,在選項(xiàng)字段中會(huì)加入選中的DHCP Server的IP地址和需要的IP地址。
DHCP Server收到DHCP Request報(bào)文后,判斷選項(xiàng)字段中的IP地址是否與自己的地址相同。如果不相同,DHCP Server不做任何處理只清除相應(yīng)IP地址分配記錄;如果相同,DHCP Server就會(huì)向DHCP Client響應(yīng)一個(gè)DHCP ACK報(bào)文,并在選項(xiàng)字段中增加IP地址的使用租期信息。
DHCP Client接收到DHCP ACK報(bào)文后,檢查DHCP Server分配的IP地址是否能夠使用。如果可以使用,則DHCP Client成功獲得IP地址并根據(jù)IP地址使用租期自動(dòng)啟動(dòng)續(xù)延過(guò)程;如果DHCP Client發(fā)現(xiàn)分配的IP地址已經(jīng)被使用,則DHCP Client向DHCPServer發(fā)出DHCP Decline報(bào)文,通知DHCP Server禁用這個(gè)IP地址,然后DHCP Client開(kāi)始新的地址申請(qǐng)過(guò)程。
DHCP Client在成功獲取IP地址后,隨時(shí)可以通過(guò)發(fā)送DHCP Release報(bào)文釋放自己的IP地址,DHCP Server收到DHCP Release報(bào)文后,會(huì)回收相應(yīng)的IP地址并重新分配。
在使用租期超過(guò)50%時(shí)刻處,DHCP Client會(huì)以單播形式向DHCP Server發(fā)送DHCPRequest報(bào)文來(lái)續(xù)租IP地址。如果DHCP Client成功收到DHCP Server發(fā)送的DHCP ACK報(bào)文,則按相應(yīng)時(shí)間延長(zhǎng)IP地址租期;如果沒(méi)有收到DHCP Server發(fā)送的DHCP ACK報(bào)文,則DHCP Client繼續(xù)使用這個(gè)IP地址。
在使用租期超過(guò)87.5%時(shí)刻處,DHCP Client會(huì)以廣播形式向DHCP Server發(fā)送DHCPRequest報(bào)文來(lái)續(xù)租IP地址。如果DHCP Client成功收到DHCP Server發(fā)送的DHCP ACK報(bào)文,則按相應(yīng)時(shí)間延長(zhǎng)IP地址租期;如果沒(méi)有收到DHCP Server發(fā)送的DHCP ACK報(bào)文,則DHCP Client繼續(xù)使用這個(gè)IP地址,直到IP地址使用租期到期時(shí),DHCP Client才會(huì)向DHCP Server發(fā)送DHCP Release報(bào)文來(lái)釋放這個(gè)IP地址,并開(kāi)始新的IP地址申請(qǐng)過(guò)程。
需要說(shuō)明的是:DHCP客戶端可以接收到多個(gè)DHCP服務(wù)器的DHCPOFFER數(shù)據(jù)包,然后可能接受任何一個(gè)DHCPOFFER數(shù)據(jù)包,但客戶端通常只接受收到的第一個(gè)DHCPOFFER數(shù)據(jù)包。另外,DHCP服務(wù)器DHCPOFFER中指定[1] 的地址不一定為最終分配的地址,通常情況下,DHCP服務(wù)器會(huì)保留該地址直到客戶端發(fā)出正式請(qǐng)求。
正式請(qǐng)求DHCP服務(wù)器分配地址DHCPREQUEST采用廣播包,是為了讓其它所有發(fā)送DHCPOFFER數(shù)據(jù)包的DHCP服務(wù)器也能夠接收到該數(shù)據(jù)包,然后釋放已經(jīng)OFFER(預(yù)分配)給客戶端的IP地址。
如果發(fā)送給DHCP客戶端的地址已經(jīng)被其他DHCP客戶端使用,客戶端會(huì)向服務(wù)器發(fā)送DHCPDECLINE信息包拒絕接受已經(jīng)分配的地址信息。
在協(xié)商過(guò)程中,如果DHCP客戶端發(fā)送的REQUEST消息中的地址信息不正確,如客戶端已經(jīng)遷移到新的子網(wǎng)或者租約已經(jīng)過(guò)期,DHCP服務(wù)器會(huì)發(fā)送DHCPNAK消息給DHCP客戶 端,讓客戶端重新發(fā)起地址請(qǐng)求過(guò)程。
OP:若是client送給server的封包,設(shè)置為1,反方向?yàn)?
Hlen:硬件長(zhǎng)度,ethernet為6
Hops:若數(shù)據(jù)包需經(jīng)過(guò)router發(fā)送,每站加1,若在同一網(wǎng)內(nèi),為0
Transaction ID:事務(wù)ID 是個(gè)隨機(jī)數(shù),用于客戶和服務(wù)器之間匹配請(qǐng)求和相應(yīng)信息
Seconds:由用戶指定的時(shí)間,指開(kāi)始地址獲取和更新進(jìn)行后的時(shí)間
Flags:從0—15bits,最左一bit為1時(shí)表示server將以廣播方式傳遞封包給client,其余尚未使用
Ciaddr:用戶IP地址
Siaddr:用于bootsrtap過(guò)程中的IP地址(服務(wù)器的IP地址)
Chaddr:client的硬件地址
Sname:可選server的名稱,以0x00結(jié)尾
File:?jiǎn)?dòng)文件名
Options:廠商標(biāo)識(shí),可選的參數(shù)字段
1. 抓包分析:
(1)DHCP discover階段:
(2)DHCP offer階段:
(3)DHCP request階段:
(4)DHCP ack階段:
2. 總結(jié):
- 第 1 頁(yè):dhcp抓包及報(bào)文分析
- 第 2 頁(yè):抓包分析
本文導(dǎo)航
非常好我支持^.^
(1) 50%
不好我反對(duì)
(1) 50%
相關(guān)閱讀:
- [電子說(shuō)] 海格通信參與中國(guó)電信北斗短報(bào)文終端伙伴合作計(jì)劃 2024-12-04
- [電子說(shuō)] 利用LWIP 2.2實(shí)現(xiàn)以太網(wǎng)的DHCP功能 2024-11-26
- [電子說(shuō)] 北斗三號(hào)短報(bào)文通信水利遙測(cè)終端機(jī)RTU,實(shí)現(xiàn)應(yīng)急救援效能升級(jí) 2024-11-08
- [電子說(shuō)] 報(bào)告從站ID與Modbus異常響應(yīng) 2024-11-07
- [電子說(shuō)] 寫(xiě)多個(gè)線圈與寫(xiě)多個(gè)保持寄存器 2024-11-06
- [電子說(shuō)] Modbus協(xié)議診斷功能說(shuō)明 2024-11-05
- [電子說(shuō)] IPV6報(bào)文怎么進(jìn)行通信 2024-10-25
- [電子說(shuō)] Modbus通信協(xié)議報(bào)文分析 2024-10-24
( 發(fā)表人:李倩 )