DHCP之簡要分析

DHCP之簡要分析

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

(1) 發現階段,即DHCP客戶端尋找DHCP服務器的階段。客戶端以廣播方式發送DHCP-DISCOVER報文。
(2) 提供階段,即DHCP服務器提供IP地址的階段。DHCP服務器接收到客戶端的DHCP-DISCOVER報文後,根據IP地址分配的優先次序選出一個IP地址,與其他參數一起通過DHCP-OFFER報文發送給客戶端。DHCP-OFFER報文的發送方式由DHCP-DISCOVER報文中的flag字段決定。
(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報文,表明地址不能分配給該客戶端。
注:
客戶端收到服務器返回的DHCP-ACK確認報文後,會以廣播的方式發送免費ARP報文,探測是否有主機使用服務器分配的IP地址,如果在規定的時間內沒有收到迴應,客戶端才使用此地址。否則,客戶端會發送DHCP-DECLINE報文給DHCP服務器,並重新申請IP地址。
如果網絡中存在多個DHCP服務器,除DHCP客戶端選中的服務器外,其它DHCP服務器中本次未分配出的IP地址仍可分配給其他客戶端。


DHCP 主要有四個過程: discover、offer、request、ack。
step 1:
客戶端(PC機或移動終端)以廣播包的形式,找尋可以提供分配ip的服務器或路由器,這即爲discover階段。
step 2:
所有收到這個discover廣播包,並且可以有分配IP功能的服務器或路由器,會迴應這個廣播包;發包的方式可能是廣播報文,也可能是 單播報文 (這因路由器的不同而可能不同)。這即爲offer階段
step3:
客戶端收到這個包後(雖然這時候網絡中有很多offer報文,但此時只會接受第一個到達的offer報文),從這個offer報文中提取所要的 ip,dns,net gate,並根據IP計算submask, 然後以廣播包的形式,告知所有的可分配IP的服務器或路由器我已經得到一個IP,並且此報文中包含了爲客戶端分配IP的服務器或路由器的信息。這即爲 request階段。
step4:
所有的路由器或服務器收到這個request廣播包之後,從中提取服務器的信息,如果是指向自己的,則會回ACK(同樣,因路由器的不同回ACK的方式可能是廣播報文,也可能是單播報文 ),其他的服務器或路由器則不會回ACK。這即爲ACK階段。

IP地址分配策略
針對客戶端的不同需求,DHCP提供三種IP地址分配策略:
手工分配地址:由管理員爲少數特定客戶端(如WWW服務器等)靜態綁定固定的IP地址。通過DHCP將配置的固定IP地址發給客戶端。
自動分配地址:DHCP爲客戶端分配租期爲無限長的IP地址。
動態分配地址: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有8種類型的報文,每種報文的格式相同,只是某些字段的取值不同。DHCP報文格式基於BOOTP的報文格式,具體格式如圖1-3所示(括號中的數字表示該字段所佔的字節)。
各字段的解釋如下:

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

l htype、hlen:DHCP客戶端的硬件地址類型及長度。

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

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

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

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

l ciaddr:DHCP客戶端的IP地址。

l yiaddr:DHCP服務器分配給客戶端的IP地址。

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

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

l chaddr:DHCP客戶端的硬件地址。

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

l file:DHCP服務器爲DHCP客戶端指定的啓動配置文件名稱及路徑信息。

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

DHCP常用選項介紹

常見的DHCP選項有:

l Option 3:路由器選項,用來指定爲客戶端分配的網關地址。

l Option 6:DNS服務器選項,用來指定爲客戶端分配的DNS服務器地址。

l Option 51:IP地址租約選項。

l Option 53:DHCP消息類型選項,標識DHCP消息的類型。

l Option 55:請求參數列表選項。客戶端利用該選項指明需要從服務器獲取哪些網絡配置參數。該選項內容爲客戶端請求的參數對應的選項值。

l Option 66:TFTP服務器名選項,用來指定爲客戶端分配的TFTP服務器的域名。

l Option 67:啓動文件名選項,用來指定爲客戶端分配的啓動文件名。

l Option 150:TFTP服務器地址選項,用來指定爲客戶端分配的TFTP服務器的地址。

l Option 121:無分類路由選項。該選項中包含一組無分類靜態路由(即目的地址的掩碼爲任意值,可以通過掩碼來劃分子網),客戶端收到該選項後,將在路由表中添加這些靜態路由。

l Option 33:靜態路由選項。該選項中包含一組有分類靜態路由(即目的地址的掩碼固定爲自然掩碼,不能劃分子網),客戶端收到該選項後,將在路由表中添加這些靜態路由。如果存在Option 121,則忽略該選項。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章