2008年6月13日 星期五

DHCP Message

DHCP MESSAGE

轉貼來源


DHCP(Dynamic Host Configuration Protocol,動態主機配置協議)是IETF為實現IP的自動配置而設計的協議,它可以為客戶機自動分配IP位址、子網路遮罩以及缺省閘道、DNS伺服器的IP地址等TCP/IP參數。瞭解DHCP工作過程可以説明我們排除有關DHCP服務遇到的問題。DHCP 協議是基於UDP層之上的應用,本文結合抓報所得資料分析DHCP協議實現原理

一、先瞭解一下需要抓取的DHCP報文

客戶發出的IP租用請求報文
  DHCP客戶機初始化TCP/IP,通過UDP埠67向網路中發送一個DHCPDISCOVER廣播包,請求租用IP位址。該 廣播包中的源IP位址為0.0.0.0,目標IP位址為255.255.255.255;包中還包含客戶機的MAC位址和電腦名。

DHCP回應的IP租用提供報文
  任何接收到DHCPDISCOVER廣播包並且能夠提供IP地址的DHCP伺服器,都會通過UDP埠68給客戶機回應一個DHCPOFFER廣播包,提供一個IP位址。該廣播包的源IP地址為DCHP伺服器IP,目標IP位址為255.255.255.255;包中還包含提供的IP位址、子網路遮罩及租期等資訊。

客戶選擇IP租用報文
  客戶機從不止一台DHCP伺服器接收到提供之後,會選擇第一個收到的DHCPOFFER包,並向網路中廣播一個 DHCPREQUEST消息包,表明自己已經接受了一個DHCP伺服器提供的IP地址。該廣播包中包含所接受的IP位址和伺服器的IP地址。 所有其他的DHCP伺服器撤銷它們的提供以便將IP地址提供給下一次IP租用請求。

DHCP伺服器發出IP租用確認報文
  被客戶機選擇的DHCP伺服器在收到DHCPREQUEST廣播後,會廣播返回給客戶機一個DHCPACK消息包,表明已經接受客戶機的選擇,並將這一IP位址的合法租用以及其他的配置資訊都放入該廣播包發給客戶機。
客戶配置成功後發出的公告報文
  客戶機在收到DHCPACK包,會使用該廣播包中的資訊來配置自己的TCP/IP,則租用過程完成,客戶機可以在網路中通信。
至此一個客戶獲取IP的DHCP服務過程基本結束,不過客戶獲取的IP一般是用租期,到期前需要更新租期,這個過程是通過租用更新資料包來完成的。

客戶IP租用更新報文
(1)在當前租期已過去50%時,DHCP客戶機直接向為其提供IP地址的DHCP伺服器發送DHCPREQUEST消息包。如果客戶機接收到該伺服器回應的DHCPACK消息包,客戶機就根據包中所提供的新的租期以及其它已經更新的TCP/IP參數,更新自己的配置,IP租用更新完成。如果沒收到該伺服器的回復,則客戶機繼續使用現有的
IP地址,因為當前租期還有50%。
(2)如果在租期過去50%時未能成功更新,則客戶機將在當前租期過去87.5%時再次向為其提供IP地址的DHCP聯繫。如果聯繫不成功,則重新開始IP租用過程。
(3)如果DHCP客戶機重新啟動時,它將嘗試更新上次關機時擁有的IP租用。如果更新未能成功,客戶機將嘗試聯繫現有IP租用中列出的缺省閘道。如果聯繫成功且租用尚未到期,客戶機則認為自己仍然位於與它獲得現有IP租用時相同的子網上(沒有被移走)繼續使用現有IP位址。 如果未能與缺省閘道聯繫成功,客戶機則認為自己已經被移到不同的子網上,將會開始新一輪的IP租用過程。

  DHCP客戶機在發出IP租用請求的DHCPDISCOVER廣播包後,將花費1秒鐘的時間等待DHCP伺服器的回應,如果1秒鐘沒有伺服器的回應,它會將這一廣播包重新廣播四次(以2,4,8和16秒為間隔,加上1~1000毫秒之間隨機長度的時間)。四次之後,如果仍未能收到伺服器的回應,則運行Windows 2000的DHCP客戶機將從169.254.0.0/16這個自動保留的私有IP位址(APIPA)中選用一個IP位址,而運行其他操作系統的DHCP客戶機將無法獲得IP地址。DHCP客戶機仍然每隔5分鐘重新廣播一次,如果收到某個伺服器的回應,則繼續IP租用過程。


沒有留言:

搜尋此網誌