DHCP的工作機(jī)制,DHCP服務(wù)采用UDP協(xié)議,其中DHCP服務(wù)器采用67號(hào)端口,DHCP客戶機(jī)采用68號(hào)端口。
1.DHCP租借過(guò)程
下面介紹DHCP客戶機(jī)是如何獲得IP地址的,這個(gè)過(guò)程又稱為DHCP租借過(guò)程。以下是從客戶機(jī)發(fā)出獲得IP地址的請(qǐng)求開(kāi)始來(lái)介紹一個(gè)完整的DHCP租借過(guò)程的。
(1)DHCP發(fā)現(xiàn)——DHCP DISCOVERDHCP
客戶機(jī)發(fā)出“DHCP發(fā)現(xiàn)”廣播包,即目的IP地址為255.255.255.255的數(shù)據(jù)包,這樣的廣播包會(huì)被同一個(gè)網(wǎng)段的所有主機(jī)收到。
(2)DHCP提供——DHCP OFFER
收到“DHCP發(fā)現(xiàn)”廣播包的客戶機(jī)會(huì)忽略該信息,而DHCP服務(wù)器會(huì)給予響應(yīng),稱為DHCP提供。需要注意的是可能有多臺(tái)DHCP服務(wù)器都給出響應(yīng),它們分別從自己的IP地址池中找出一個(gè)未分配IP地址并附帶上子網(wǎng)掩碼等參數(shù)一并提供客戶機(jī)。很明顯,此時(shí)“DHCP提供”包也是以廣播包的形式發(fā)出的。
(3)DHCP請(qǐng)求——DHCP REQUESTDHCP
客戶機(jī)收到“DHCP提供”包后(可能有多臺(tái)DHCP服務(wù)器發(fā)來(lái)DHCP提供包),DHCP客戶機(jī)將準(zhǔn)備采用收到的第一個(gè)提供包中所提供的IP地址等信息。于是,正式向該DHCP服務(wù)器發(fā)出“DHCP請(qǐng)求”包,但此時(shí)仍然采用的是廣播包。這樣做目的是可以保證所有發(fā)出“DHCP提供”包的服務(wù)器收到該請(qǐng)求包,另一個(gè)暗含的目的是同時(shí)“謝絕”其他DHCP服務(wù)器的“提供”,以便其他DHCP服務(wù)器及時(shí)收回自己的IP地址。
(4)DHCP確認(rèn)——DHCP ACK
當(dāng)收到“DHCP請(qǐng)求”包之后,該DHCP服務(wù)器正式發(fā)出“DHCP確認(rèn)”包,予以確認(rèn)。很明顯,此時(shí)仍然要采用廣播包的形式。
當(dāng)客戶收到“DHCP確認(rèn)”包后,DHCP的租借過(guò)程成功完成,此時(shí)DHCP客戶機(jī)才有了IP地址等網(wǎng)絡(luò)參數(shù)。不過(guò),客戶機(jī)并不是永久獲得了該IP地址,而是“租借”一段時(shí)間,即獲得的IP地址是有使用期限的,稱為租期。DHCP服務(wù)器在分配給客戶機(jī)IP地址的同時(shí)設(shè)置了租期的長(zhǎng)短。因此,客戶機(jī)只能在租期范圍內(nèi)使用獲得的IP地址。
2.DHCP租期更新機(jī)制
為了能夠及時(shí)地延長(zhǎng)租期,DHCP服務(wù)制定了DHCP租期更新機(jī)制。
(1)RENEW更新
在T1時(shí)間點(diǎn)即50%租期的時(shí)刻,DHCP客戶機(jī)發(fā)出DHCP REQUEST數(shù)據(jù)包,向DHCP服務(wù)器請(qǐng)求續(xù)租,如果收到DHCP服務(wù)器的響應(yīng),則續(xù)租成功。否則,進(jìn)入下一個(gè)更新階段。
(2)REBIND更新
如果在T1時(shí)間點(diǎn)沒(méi)有收到DHCP服務(wù)器的響應(yīng),則DHCP客戶機(jī)可以繼續(xù)使用當(dāng)前IP地址,直到T2時(shí)間點(diǎn),即87.5%租期時(shí)刻,DHCP客戶發(fā)出DHCP DISCOVER數(shù)據(jù)包,如果收到原DHCP服務(wù)器的響應(yīng),則續(xù)租成功,如果收到其他DHCP服務(wù)器的響應(yīng),則在使用完剩下12.5%的租約后采用新的租期。