適用性
DHCP用一台或一組DHCP伺服器來管理網路參數的分配,這種方案具有容錯性。即使在一個僅擁有少量機器的網路中,DHCP仍然是有用的,因為一台機器可以幾乎不造成任何影響地被增加到本地網路中。
甚至對於那些很少改變地址的伺服器來說,DHCP仍然被建議用來設定它們的地址。如果
伺服器需要被重新分配地址(RFC 2071)的時候,就可以在儘可能少的地方去做這些改動。對於一些設備,如
路由器和
防火牆,則不應使用DHCP。把
TFTP或
SSH伺服器放在同一台運行DHCP的機器上也是有用的,目的是為了集中管理。
DHCP也可用於直接為伺服器和桌面計算機分配地址,並且通過一個
PPP代理,也可為撥號及寬頻主機,以及住宅
NAT網關和路由器分配地址。DHCP一般不適用於使用在無邊際路由器和
DNS伺服器上。
歷史
DHCP於1993年10月成為標準協定,其前身是
BOOTP協定。當前的DHCP定義可以在RFC 2131中找到,而基於IPv6的建議標準(DHCPv6)可以在RFC 3315中找到。
原理
動態主機設定協定(DHCP)是一種使網路管理員能夠集中管理和自動分配IP網路地址的通信協定。在IP網路中,每個連線Internet的設備都需要分配唯一的IP位址。DHCP使網路管理員能從中心結點監控和分配IP位址。當某台計算機移到網路中的其它位置時,能自動收到新的IP位址。
DHCP使用了租約的概念,或稱為計算機IP位址的有效期。租用時間是不定的,主要取決於用戶在某地連線Internet需要多久,這對於教育行業和其它用戶頻繁改變的環境是很實用的。通過較短的租期,DHCP能夠在一個計算機比可用IP位址多的環境中動態地重新配置網路。DHCP支持為計算機分配靜態地址,如需要永久性IP位址的Web伺服器。
DHCP和另一個網路IP管理協定BOOTP類似。目前兩種配置管理協定都得到了普遍使用,其中DHCP更為先進。某些作業系統,如Windows NT/2000,都帶有DHCP伺服器。DHCP或BOOTP客戶端是裝在計算機中的一個程式,這樣就可以對其進行配置操作。
協定結構
8 bits | 16 bits | 24 bits | 32 bits |
---|
Op | Htype | Hlen | Hops |
Xid |
Secs | Flags |
Ciaddr |
Yiaddr |
Siaddr |
Giaddr |
Chaddr (16 bytes) |
Sname (64 bytes) |
File (128 bytes) |
Option (variable) |
Op:訊息操作代碼,既可以是引導請求(BOOTREQUEST)也可以是引導答覆(BOOTREPLY)
Htype:硬體地址類型
Hlen:硬體地址長度
Xid:處理ID
Secs:從獲取到IP位址或者續約過程開始到現在所消耗的時間
Flags:標記
Ciaddr:客戶機IP位址
Yiaddr:“你的”(客戶機)IP位址
Siaddr:在bootstrap中使用的下一台伺服器的IP位址
Giaddr:用於導入的接替代理IP位址
Chaddr:客戶機硬體
Sname:任意伺服器主機名稱,空終止符
File:DHCP發現協定中的引導檔案名稱、空終止符、屬名或者空,DHCP供應協定中的受限目錄路徑名
Options:可選參數欄位。參考定義選擇列表中的選擇檔案