DHCP Message Exchange

DHCP Message Exchange

實驗環境:

DHCP Server: Windows Server 2003

DHCP Client: Windows 7


wKiom1W-3p_gUkceAAPMAnInSxE932.jpg


DHCP報文交互過程:

① DHCP Discovery

       DHCP客戶端首先廣播發送一個DHCP Discover消息,數據包的源MAC地址是客戶端的MAC地址,目標MAC地址是FFFF.FFFF.FFFF的二層廣播地址。由於它現在還沒有IP地址,因此源IP地址只能是0.0.0.0;它也不知道發給誰,因此目標IP地址是255.255.255.255的三層廣播地址;DHCP使用的協議是UDP,源端口是68(客戶端),目標端口是67(服務器),DHCP報文的類型是DHCP Discover。

DHCP Offer

       DHCP服務器向DHCHP客戶機發送DHCP Offer信息,其中包括一個可租用的IP地址,該數據包仍然是一個廣播報文。源MAC地址是DHCP服務器的MAC地址,目標MAC地址是廣播MAC(這裏很多文檔將此處解釋爲單播,其實不是,DHCP服務器不僅要告訴客戶端,還要告訴其他DHCP服務器,這個IP地址已經被分發出去了,這樣設計的目的主要是考慮到有同一網段有多個DHCP服務器的情況)該數據包源IP是服務器的IP地址,即172.16.1.1,目標IP是255.255.255.255,因爲此時客戶機還沒有IP地址。UDP的源端口是67(服務器),目標端口是68(客戶端),DHCP報文中包含了分配給客戶端的IP地址。


       如果客戶機在發出DHCP Discover消息後,沒有DHCP服務器做出響應,客戶機則拿不到IP地址。但客戶機會每隔幾分鐘發送DHCP Discover進行嘗試,直到客戶端收到DHCP Offer報文。如果是Windows客戶端,再多次嘗試失敗後,會自動分配一個169.254.0.0/16的IP地址,但仍然會繼續進行嘗試。直到找到DHCP服務器,用DHCP服務器分配給它的地址來替換這個IP地址。

DHCP Request

       客戶機收到DHCP Offer報文以後,會發送一個DHCP Request報文。該報文仍然是一個廣播報文(主要考慮到客戶機要告訴該網段所有的DHCP服務器,我選擇了172.16.1.1這臺DHCP服務器),源MAC地址是客戶機的MAC地址,目標MAC仍然是FFFF.FFFF.FFFF的廣播地址;源IP是剛剛DHCP服務器分配給客戶機的地址(172.16.1.10),目標IP是255.255.255.255。傳輸層源端口是68,目標端口是67,DHCP報文中包含客戶機的MAC地址,以及客戶機選擇的DHCP服務器(注:在Windows Server 2003做爲DHCP服務器的時候未在該報文中找到服務器的IP地址,而思科路由器做DHCP服務器則有)。

DHCP Ack

      DHCP服務器收到DHCP Offer報文以後,確定租約成立,回覆一個DHCP Ack。在這個報文中還包含一些額外的信息,網關、掩碼、DNS等,該報文仍然是一個廣播報文。


附件:附件中是DHCP的抓包的報文,感興趣的同學可以下載後進行分析


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章