DHCP技術介紹


DHCP

DHCP簡介

隨著網絡規模的不斷擴大和網絡複雜度的提高,計算機的數量經常超過可供分配的IP地址數量。同時隨著便攜機及無線網絡的廣泛使用,計算機的位置也經常變化,相應的IP地址也必須經常更新,從而導致網絡配置越來越複雜。DHCPDynamic Host Configuration Protocol,動態主機配置協議)就是為解決這些問題而發展起來的。

DHCP采用客戶端/服務器通信模式,由客戶端向服務器提出配置申請,服務器返回為客戶端分配的IP地址等相應的配置信息,以實現IP地址等信息的動態配置。

DHCP的典型應用中,一般包含一台DHCP服務器和多台客戶端(如PC和便攜機),如1所示。

圖1 DHCP典型應用

&  說明:

DHCP客戶端和DHCP服務器處於不同物理網段時,客戶端可以通過DHCP中繼與服務器通信,獲取IP地址及其他配置信息。

 

DHCPIP地址分配

IP地址分配策略

針對客戶端的不同需求,DHCP提供三種IP地址分配策略:

l              手工分配地址:由管理員為少數特定客戶端(如WWW服務器等)靜態綁定固定的IP地址。通過DHCP將配置的固定IP地址發給客戶端。

l              自動分配地址:DHCP為客戶端分配租期為無限長的IP地址。

l              動態分配地址:DHCP為客戶端分配具有一定有效期限的IP地址,到達使用期限後,客戶端需要重新申請地址。絕大多數客戶端得到的都是這種動態分配的地址。

IP地址動態獲取過程

圖2 IP地址動態獲取過程

2所示,DHCP客戶端從DHCP服務器動態獲取IP地址,主要通過四個階段進行:

(1)        發現階段,即DHCP客戶端尋找DHCP服務器的階段。客戶端以廣播方式發送DHCP-DISCOVER報文。

(2)        提供階段,即DHCP服務器提供IP地址的階段。DHCP服務器接收到客戶端的DHCP-DISCOVER報文後,根據IP地址分配的優先次序選出一個IP地址,與其他參數一起通過DHCP-OFFER報文發送給客戶端。DHCP-OFFER報文的發送方式由DHCP-DISCOVER報文中的flag字段決定,具體請參見“DHCP報文格式”的介紹。

(3)        選擇階段,即DHCP客戶端選擇IP地址的階段。如果有多台DHCP服務器向該客戶端發來DHCP-OFFER報文,客戶端隻接受第一個收到的DHCP-OFFER報文,然後以廣播方式發送DHCP-REQUEST報文,該報文中包含DHCP服務器在DHCP-OFFER報文中分配的IP地址。

(4)        確認階段,即DHCP服務器確認IP地址的階段。DHCP服務器收到DHCP客戶端發來的DHCP-REQUEST報文後,隻有DHCP客戶端選擇的服務器會進行如下操作:如果確認將地址分配給該客戶端,則返回DHCP-ACK報文;否則返回DHCP-NAK報文,表明地址不能分配給該客戶端。

&  說明:

l      客戶端收到服務器返回的DHCP-ACK確認報文後,會以廣播的方式發送免費ARP報文,探測是否有主機使用服務器分配的IP地址,如果在規定的時間內沒有收到回應,客戶端才使用此地址。否則,客戶端會發送DHCP-DECLINE報文給DHCP服務器,並重新申請IP地址。

l      如果網絡中存在多個DHCP服務器,除DHCP客戶端選中的服務器外,其它DHCP服務器中本次未分配出的IP地址仍可分配給其他客戶端。

 

IP地址的租約更新

如果采用動態地址分配策略,則DHCP服務器分配給客戶端的IP地址有一定的租借期限,當租借期滿後服務器會收回該IP地址。如果DHCP客戶端希望繼續使用該地址,需要更新IP地址租約。

DHCP客戶端的IP地址租約期限達到一半時間時,DHCP客戶端會向為它分配IP地址的DHCP服務器單播發送DHCP-REQUEST報文,以進行IP租約的更新。如果客戶端可以繼續使用此IP地址,則DHCP服務器回應DHCP-ACK報文,通知DHCP客戶端已經獲得新IP租約;如果此IP地址不可以再分配給該客戶端,則DHCP服務器回應DHCP-NAK報文,通知DHCP客戶端不能獲得新的租約。

如果在租約的一半時間進行的續約操作失敗,DHCP客戶端會在租約期限達到7/8時,廣播發送DHCP-REQUEST報文進行續約。DHCP服務器的處理方式同上,不再贅述。

DHCP報文格式

DHCP8種類型的報文,每種報文的格式相同,隻是某些字段的取值不同。DHCP報文格式基於BOOTP的報文格式,具體格式如3所示(括號中的數字表示該字段所占的字節)。

圖3 DHCP報文格式

各字段的解釋如下:

l              op:報文的操作類型,分為請求報文和響應報文,1為請求報文;2為響應報文。具體的報文類型在option字段中標識。

l              htypehlenDHCP客戶端的硬件地址類型及長度。

l              hopsDHCP報文經過的DHCP中繼的數目。DHCP請求報文每經過一個DHCP中繼,該字段就會增加1

l              xid:客戶端發起一次請求時選擇的隨機數,用來標識一次地址請求過程。

l              secsDHCP客戶端開始DHCP請求後所經過的時間。目前沒有使用,固定為0

l              flags:第一個比特為廣播響應標識位,用來標識DHCP服務器響應報文是采用單播還是廣播方式發送,0表示采用單播方式,1表示采用廣播方式。其餘比特保留不用。

l              ciaddrDHCP客戶端的IP地址。

l              yiaddrDHCP服務器分配給客戶端的IP地址。

l              siaddrDHCP客戶端獲取IP地址等信息的服務器IP地址。

l              giaddrDHCP客戶端發出請求報文後經過的第一個DHCP中繼的IP地址。

l              chaddrDHCP客戶端的硬件地址。

l              snameDHCP客戶端獲取IP地址等信息的服務器名稱。

l              fileDHCP服務器為DHCP客戶端指定的啟動配置文件名稱及路徑信息。

l              option:可選變長選項字段,包含報文的類型、有效租期、DNS服務器的IP地址、WINS服務器的IP地址等配置信息。

附件下載

聯係我們