天天看點

圖解DHCP的4步租約過程

文中有不對或者有不清楚的地方,請大家告訴我,謝謝!

<a href="http://www.yuanma007.com/" target="_blank">時時彩源碼下載下傳</a>

圖解DHCP的4步租約過程

DHCP租約過程就是DHCP客戶機動态擷取IP位址的過程。

DHCP租約過程分為4步:

①客戶機請求IP(客戶機發DHCPDISCOVER廣播包);

②伺服器響應(伺服器發DHCPOFFER廣播包);

③客戶機選擇IP(客戶機發DHCPREQUEST廣播包);

④伺服器确定租約(伺服器發DHCPACK/DHCPNAK廣播包)。

詳解4步租約過程:

第1步:客戶機請求IP

客戶機請求IP也稱為DHCPDISCOVER。

當一個DHCP客戶機啟動時,會自動将自己的IP位址配置成0.0.0.0,由于使用0.0.0.0不能進行正常通信,是以客戶機就必須通過DHCP伺服器來擷取一個合法的位址。由于客戶機不知道DHCP伺服器的IP位址,是以它使用0.0.0.0的位址作為源位址,使用UDP68端口作為源端口,使用255.255.255.255作為目标位址,使用UDP67端口作為目的端口來廣播請求IP位址資訊(見圖一)。廣播資訊中包含了DHCP客戶機的MAC位址和計算機名,以便使DHCP伺服器能确定是哪個客戶機發送的請求。

DHCP客戶機總是試圖重新租用它接收過的最後一個IP位址,這給網絡帶來一定的穩定性。

圖一:客戶機請求IP

<a href="http://yuanbin.blog.51cto.com/attachment/200811/1/363003_1225518917Mta2.gif" target="_blank"></a>

第2步:伺服器響應

伺服器響應也稱為DHCPOFFER。

當DHCP伺服器接收到客戶機請求IP位址的資訊時,它就在自己的IP位址池中查找是否有合法的IP位址提供給客戶機。如果有,DHCP伺服器就将此IP位址做上标記,加入到DHCPOFFER的消息中,然後DHCP伺服器就廣播一則包括下列資訊的DHCPOFFER消息:

DHCP客戶機的MAC位址;DHCP伺服器提供的合法IP位址;子網路遮罩;預設網關(路由);租約的期限;DHCP伺服器的IP位址。

因為DHCP客戶機還沒有IP位址,是以DHCP伺服器使用自己的IP位址作為源位址,使用UDP67端口作為源端口,使用255.255.255.255作為目标位址,使用UDP68端口作為目的端口來廣播DHCPOFFER資訊(見圖二)。

圖二:伺服器響應

<a href="http://yuanbin.blog.51cto.com/attachment/200811/1/363003_1225518924UKr9.gif" target="_blank"></a>

第3步:客戶機選擇IP

客戶機選擇IP,也稱為DHCPREQUEST。

DHCP客戶機從接收到的第一個DHCPOFFER消息中選擇IP位址,發出IP位址的DHCP伺服器将該位址保留,這樣該位址就不能提供給另一個DHCP客戶機。當客戶機從第一個DHCP伺服器接收DHCPOFFER并選擇IP位址後,DHCP租約的第三過程發生。客戶機将DHCPREQUEST消息廣播到所有的DHCP伺服器,表明它接受提供的内容。DHCPREQUEST消息包括為該客戶機提供IP配置的伺服器的服務辨別符(IP位址)。DHCP伺服器檢視伺服器辨別符字段,以确定它自己是否被選擇為指定的客戶機提供IP位址,如果那些DHCPOFFER被拒絕,則DHCP伺服器會取消提供并保留其IP位址以用于下一個IP租約請求。

在客戶機選擇IP的過程中,雖然客戶機選擇了IP位址,但是還沒有配置IP位址,而在一個網絡中可能有幾個DHCP伺服器,是以客戶機仍然使用0.0.0.0的位址作為源位址,使用UDP68端口作為源端口,使用255.255.255.255作為目标位址,使用UDP67端口作為目的端口來廣播DHCPREQUEST資訊(見圖三)。

圖三:客戶機選擇IP

<a href="http://yuanbin.blog.51cto.com/attachment/200811/1/363003_1225518927HMuG.gif" target="_blank"></a>

第4步:伺服器确認租約

伺服器确認租約,也稱為DHCPACK/DHCPNAK。

DHCP伺服器接收到DHCPREQUEST消息後,以DHCPACK消息的形式向客戶機廣播成功的确認,該消息包含有IP位址的有效租約和其他可能配置的資訊。雖然伺服器确認了客戶機的租約請求,但是客戶機還沒有收到伺服器的DHCPACK消息,是以伺服器仍然使用自己的IP位址作為源位址,使用UDP67端口作為源端口,使用255.255.255.255作為目标位址,使用UDP68端口作為目的端口來廣播DHCPACK資訊(見圖四)。當客戶機收到DHCPACK消息時,它就配置了IP位址,完成了TCP/IP的初始化。

如果DHCPREQUEST不成功,例如客戶機試圖租約先前的IP位址,但該IP位址不再可用,或者因為客戶機移到其他子網,該IP無效時,DHCP伺服器将廣播否定确認消息DHCPNAK。當客戶機接收到不成功的确認時,它将重新開始DHCP租約過程。

如果DHCP客戶機無法找到DHCP伺服器,它将從TCP/IP的B類網段169.254.0.0中挑選一個IP位址作為自己的IP位址,繼續每隔5分鐘嘗試與DHCP伺服器進行通訊,一旦與DHCP伺服器取得聯系,則客戶機放棄自動配置的IP位址,而使用DHCP伺服器配置設定的IP位址。

如果一台DHCP客戶機有兩個或者多個網卡,則DHCP伺服器會為每個網卡配置設定一個唯一而有效的IP位址。

圖四:伺服器确認租約

<a href="http://yuanbin.blog.51cto.com/attachment/200811/1/363003_1225518933QhF5.gif" target="_blank"></a>

圖五:DHCP伺服器日志

注:因為是虛拟機,是以這個DHCP伺服器的系統時間有些問題

圖六:DHCP客戶機IP資訊

<a href="http://yuanbin.blog.51cto.com/attachment/200811/1/363003_1225518940MriX.gif" target="_blank"></a>

可以看到用戶端擷取的IP位址是192.168.1.34;預設網關是192.168.1.10;DHCP伺服器IP是192.168.1.240;租約時間是6個小時。

DHCP消息類型

1 DHCPDISCOVER 

2 DHCPOFFER 

3 DHCPREQUEST 

4 DHCPDECLINE 

5 DHCPACK 

6 DHCPNACK 

7 DHCPRELEASE

8 DHCPINFORM

     本文轉自yuanbin0710 51CTO部落格,原文連結:http://blog.51cto.com/yuanbin/109574,如需轉載請自行聯系原作者

繼續閱讀