DHCP 是 Dynamic Host Configuration Protocol (動(dòng)態(tài)主機(jī)配置協(xié)議)的縮寫 。
1. DHCP 理論
1.1 DHCP的定義和作用
DHCP 是 Dynamic Host Configuration Protocol (動(dòng)態(tài)主機(jī)配置協(xié)議)的縮寫 。
動(dòng)態(tài)主機(jī)配置協(xié)議 (DHCP) 是一種客戶端/服務(wù)器協(xié)議,它自動(dòng)提供 Internet 協(xié)議 (IP) 主機(jī)及其 IP 地址和其他相關(guān)配置信息,例如子網(wǎng)掩碼和默認(rèn)網(wǎng)關(guān)。 RFC 2131 和 2132 將 DHCP 定義為基于 Bootstrap 協(xié)議 (BOOTP) 的 Internet 工程任務(wù)組 (IETF) 標(biāo)準(zhǔn),此協(xié)議與 DHCP 共享許多實(shí)現(xiàn)詳細(xì)信息。 DHCP 允許主機(jī)從 DHCP 服務(wù)器獲取所需的 TCP/IP 配置信息。
Windows Server 2019 DHCP 服務(wù)器,這是一個(gè)可選的網(wǎng)絡(luò)服務(wù)器角色,可以部署該角色以將 IP 地址和其他信息租用到 DHCP 客戶端。 所有Windows客戶端操作系統(tǒng)都包括作為 TCP/IP 一部分的 DHCP 客戶端,并且 DHCP 客戶端默認(rèn)已啟用。
DHCP通常在局域網(wǎng)(LAN)環(huán)境中使用。它的主要作用是:對(duì)IP地址進(jìn)行集中管理和分配,使網(wǎng)絡(luò)環(huán)境中的主機(jī)動(dòng)態(tài)的獲得IP地址、網(wǎng)關(guān)地址、DNS服務(wù)器地址等信息,并提升IP地址的使用率。
1.2 使用DHCP的原因
(1)從用戶角度看
IP地址是每個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)的標(biāo)識(shí),網(wǎng)絡(luò)中每一臺(tái)計(jì)算機(jī)都需要配置IP地址才能接通互聯(lián)網(wǎng)。但是絕大多數(shù)用戶都不精通IP地址的設(shè)置,讓用戶自行分配地址,不但會(huì)降低用戶體驗(yàn),而且,從用戶的技術(shù)能力上看,也是行不通的。
(2)從技術(shù)角度看
通過(guò)動(dòng)態(tài)主機(jī)配置協(xié)議(DHCP)服務(wù),網(wǎng)絡(luò)中的設(shè)備可以從DHCP服務(wù)器中獲取IP地址等相關(guān)信息。
與手工配置IP地址相比較,以下是DHCP的優(yōu)點(diǎn)
配置不容易出錯(cuò)。手工配置IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)和DNS等地址參數(shù)的過(guò)程中有操作失誤的風(fēng)險(xiǎn)。對(duì)IP地址分配有較好的靈活性。網(wǎng)絡(luò)拓?fù)浒l(fā)生變化時(shí),手動(dòng)配置的IP地址等信息可能發(fā)生變化,人工修改各項(xiàng)參數(shù)效率低。對(duì)IP地址資源利用率高。人工配置IP地址,容易發(fā)生記憶錯(cuò)誤。配置工作量小。如果有大量主機(jī)存在且需要大量IP地址,那么人工配置的工作量可想而知。配置工作量會(huì)隨著主機(jī)數(shù)量的增加而增大。
總而言之,DHCP對(duì)IP地址的配置、利用都做出了較好的優(yōu)化。大大提高了配置效率,和IP地址利用率和使用效率。
備注:在網(wǎng)絡(luò)范圍內(nèi)可能存在多個(gè)DHCP服務(wù)器,各自負(fù)責(zé)不同的網(wǎng)段,也可能由同一個(gè)DHCP服務(wù)器,負(fù)責(zé)多個(gè)不同網(wǎng)段的地址分配。
1.3 DHCP工作過(guò)程及原理
(1)DHCP工作過(guò)程
DHCP采用客戶端/服務(wù)器通信模式,即C/S。需要客戶端主動(dòng)向服務(wù)器提出請(qǐng)求分配網(wǎng)絡(luò)配置參數(shù)的申請(qǐng),然后服務(wù)器返回給客戶端分配的IP地址配置信息。
在DHCP經(jīng)典應(yīng)用中,一般包含一臺(tái)DHCP服務(wù)器和多臺(tái)客戶端。
DHCP協(xié)議采用UDP作為傳輸協(xié)議,客戶端發(fā)送廣播消息到服務(wù)器的68號(hào)端口,服務(wù)器回應(yīng)廣播消息給客戶端的67號(hào)端口。
DHCP客戶端 從 DHCP服務(wù)器獲取IP地址,主要通過(guò)四個(gè)階段進(jìn)行:分別是DISCOVER(發(fā)現(xiàn))、OFFER(提供)、REQUEST(選擇/請(qǐng)求)和ACK(確認(rèn))。
(2)DHCP工作原理
第一階段:discover階段(發(fā)現(xiàn)階段),客戶端在LAN中以廣播方式發(fā)送DISCOVER報(bào)文。當(dāng)廣播報(bào)文DISCOVER被DHCP服務(wù)器接受到后,進(jìn)入第二階段offer階段。
第二階段:offer階段(提供階段),DHCP服務(wù)器收到DISCOVER報(bào)文后,會(huì)根據(jù)IP地址分配的優(yōu)先次序選出一個(gè)地址,與其他參數(shù)一起被封裝到名為offer的報(bào)文中。然后DHCP服務(wù)器再次以廣播方式將offer報(bào)文發(fā)送給客戶端。
備注 :如果LAN中有多臺(tái)DHCP服務(wù)器,所有服務(wù)器都會(huì)向客戶端發(fā)送OFFER報(bào)文,這時(shí)候服務(wù)器只是提供了一個(gè)分配建議,IP地址并沒(méi)有分配給客戶端。
第三階段:request階段(選擇階段),客戶端收到OFFER報(bào)文后,以廣播方式發(fā)送REQUEST報(bào)文,這個(gè)報(bào)文的選項(xiàng)字段中會(huì)加入被選中的DHCP服務(wù)器的IP地址和客戶端需要的IP地址。
備注:客戶端采用先到先得的機(jī)制,根據(jù)第一個(gè)收到的OFFER報(bào)文返回REQUEST報(bào)文。其他DHCP服務(wù)器在這次沒(méi)有成功分配出的IP地址,可以分配其他客戶端,不會(huì)被占用。
第四階段:ack階段(確認(rèn)階段),DHCP服務(wù)器確認(rèn)IP地址分配。DHCP服務(wù)器收到客戶端發(fā)送的REQUEST報(bào)文后,被客戶端選擇的服務(wù)器會(huì)返回ACK報(bào)文,確認(rèn)將地址分配給該客戶端。如果收到了錯(cuò)誤的REQUEST報(bào)文,服務(wù)器會(huì)返回NAK報(bào)文,表明地址不能分配給該客戶端。而沒(méi)有被客戶端選擇的DHCP服務(wù)器,不會(huì)進(jìn)行任何響應(yīng)。在客戶端收到服務(wù)器返回的ACK確認(rèn)報(bào)文后,會(huì)以廣播方式發(fā)送免費(fèi)ARP報(bào)文,探測(cè)是否有其他客戶端正在使用服務(wù)器分配的IP地址,如果在規(guī)定時(shí)間內(nèi)沒(méi)有收到響應(yīng),客戶端才使用這個(gè)地址。否則,客戶端會(huì)發(fā)送DECLINE報(bào)文給DHCP服務(wù)器,表示服務(wù)器分配的地址已經(jīng)被占用,并重新申請(qǐng)IP地址。
四個(gè)階段完成之后,客戶端才真正分配到了IP地址。
(3)租約更新
在Windows服務(wù)器中DHCP服務(wù)動(dòng)態(tài)分配的IP地址是有使用期限的,這個(gè)期限叫做租期,默認(rèn)為8天。
客戶端在成功獲取IP地址后,可以通過(guò)發(fā)送Release報(bào)文釋放自己的IP地址,服務(wù)器收到Release報(bào)文后,會(huì)回收相應(yīng)的IP地址并重新分配。
在租期使用到50%時(shí),DHCP客戶端會(huì)向DHCP服務(wù)器發(fā)送單播報(bào)文request來(lái)續(xù)租IP地址,如果DHCP客戶端成功收到了服務(wù)器發(fā)送的ACK報(bào)文,會(huì)按對(duì)應(yīng)的時(shí)長(zhǎng),延長(zhǎng)IP地址租期。否則,客戶端還是會(huì)繼續(xù)使用該地址,但是在使用租期超過(guò)87.5%的時(shí)候,客戶端會(huì)以廣播形式向服務(wù)器發(fā)送request報(bào)文來(lái)續(xù)租IP地址。此時(shí),如果客戶端成功收到ACK報(bào)文,會(huì)按對(duì)應(yīng)的時(shí)長(zhǎng),延長(zhǎng)IP地址租期,否則,客戶端仍然會(huì)繼續(xù)使用該地址,知道IP地址租期到達(dá)100%,才會(huì)向服務(wù)器發(fā)送Release報(bào)文來(lái)釋放這個(gè)IP地址。并開(kāi)始新的IP地址申請(qǐng)過(guò)程。
參考資料
Microsoft Docs:DHCP (Dynamic Host Configuration Protocol) Basics
Microsoft Docs:Dynamic Host Configuration Protocol (DHCP)
Microsoft Docs:How To Install and Configure a DHCP Server in a Workgroup