1.DHCP簡介
DHCP是Dynamic Host Configuration Protocol的縮寫,它的前身是BOOTP。DHCP可以說是BOOTP的增強版本,分爲兩個部份(C/S架構):一個是服務器端,而另一個是客戶端。DHCP的主要作用是集中的管理、分配IP地址,使網絡環境中的主機動態的獲得IP地址、Gateway地址、DNS服務器地址等信息,並能夠提升地址的使用率。對比BOOTP,DHCP通過"租約"的概念,有效且動態的分配客戶端的TCP/IP設定。而且爲了考慮兼容性,DHCP也完全兼容了BOOTP Client的需求。
2.DHCP Server功能
DHCP Server的基本功能,如表 21所示。
表 21 DHCP Server基本功能
3.DHCP Server框架即原理
3.1 軟件框圖
DHCP Server軟件框圖如圖 31所示。
圖 31 DHCP Server軟件框圖
3.2 DHCP原理
DHCP原理如圖 32所示。
圖 32 DHCP原理圖
3.3 DHCP報文結構
DHCP協議報文如表3-2所示。
表 32 DHCP協議報文結構
op:client發送給server的封包,設爲1,server發送給client的封包,設爲2。
htype:硬件類別,1表示10Mb/s的以太網(Ethernet)的硬件地址。
hlen:硬件地址長度,Ethernet爲6(字節)。
hops:跳數,若封包需經過router傳送,每站加 1,若在同一網內,爲0(客戶端的初始設置爲0)。
xid:TRANSACTION ID(事務ID),DHCP REQUEST 時產生的數值,服務器和客戶端用來在它們之間交流請求和響應,客戶端用它對請求和應答進行匹配。
seconds:由客戶端填充,表示從客戶端開始獲得IP地址或IP地址續借後所使用了的秒數。
flags:從0到15共16 bits,最左1Bit爲1時表示server將以廣播方式傳送封包給client;最左1Bit爲0時表示server將以單播方式傳送封包給client。
ciaddr:客戶端的IP地址,只有客戶端是Bound、Renew、Rebinding狀態,並且能響應ARP請求時,才能被填充。
yiaddr:從server送回client的DHCP OFFER與DHCPACK封包中,此欄填寫分配給client的IP地址。
siaddr:表明DHCP協議流程的下一個階段要使用的服務器的IP地址。
giaddr:若需跨網域進行DHCP獲取,此欄爲 relay agent的地址,否則爲0。
chaddr:客戶端硬件地址。客戶端必須設置它的"chaddr"字段。
sname:Server的名稱字符串,由DHCP服務器填寫,以0x00結尾。
file:啓動文件名,是一個空結尾的字符串。
options:允許廠商定議選項(Vendor-Specific Area),以提供更多的設定信息。
數據通信模塊主要完成DHCP協議報文的解析和封裝,數據包的發送和接收功能。
3.4 DHCP服務流程
3.4.1 DHCP Discover數據處理流程
DHCP Discover數據處理流程如圖 33所示。
圖 33 DHCP Disocver數據處理流程圖
3.4.2 DHCP Request數據處理流程
DHCP Request數據處理流程如圖 34所示。
圖 34 DHCP Reques數據處理流程圖
3.4.3 DHCP Release數據處理流程
DHCP Release數據處理流程如圖 35所示。
圖 35 DHCP Release數據處理流程圖
3.4.4 DHCP Decline數據處理流程
DHCP Decline數據處理流程如圖 36所示。
圖 36 DHCP Decline數據處理流程圖
3.4.5 DHCP Inform數據處理流程
DHCP Inform數據處理流程如圖 3 7所示。
圖 3 7 DHCP Inform數據處理流程圖