DHCP概述
1 采用DHCP的必要性
在TCP/IP網絡上,每台工作站要能存取網絡上的資源之前,都必須進行基本的網絡配置,一些主要參數諸如IP地址,子網掩碼,缺省網關,DNS等必不可少,還可能需要一些附加的信息如IP管理策略之類。對於一個稍微大點的網絡而言,網絡的管理和維護的任務是相當繁重的。一台計算機從一個子網轉移到另一個子網,就要重新對系統進行配置。對於普通水平的工作站用戶是不能賦予他們配置自己的工作站網絡的權限,而且也沒有這個必要。如果一個沒有相應技術水平的用戶出於好奇或想學習一下的目的錯誤地更改了工作站的網絡配置,造成網絡故障,後果不言而喻。因此,需要有一種機制來讓TCP/IP的配置和管理從用戶端轉移到網絡管理端,實現IP的集中式管理。解決方案就是用DHCP。
2 DHCP的主要功能
DHCP的全稱是動態主機配置協議(Dynamic Host Configuration Protocol),由IETF(Internet 網絡工程師任務小組)設計,詳盡的協議內容在RFC文檔rfc2131和rfc1541裡。目的就是為了減輕TCP/IP網絡的規劃、管理和維護的負擔,解決IP地址空間缺乏問題。運行DHCP的服務器把TCP/IP網絡設置集中起來,動態處理工作站IP地址的配置,用DHCP租約和預置的IP地址相聯系,DHCP租約提供了自動在TCP/IP網絡上安全地分配和租用IP地址的機制,實現IP地址的集中式管理,基本上不需要網絡管理人員的人為干預。而且,DHCP本身被設計成BOOTP(自舉協議)的擴展,支持需要網絡配置信息的無盤工作站,對需要固定IP的系統也提供了相應支持。
DHCP的工作原理
幾個DHCP名詞
在介紹DHCP工作原理以前,先解釋這幾個名詞的含義:
DHCP客戶:DHCP客戶是一通過DHCP來獲得網絡配置參數的Internet主機,通常就是普通用戶的工作站。
DHCP服務器:DHCP服務器是提供網絡設置參數給DHCP客戶的Internet主機。
DHCP/BOOTP 中繼代理:在DHCP客戶和服務器之間轉發 DHCP 消息的主機或路由器。
DHCP是基於客戶機/服務器模型設計的,DHCP客戶和DHCP服務器之間通過收發DHCP消息進行通訊。
DHCP 消息的格式:
DHCP 消息的格式與BOOTP消息大部分相同, 這樣設計可以增強BOOTP服務器工具,同時為BOOTP和DHCP兩種客戶服務。另外,BOOTP的中繼代理可用來轉發跨子網的DHCP請求。
各段描述如下
括號裡的數字代表這個段以8位組為單位的大小,除options外,其余的段的長度都是固定的,options段的長度至少是312個8位組。
如op(1)代表這個段的長度為一個8位組
op 是消息操作代碼,值為1 代表BOOTREQUEST(自舉請求)值為2 代表BOOTREPLY(自舉響應)
在DHCP客戶和DHCP服務器對話期間,op段被DHCP客戶設置為BOOTREQUEST(1), 被DHCP服務器設置為 BOOTREPLY(2)。
htype 是硬件地址類型
hlen 是硬件地址長度
hops DHCP客戶置這項為零,中繼代理要用
xid DHCP客戶在尋求時產生的一個隨機數, 它提供了對所有後續的DHCP消息中的客戶請求和服務器響應的一種聯合。
ciaddr 客戶機用來請求一個特定的IP地址, 這個地址以前曾經分配給該客戶機,希望保留。
yiaddr 由DHCP服務器填寫,包含它提供給某一DHCP客戶的IP地址。
siaddr 服務器的主機地址
giaddr 中繼代理的IP地址
chaddr DHCP客戶硬件地址
sname 服務器主機名
file 啟動文件名
options 選項
在獲得IP地址前,DHCP客戶用 htype, hlen 和 chaddr 段表明它的硬件地址, 這個值由向客戶硬件地址作出響應的服務器和中繼代理利用。 以前BOOTP協議中的兩個沒有用到的8位組的flags段在DHCP消息裡有了定義。這個段的高位比特用於表明客戶機能不能在IP地址沒有被配置前接收Unicast 回應, 剩下的低位比特保留且必須置為零。 hops 和 secs 段在初始化過程中被中繼代理有選擇地利用。 sname 和 file 域可以被BOOTP或無盤站利用。
關於 options 選項
選項附加在DHCP消息的固定長度段之後, 為了與BOOTP工具兼容, 選項段的前四個8位組包含了
RFC1497中定義的magic cookies,余下的段就都是DHCP 選項。在RFC1533裡定義了DHCP的所有的選項
的格式。大多數選項用於標志網絡傳輸設置值, 例如子網掩碼 (mask)、 DNS 服 務 器 地 址 等其
他選項被DHCP協議利用, 且在大多數消息中是必需的。