DHCP 的客戶端的端口號爲68;DHCP的服務端的端口號爲67.服務器
DHCP的報文格式:
下面是一些重要字段:
Op:1 表示客戶端請求報文
2 表示服務端的應答報文網絡
htype:硬件類型
xid:事務ID,由客戶端選擇的一個隨機數,被服務器和客戶端用來在它們之間交流請求和響應,客戶端用它對請求和應答進行匹配。該ID由客戶端設置並由服務器返回,爲32位整數。(用於表示同一個DHCP session)session
ciaddr:client的IP地址
yiaddr:server給client的IP
siaddr:next server IP address
giaddr:DHCP中繼的IP地址(注意:不是網關地址)當客戶端發出DHCP請求時,若是服務器和客戶端不在同一個網絡中,那麼第一個DHCP中繼在轉發這個DHCP請求報文時會把本身的IP地址填入此字段。服務器會根據此字段來判斷出網段地址,從而選擇爲用戶分配地址的地址池。服務器還會根據此地址將響應報文發送給此DHCP中繼,再由DHCP中繼將此報文轉發給客戶端。
若在到達DHCP服務器前通過了不止一個DHCP中繼,那麼第一個DHCP中繼後的中繼不會改變此字段,只是把Hops的數目加1。
chaddr:client hardware address 服務端的硬件地址。
option:該字段表示DHCP的選項字段,至少爲312字節,格式爲"代碼+長度+數據"。DHCP經過此字段包含了服務器分配給終端的配置信息,如網關IP地址,DNS服務器的IP地址,客戶端可使用IP地址的有效租期等信息。
OPTIONS字段:
ide
discovery:客戶端開始DHCP過程發送的包,是DHCP協議的開始
offer:服務器接收到DHCP DISCOVER以後作出的響應,它包括了給予客戶端的IP(yiaddr)、客戶端的MAC地址、租約過時時間、服務器的識別符以及其餘信息
request:客戶端對於服務器發出的DHCP OFFER所作出的響應。在續約租期的時候一樣會使用
ack:服務器在接收到客戶端發來的DHCP REQUEST以後發出的成功確認的報文。在創建鏈接的時候,客戶端在接收到這個報文以後纔會確認分配給它的IP和其餘信息能夠被容許使用。
nck:DHCP ACK的相反的報文,表示服務器拒絕了客戶端的請求。
release:通常出如今客戶端關機、下線等情況。這個報文將會使DHCP服務器釋放發出此報文的客戶端的IP地址
inform:客戶端發出的向服務器請求一些信息的報文
decline:當客戶端發現服務器分配的IP地址沒法使用(如IP地址衝突時),將發出此報文,通知服務器禁止
使用該IP地址。orm
Client ---discover→-- Server 廣播
Client ←--offer---------Server 單播
Client ----request→---Server 廣播
Client ←---ack---------Server 單播
注意上述講的廣播、單播是指三層的。
抓包以下:
server