圖解DHCP的4步租約過程
DHCP租約過程就是DHCP客戶機動態獲取IP地址的過程。
DHCP租約過程分為4步:
①客戶機請求IP(客戶機發DHCPDISCOVER廣播包);
②server響應(server發DHCPOFFER廣播包);
③客戶機選擇IP(客戶機發DHCPREQUEST廣播包);
④server確定租約(server發DHCPACK/DHCPNAK廣播包)。
具體解釋4步租約過程:
第1步:客戶機請求IP
客戶機請求IP也稱為DHCPDISCOVER。
當一個DHCP客戶機啟動時,會自己主動將自己的IP地址配置成0.0.0.0。因為使用0.0.0.0不能進行正常通信,所以客戶機就必須通過DHCPserver來獲取一個合法的地址。
因為客戶機不知道DHCPserver的IP地址,所以它使用0.0.0.0的地址作為源地址,使用UDP68port作為源port,使用255.255.255.255作為目標地址,使用UDP67port作為目的port來廣播請求IP地址信息(見圖一)。廣播信息中包括了DHCP客戶機的MAC地址和計算機名,以便使DHCPserver能確定是哪個客戶機發送的請求。
DHCP客戶機總是試圖又一次租用它接收過的最后一個IP地址,這給網絡帶來一定的穩定性。
圖一:客戶機請求IP
第2步:server響應
server響應也稱為DHCPOFFER。
當DHCPserver接收到客戶機請求IP地址的信息時,它就在自己的IP地址池中查找是否有合法的IP地址提供給客戶機。
假設有。DHCPserver就將此IP地址做上標記。增加到DHCPOFFER的消息中,然后DHCPserver就廣播一則包含下列信息的DHCPOFFER消息:
DHCP客戶機的MAC地址;DHCPserver提供的合法IP地址;子網掩碼;默認網關(路由);租約的期限。DHCPserver的IP地址。
由於DHCP客戶機還沒有IP地址,所以DHCPserver使用自己的IP地址作為源地址,使用UDP67port作為源port,使用255.255.255.255作為目標地址。使用UDP68port作為目的port來廣播DHCPOFFER信息(見圖二)。
圖二:server響應
第3步:客戶機選擇IP
客戶機選擇IP,也稱為DHCPREQUEST。
DHCP客戶機從接收到的第一個DHCPOFFER消息中選擇IP地址。發出IP地址的DHCPserver將該地址保留。這樣該地址就不能提供給還有一個DHCP客戶機。當客戶機從第一個DHCPserver接收DHCPOFFER並選擇IP地址后,DHCP租約的第三過程發生。客戶機將DHCPREQUEST消息廣播到全部的DHCPserver,表明它接受提供的內容。DHCPREQUEST消息包含為該客戶機提供IP配置的server的服務標識符(IP地址)。DHCPserver查看server標識符字段。以確定它自己是否被選擇為指定的客戶機提供IP地址,假設那些DHCPOFFER被拒絕。則DHCPserver會取消提供並保留其IP地址以用於下一個IP租約請求。
在客戶機選擇IP的過程中。盡管客戶機選擇了IP地址,可是還沒有配置IP地址。而在一個網絡中可能有幾個DHCPserver,所以客戶機仍然使用0.0.0.0的地址作為源地址,使用UDP68port作為源port。使用255.255.255.255作為目標地址。使用UDP67port作為目的port來廣播DHCPREQUEST信息(見圖三)。
圖三:客戶機選擇IP
第4步:server確認租約
server確認租約,也稱為DHCPACK/DHCPNAK。
DHCPserver接收到DHCPREQUEST消息后。以DHCPACK消息的形式向客戶機廣播成功的確認,該消息包括有IP地址的有效租約和其它可能配置的信息。盡管server確認了客戶機的租約請求,可是客戶機還沒有收到server的DHCPACK消息,所以server仍然使用自己的IP地址作為源地址。使用UDP67port作為源port,使用255.255.255.255作為目標地址。使用UDP68port作為目的port來廣播DHCPACK信息(見圖四)。當客戶機收到DHCPACK消息時,它就配置了IP地址。完畢了TCP/IP的初始化。
假設DHCPREQUEST不成功。比如客戶機試圖租約先前的IP地址,但該IP地址不再可用。或者由於客戶機移到其它子網,該IP無效時,DHCPserver將廣播否定確認消息DHCPNAK。當客戶機接收到不成功的確認時,它將又一次開始DHCP租約過程。
假設DHCP客戶機無法找到DHCPserver,它將從TCP/IP的B類網段169.254.0.0中挑選一個IP地址作為自己的IP地址,繼續每隔5分鍾嘗試與DHCPserver進行通訊,一旦與DHCPserver取得聯系。則客戶機放棄自己主動配置的IP地址,而使用DHCPserver分配的IP地址。
假設一台DHCP客戶機有兩個或者多個網卡,則DHCPserver會為每一個網卡分配一個唯一而有效的IP地址。
圖四:server確認租約
圖五:DHCPserver日志
注:由於是虛擬機,所以這個DHCPserver的系統時間有些問題
圖六:DHCP客戶機IP信息
能夠看到client獲取的IP地址是192.168.1.34。默認網關是192.168.1.10;DHCPserverIP是192.168.1.240。租約時間是6個小時。
DHCP消息類型
1 DHCPDISCOVER
2 DHCPOFFER
3 DHCPREQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNACK
7 DHCPRELEASE
8 DHCPINFORM
1 DHCPDISCOVER
2 DHCPOFFER
3 DHCPREQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNACK
7 DHCPRELEASE
8 DHCPINFORM

![10_thumb[1]](/image/aHR0cDovL2ltZzEuNTFjdG8uY29tL2F0dGFjaG1lbnQvMjAwODExLzEvMzYzMDAzXzEyMjU1MTg5MjF6SUtwLmdpZg==.png)
![20_thumb[1]](/image/aHR0cDovL2ltZzEuNTFjdG8uY29tL2F0dGFjaG1lbnQvMjAwODExLzEvMzYzMDAzXzEyMjU1MTg5MjVaREZ4LmdpZg==.png)
![30_thumb[1]](/image/aHR0cDovL2ltZzEuNTFjdG8uY29tL2F0dGFjaG1lbnQvMjAwODExLzEvMzYzMDAzXzEyMjU1MTg5MzFhUE9wLmdpZg==.png)
![40_thumb[1]](/image/aHR0cDovL2ltZzEuNTFjdG8uY29tL2F0dGFjaG1lbnQvMjAwODExLzEvMzYzMDAzXzEyMjU1MTg5MzVQa2pCLmdpZg==.png)
![clip_image009_thumb[1]](/image/aHR0cDovL2ltZzEuNTFjdG8uY29tL2F0dGFjaG1lbnQvMjAwODExLzEvMzYzMDAzXzEyMjU1MTg5MzhJZFlZLmdpZg==.png)
![50_thumb[1]](/image/aHR0cDovL2ltZzEuNTFjdG8uY29tL2F0dGFjaG1lbnQvMjAwODExLzEvMzYzMDAzXzEyMjU1MTg5NDF5OFVtLmdpZg==.png)