DHCP

區域網的網路協議

DHCP(動態主機配置協議)是一個區域網的網路協議。指的是由伺服器控制一段IP地址範圍,客戶機登錄伺服器時就可以自動獲得伺服器分配的IP地址和子網掩碼徠。默認情況下,DHCP作為WindowsServer的一個服務組件不會被系統自動安裝,還需要管理員手動安裝並進行必要的配置。

功能概述


DHCP(DynamicHostConfigurationProtocol,動態主機配置協議)通常被應用在大型的區域網路環境中,主要作用是集中的管理、分配IP地址,使網路環境中的主機動態的獲得IP地址、Gateway地址、DNS伺服器地址等信息,並能夠提升地址的使用率。
DHCP協議採用客戶端/伺服器模型,主機地址的動態分配任務由網路主機驅動。當DHCP伺服器接收到來自網路主機申請地址的信息時,才會向網路主機發送相關的地址配置等信息,以實現網路主機地址信息的動態配置。DHCP具有以下功能:
1.保證任何IP地址在同一時刻只能由一台DHCP客戶機所使用。
2.DHCP應當可以給用戶分配永久固定的IP地址。
3.DHCP應當可以同用其他方法獲得IP地址的主機共存(如手工配置IP地址的主機)。
4.DHCP伺服器應當向現有的BOOTP客戶端提供服務。
DHCP有三種機制分配IP地址:
1)自動分配方式(AutomaticAllocation),DHCP伺服器為主機指定一個永久性的IP地址,一旦DHCP客戶端第一次成功從DHCP伺服器端租用到IP地址后,就可以永久性的使用該地址。
DHCP
DHCP
2)動態分配方式(DynamicAllocation),DHCP伺服器給主機指定一個具有時間限制的IP地址,時間到期或主機明確表示放棄該地址時,該地址可以被其他主機使用。
3)手工分配方式(ManualAllocation),客戶端的IP地址是由網路管理員指定的,DHCP伺服器只是將指定的IP地址告訴客戶端主機。
三種地址分配方式中,只有動態分配可以重複使用客戶端不再需要的地址。
DHCP消息的格式是基於BOOTP(BootstrapProtocol)消息格式的,這就要求設備具有BOOTP中繼代理的功能,並能夠與BOOTP客戶端和DHCP伺服器實現交互。BOOTP中繼代理的功能,使得沒有必要在每個物理網路都部署一個DHCP伺服器。RFC951和RFC1542對BOOTP協議進行了詳細描述。

封包格式


DHCP的封包格式如右圖所示,各欄位定義如下:
FIELDOCTETSDESCRIPTION
----------------------
DHCP
DHCP
OP:
若是client送給server的封包,設為1,反向為2。HTYPE
硬體類別,Ethernet為1。
HLEN:
硬體地址長度,Ethernet為6。
HOPS:
若封包需經過router傳送,每站加1,若在同一網內,為0。
TRANSACTIONID:
DHCPREQUEST時產生的數值,以作DHCPREPLY時的依據。
SECONDS:
Client端啟動時間(秒)。
從0到15共16bits,最左一bit為1時表示server將以廣播方式傳送封包給client,其餘尚未使用。
ciaddr:
要是client端想繼續使用之前取得之IP地址,則列於這裡。
yiaddr:
從server送回client之DHCPOFFER與DHCPACK封包中,此欄填寫分配給client的IP地址。
siaddr:
若client需要透過網路開機,從server送出之DHCPOFFER、DHCPACK、DHCPNACK封包中,此欄填寫開機程序代碼所在server之地址。
giaddr:
若需跨網域進行DHCP發放,此欄為relayagent的地址,否則為0。
chaddr:
Client之硬體地址。
sname:
Server之名稱字元串,以0x00結尾。
file:
若client需要透過網路開機,此欄將指出開機程序名稱,稍後以TFTP傳送。
options:
允許廠商定議選項(Vendor-SpecificArea),以提供更多的設定信息(如:Netmask、Gateway、DNS、等等)。其長度可變,同時可攜帶多個選項,每一選項之第一個byte為信息代碼,其後一個byte為該項數據長度,最後為項目內容。CODELENVALUE此欄位完全兼容BOOTP,同時擴充了更多選項。其中,DHCP封包可利用編碼為0x53之選項來設定封包類別。
項值類別:
1DHCPDISCOVER
2DHCPOFFER
3DHCPREQUEST
4DHCPDECLINE
5DHCPACK
6DHCPNACK
7DHCPRELEASE
DHCP的選項非常多,有空請查閱RFC或相關文獻,並好好理解,這裡不再敘述了。

相關介紹


DHCP客戶端

在支持DHCP功能的網路設備上將指定的埠作為DHCPClient,通過DHCP協議從DHCPServer動態獲取IP地址等信息,來實現設備的集中管理。一般應用於網路設備的網路管理介面上。
DHCP客戶端可以帶來如下好處:
● 降低了配置和部署設備時間。
● 降低了發生配置錯誤的可能性。
● 可以集中化管理設備的IP地址分配。

DHCP伺服器

DHCP伺服器指的是由伺服器控制一段IP地址範圍,客戶端登錄伺服器時就可以自動獲得伺服器分配的IP地址和子網掩碼。

DHCP中繼代理

DHCPRelay(DHCPR)DHCP中繼也叫做DHCP中繼代理。DHCP中繼代理,就是在DHCP伺服器和客戶端之間轉發DHCP數據包。當DHCP客戶端與伺服器不在同一個子網上,就必須有DHCP中繼代理來轉發DHCP請求和應答消息。DHCP中繼代理的數據轉發,與通常路由轉發是不同的,通常的路由轉發相對來說是透明傳輸的,設備一般不會修改IP包內容。而DHCP中繼代理接收到DHCP消息后,重新生成一個DHCP消息,然後轉發出去。
在DHCP客戶端看來,DHCP中繼代理就像DHCP伺服器;在DHCP伺服器看來,DHCP中繼代理就像DHCP客戶端。

工作原理


DHCP協議採用UDP作為傳輸協議,主機發送請求消息到DHCP伺服器的67號埠,DHCP伺服器回應應答消息給主機的68號埠。詳細的交互過程如下圖。
DHCP
DHCP
● ● DHCPClient以廣播的方式發出DHCPDiscover報文。
● ● 所有的DHCPServer都能夠接收到DHCPClient發送的DHCPDiscover報文,所有的DHCPServer都會給出響應,向DHCPClient發送一個DHCPOffer報文。DHCPOffer報文中“Your(Client)IPAddress”欄位就是DHCPServer能夠提供給DHCPClient使用的IP地址,且DHCPServer會將自己的IP地址放在“option”欄位中以便DHCPClient區分不同的DHCPServer。DHCPServer在發出此報文後會存在一個已分配IP地址的紀錄。
● ● DHCPClient只能處理其中的一個DHCPOffer報文,一般的原則是DHCPClient處理最先收到的DHCPOffer報文。DHCPClient會發出一個廣播的DHCPRequest報文,在選項欄位中會加入選中的DHCPServer的IP地址和需要的IP地址。
● ● DHCPServer收到DHCPRequest報文後,判斷選項欄位中的IP地址是否與自己的地址相同。如果不相同,DHCPServer不做任何處理只清除相應IP地址分配記錄;如果相同,DHCPServer就會向DHCPClient響應一個DHCPACK報文,並在選項欄位中增加IP地址的使用租期信息。
● ● DHCPClient接收到DHCPACK報文後,檢查DHCPServer分配的IP地址是否能夠使用。如果可以使用,則DHCPClient成功獲得IP地址並根據IP地址使用租期自動啟動續延過程;如果DHCPClient發現分配的IP地址已經被使用,則DHCPClient向DHCPServer發出DHCPDecline報文,通知DHCPServer禁用這個IP地址,然後DHCPClient開始新的地址申請過程。
● ● DHCPClient在成功獲取IP地址后,隨時可以通過發送DHCPRelease報文釋放自己的IP地址,DHCPServer收到DHCPRelease報文後,會回收相應的IP地址並重新分配。
在使用租期超過50%時刻處,DHCPClient會以單播形式向DHCPServer發送DHCPRequest報文來續租IP地址。
在使用租期超過87.5%時刻處,DHCPClient會以廣播形式向DHCPServer發送DHCPRequest報文來續租IP地址。如果DHCPClient成功收到DHCPServer發送的DHCPACK報文,則按相應時間延長IP地址租期;如果沒有收到DHCPServer發送的DHCPACK報文,則DHCPClient繼續使用這個IP地址,直到IP地址使用租期到期時,DHCPClient才會向DHCPServer發送DHCPRelease報文來釋放這個IP地址,並開始新的IP地址申請過程。
需要說明的是:DHCP客戶端可以接收到多個DHCP伺服器的DHCPOFFER數據包,然後可能接受任何一個DHCPOFFER數據包,但客戶端通常只接受收到的第一個DHCPOFFER數據包。另外,DHCP伺服器DHCPOFFER中指定的地址不一定為最終分配的地址,通常情況下,DHCP伺服器會保留該地址直到客戶端發出正式請求。
正式請求DHCP伺服器分配地址DHCPREQUEST採用廣播包,是為了讓其它所有發送DHCPOFFER數據包的DHCP伺服器也能夠接收到該數據包,然後釋放已經OFFER(預分配)給客戶端的IP地址。
如果發送給DHCP客戶端的地址已經被其他DHCP客戶端使用,客戶端會向伺服器發送DHCPDECLINE信息包拒絕接受已經分配的地址信息。
在協商過程中,如果DHCP客戶端發送的REQUEST消息中的地址信息不正確,如客戶端已經遷移到新的子網或者租約已經過期,DHCP伺服器會發送DHCPNAK消息給DHCP客戶端,讓客戶端重新發起地址請求過程。

DHCP服務


安裝DHCP服務

WindowsServer2003系統中默認沒有安裝DHCP服務,因此需要安裝DHCP服務。
第1步單擊“開始”按鈕,在“控制面板”中雙擊“添加或刪除程序”圖標,在打開的窗口左側單擊“添加/刪除
DHCP
DHCP
徠Windows組件”按鈕,打開“Windows組件嚮導”對話框。
第2步在“組件”列表中找到並勾選“網路服務”複選框,然後單擊“詳細信息”按鈕,打開“網路服務”對話框。接著在“網路服務的子組件”列表中勾選“動態主機配置協議(DHCP)”複選框,依次單擊“確定→下一步”按鈕開始配置和安裝DHCP服務。最後單擊“完成”按鈕完成安裝。
提示:如果是在ActiveDirectory(活動目錄)域中部署DHCP伺服器,還需要進行授權才能使DHCP伺服器生效。本例的網路基於工作組管理模式,因此無需進行授權操作即可進行創建IP作用域的操作。

DHCP伺服器

並不是安裝了DHCP功能后就能直接使用,還必須進行授權操作,未經授權操作的伺服器無法提供DHCP服務。對DHCP伺服器授權操作的過程如下:
1.依次點擊“開始→程序→管理工具→DHCP”,打開DHCP控制台窗口。
2.在控制台窗口中,用滑鼠左鍵點擊選中伺服器名,然後單擊右鍵,在快捷菜單中選中“授權”,此時需要幾
DHCP
DHCP
分鐘的等待時間。注意:如果系統長時間沒有反應,可以按F5鍵或選擇菜單工具中的“操作”下的“刷新”進行屏幕刷新,或先關閉DHCP控制台,在伺服器名上用滑鼠右鍵點擊。如果快捷菜單中的“授權”已經變為“撤消授權”,則表示對DHCP伺服器授權成功。此時,最明顯的標記是伺服器名前面紅色向上的箭頭變成了綠色向下的箭頭。這樣,這台被授權的DHCP伺服器就有分配IP的權利了。

IP作用域

要想為同一子網內的所有客戶端電腦自動分配IP地址,首先要做就是創建一個IP作用域,這也是事先確定一段IP地址作為IP作用域的原因。下面開始創建IP作用域的操作。
第1步依次單擊“開始→管理工具→DHCP”,打開“DHCP”控制台窗口。在左窗格中右擊DHCP伺服器名稱,執行“新建作用域”命令。
第2步在打開的“新建作用域嚮導”對話框中單擊“下一步”按鈕,打開“作用域名”嚮導頁。在“名稱”框中為該作用域鍵入一個名稱(如“CCE”)和一段描述性信息,單擊“下一步”按鈕。
小提示:這裡的作用域名稱只起到一個標識的作用,基本上沒有實際應用。
第3步打開“IP地址範圍”嚮導頁,分別在“起始IP地址”和“結束IP地址”編輯框中鍵入事先確定的IP地址範圍(本例為“10.115.223.2~10.115.223.254”)。接著需要定義子網掩碼,以確定IP地址中用於“網路/子網ID”的位數。由於本例網路環境為城域網內的一個子網,因此根據實際情況將“長度”微調框的值調整為“23”,單擊“下一步”按鈕(圖3)。
第4步在打開的“添加排除”嚮導頁中可以指定排除的IP地址或IP地址範圍。由於已經使用了幾個IP地址作為其它伺服器的靜態IP地址,因此需要將它們排除。在“起始IP地址”編輯框中鍵入排除的IP地址並單擊“添加”按鈕。重複操作即可,接著單擊“下一步”按鈕。
第5步在打開的“租約期限”嚮導頁中,默認將客戶端獲取的IP地址使用期限限制為8天。如果沒有特殊要求保持默認值不變,單擊“下一步”按鈕。
第6步打開“配置DHCP選項”嚮導頁,保持選中“是,我想現在配置這些選項”單選框並單擊“下一步”按鈕。在打開的“路由器(默認網關)”嚮導頁中根據實際情況鍵入網關地址(本例為“10.115.223.254”)並依次單擊“添加→下一步”按鈕。
第7步在打開的“域名稱和DNS伺服器”嚮導頁中沒有做任何設置,這是因為網路中沒有安裝DNS伺服器且尚未升級成域管理模式。依次單擊“下一步”按鈕,跳過“WINS伺服器”嚮導頁打開“激活作用域”嚮導頁。保持“是,我想現在激活此作用域”單選框選中狀態,並依次單擊“下一步”→“完成”按鈕結束配置。
設置DHCP客戶端安裝了DHCP服務並創建了IP作用域后,要想使用DHCP方式為客戶端電腦分配IP地址,除了網路中有一台DHCP伺服器外,還要求客戶端電腦應該具備自動向DHCP伺服器獲取IP地址的能力,這些客戶端電腦就被稱作DHCP客戶端。
因此我們對一台運行WindowsXP的客戶端電腦面前進行了如下設置:在桌面上右擊“網上鄰居”圖標,執行“屬性”命令。在打開的“網路連接”窗口中右擊“本地連接”圖標並執行“屬性”,打開“本地連接屬性”對話框。然後雙擊“Internet協議(TCP/IP)”選項,點選“自動獲得IP地址”單選框,並依次單擊“確定”按鈕。
提示:默認情況下端電腦使用的都是自動獲取IP地址的方式,一般無需進行修改,只需檢查一下就行了。
至此,DHCP伺服器端和客戶端已經全部設置完成了。在DHCP伺服器正常運行的情況下,首次開機的客戶端會自動獲取一個IP地址並擁有八天的使用期限。

創建用戶

創建新用戶或供應商選項類啟動DHCP管理器。單擊控制台樹中的適用的DHCP伺服器分支。右擊在的伺服器,然後單擊創建新的用戶類的”定義用戶類“,或者單擊“定義供應商類"創建一個新的供應商類。單擊"添加"。在"新的類"的對話框鍵入一個描述性的標識名稱,為新的選項,在"顯示名稱"框。還可能會將其他信息添加到"說明"框。鍵入數據以匹配的類ID由ID或ASCII下的DHCP客戶端提供DHCP伺服器服務使用。若要為十六進位位元組數字值輸入數據,請單擊文本框的左側。若要輸入信息交換(ASCII)文本字元值為美國標準碼數據,單擊文本框的右側。單擊"確定",然後單擊"關閉"。使用新的類ID配置DHCP作用域在DHCP管理器,雙擊相應的DHCP作用域。右鍵單擊"作用域選項",然後單擊"配置選項"。單擊"高級",單擊以選中複選框或要使用新的供應商或用戶類在功能旁邊的框。單擊"確定"。為客戶端計算機設置指定的DHCP類ID字元串連接到基於Windows2000的DHCP伺服器的客戶端計算機使用下面的命令可以設置指定的DHCP類別ID字元串:ipconfig/setclassidadapter_nameclass_id
是例如配置名為"LocalAreaConnection"的適配器名為"myuserclass用戶類ID,請在命令提示符下鍵入ipconfig/setclassid本地連接myuserclass,然後按ENTER鍵。
它標識"LocalAreaConnection"介面接收為"myuserclass"DHCP伺服器上配置的DHCP選項。
注意:ASCII中的類ID是區分大小寫,並必須的匹配在編輯類對話框中輸入標識數據的類來創建新的用戶或供應商選項類。

DHCP使用情況


DHCP
DHCP
什麼時候最好使用DHCP?
公司內部很多Laptop計算機使用的場合!因為Laptop在使用上,當設定為DHCPclient的時候,那麼只要它連接上的網域裡面有一部可以上網的DHCP伺服器,那部Laptop也就可以連接上Internet了!
網域內計算機數量相當的多時:另外一個情況就是網域內計算機數量相當龐大時,大到您沒有辦法一個一個的進行說明來設定他們自己的網路參數,這個時候為了省麻煩,還是架設DHCP來的方便。
什麼情況下不建議使用DHCP主機?
Client在開機的時候會主動的發送訊息給網域上的所有機器,這個時候,如果網域上就是沒有DHCP主機呢?那麼這部Client端計算機會發送四次請求信息,第一次等待時間為1秒,其餘三次的等待時間分別是9、13、16秒。如果還是沒有DHCP伺服器的響應,那麼在5分鐘之後,Client端計算機會重複這一動作。
在網域內的計算機,有很多機器其實是做為主機的用途,很少Client需求,那麼似乎就沒有必要架設DHCP。

DHCP跨網運作


DHCPDISCOVER是以廣播方式進行的,其情形只能在同一網段之內進行,因為路由器是不會將二層廣播包轉發出去的。但如果DHCP伺服器安設在其它的網路上面呢?由於DHCP客戶端還沒有IP環境設定,所以也不知道路由器地址,而且有些Router也不會將DHCP廣播封包傳遞出去,因此這情形下DHCPDISCOVER是永遠沒辦法抵達DHCP伺服器那端的,當然也不會發生OFFER及其它動作了。要解決這個問題,我們可以用DHCPAgent(或DHCPProxy)主機來接管客戶的DHCP請求,然後將此請求傳遞給真正的DHCP伺服器,然後將伺服器的回復傳給客戶。這裡,Proxy主機必須自己具有路由能力,且能將雙方的封包互傳對方。
若不使用Proxy,也可以在每一個網路之中安裝DHCP伺服器,但這樣的話,一來設備成本會增加,而且,管理上面也比較分散。當然,如果在一個十分大型的網路中,這樣的均衡式架構還是可取的。

網路設備


DHCP
DHCP
注意:不同的網路設備配置的語法不一樣.
要配置DHCP,可以按照下面任務列表進行配置,其中前三個配置任務是必須的。
l啟用DHCP伺服器與中繼代理(要求)
lDHCP排斥地址配置(要求)
lDHCP地址池配置(要求)
l配置CLASS(可選)
l配置綁定資料庫保存(可選)
l手工地址綁定(可選)
l配置Ping包次數(可選)
l配置Ping包超時時間(可選)
l乙太網介面DHCP客戶端配置(可選)
lPPP封裝鏈路上的DHCP客戶端配置(可選)
lFR封裝鏈路上的DHCP客戶端配置(可選)
lHDLC封裝鏈路上的DHCP客戶端配置(可選)
啟用DHCP伺服器與中繼代理
要啟用DHCP伺服器、中繼代理,全局配置模式中執行以下命令:
命令作用
R(config)#servicedhcp啟用DHCP伺服器和DHCP中繼代理功能
R(config)#noservicedhcp關閉DHCP伺服器和中繼代理功能
DHCP排斥地址配置
如果沒有特別配置,DHCP伺服器會試圖將在地址池中定義的所有子網地址分配給DHCP客戶端。因此,如果你想保留一些地址不想分配,比如已經分配給伺服器或者設備了,你必須明確定義這些地址是不允許分配給客戶端的。
要配置哪些地址不能分配給客戶端,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcpexcluded-address定義IP地址範圍,這些地址DHCP不會分配給客戶端
R(config)#noipdhcpexcluded-address
low-ip-address[high-ip-address]
取消配置地址排斥
配置DHCP伺服器,一個好的習慣是將所有已明確分配的地址全部不允許DHCP分配,這樣可以帶來兩個好處:1)不會發生地址衝突;2)DHCP分配地址時,減少了檢測時間,從而提高DHCP分配效率。
DHCP地址池配置
DHCP的地址分配以及給客戶端傳送的DHCP各項參數,都需要在DHCP地址池中進行定義。如果沒有配置DHCP地址池,即使啟用了DHCP伺服器,也不能對客戶端進行地址分配;但是如果啟用了DHCP伺服器,不管是否配置了DHCP地址池,DHCP中繼代理的總是起作用的。
如果DHCP請求包中沒有DHCP中繼代理的IP地址,就分配與接收DHCP請求包介面的IP地址同一子網或網路的地址給客戶端。如果沒定義這個網段的地址池,地址分配就失敗;
如果DHCP請求包中有中繼代理的IP地址,就分配與該地址同一子網或網路的地址給客戶端。如果沒定義這個網段的地址池,地址分配就失敗。
要進行DHCP地址池配置,請根據實際的需要執行以下任務,其中前三個任務要求執行:
l配置地址池並進入其配置模式(要求)
l配置地址池子網及其掩碼(要求)
l配置客戶端預設網關(要求)
l配置地址租期(可選)
l配置客戶端的域名(可選)
l配置域名伺服器(可選)
l配置NetBIOSWINS伺服器(可選)
l配置客戶端NetBIOS節點類型(可選)
l配置DHCP地址池根據Option82分配地址(可選)
配置地址池名並進入其配置模式
要配置地址池名並進入地址池配置模式,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcppooldhcp-pool配置地址池名並進入地址池配置模式
地址池的配置模式顯示為“R(dhcp-config)#”。
配置客戶端啟動文件
客戶端啟動文件是客戶端啟動時要用到的啟動映像文件。啟動映像文件通常是DHCP客戶端需要下載的操作系統。
要配置客戶端的啟動文件,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#bootfilefilename配置客戶端啟動文件名
配置客戶端預設網關
配置客戶端默認網關,這個將作為伺服器分配給客戶端的默認網關參數。預設網關的IP地址必須與DHCP客戶端的IP地址在同一網路。
要配置客戶端的預設網關,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#default-routeraddress[address2…address8]配置預設網關
配置地址租期
DHCP伺服器給客戶端分配的地址,預設情況下租期為1天。當租期快到時客戶端需要請求續租,否則過期后就不能使用該地址。
要配置地址租期,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#lease{days[hours][minutes]|infinite}配置地址租期
配置客戶端的域名
可以指定客戶端的域名,這樣當客戶端通過主機名訪問網路資源時,不完整的主機名會自動加上域名後綴形成完整的主機名。
要配置客戶端的域名,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#domain-namedomain配置域名
配置域名伺服器
當客戶端通過主機名訪問網路資源時,需要指定DNS伺服器進行域名解析。要配置DHCP客戶端可使用的域名伺服器,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#dns-serveraddress
[address2…address8]
配置DNS伺服器
配置NetBIOSWINS伺服器
NetBIOSWINS是微軟TCP/IP網路解析NetNBIOS名字到IP地址的一種域名解析服務。WINS伺服器是一個運行在WindowsNT下的伺服器。當WINS伺服器啟動后,會接收從WINS客戶端發送的註冊請求,WINS客戶端關閉時,會向WINS伺服器發送名字釋放消息,這樣WINS資料庫中與網路上可用的計算機就可以保持一致了。
要配置DHCP客戶端可使用的NetBIOSWINS伺服器,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#netbios-name-serveraddress[address2…address8]配置NetBIOSWINS伺服器
配置客戶端NetBIOS節點類型
微軟DHCP客戶端NetBIOS節點類型有四種:1)Broadcast,廣播型節點,通過廣播方式進行NetBIOS名字解析;2)Peer-to-peer,對等型節點,通過直接請求WINS伺服器進行NetBIOS名字解析;3)Mixed,混合型節點,先通過廣播方式請求名字解析,后通過與WINS伺服器連接進行名字解析;4)Hybrid,複合型節點,首先直接請求WINS伺服器進行NetBIOS名字解析,如果沒有得到應答,就通過廣播方式進行NetBIOS名字解析。
預設情況下,微軟操作系統的節點類型為廣播型或者複合型。如果沒有配置WINS伺服器,就為廣播型節點;如果配置了WINS伺服器,就為複合型節點。
要配置DHCP客戶端NetBIOS節點類型,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#netbios-node-typetype配置NetBIOS節點類型
配置DHCP地址池的網路號和掩碼
進行動態地址綁定的配置,必須配置新建地址池的子網及其掩碼,為DHCP伺服器提供了一個可分配給客戶端的地址空間。除非有地址排斥配置,否則所有地址池中的地址都有可能分配給客戶端。DHCP在分配地址池中的地址,是按順序進行的,如果該地址已經在DHCP綁定表中或者檢測到該地址已經在該網段中存在,就檢查下一個地址,直到分配一個有效的地址。
要配置地址池子網和掩碼,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#networknetwork-numbermask配置DHCP地址池的網路號和掩碼
配置DHCP地址池根據Option82分配地址
通常,DHCP中繼代理在轉發報文的過程中會添加一個Option82選項用來記錄客戶端的相關信息(如客戶端所處的VLAN、設備槽號、埠號或者用戶的1X等級等等),DHCP伺服器在收到該報文後可以通過解析Option82信息來根據客戶端的具體信息進行地址分配。如對某個VLAN或者某個用戶等級的客戶端分配某個範圍內的IP地址。在需要根據用戶的具體網路位置信息(如VLAN、槽號、埠號)來為用戶分配特有的IP地址範圍或者根據用戶的優先順序分配特有的(如受限、非受限)IP地址時,可以採用該功能。
每個DHCP地址池可以根據Option82信息進行地址分配,我們把Option82信息進行匹配歸類,在DHCP地址池中為這些歸類分別指定可以分配的網段範圍。這個歸類稱為CLASS,一個DHCP地址池可以關聯多個CLASS,每個CLASS可以指定不同的網段範圍。
在地址分配的過程中可以先根據客戶端所處的網段確定可以分配的地址池,再根據其Option82信息進一步確定其所屬的CLASS,從CLASS對應的網段範圍中分配IP地址。當一個請求報文匹配地址池中的多個CLASS時,按照CLASS在地址池中配置的先後順序從對應的CLASS網段範圍中分配地址,如果該CLASS已無可分配地址,則繼續從下一個匹配的CLASS網段範圍進行分配,依此類推。每個CLASS對應一個網段範圍,網段範圍必須從低地址到高地址,可以允許多個CLASS之間的網段範圍重複。如果指明了地址池關聯的CLASS,但對應的網段範圍沒有配置,則該CLASS默認的網段範圍和CLASS所處的地址池的網段範圍相同。
要配置地址池關聯的CLASS以及CLASS所對應的網段範圍,在地址池配置模式中執行以下命令:
命令作用
R(dhcp-config)#classclass-name配置關聯的CLASS名稱,並進入地址池的CLASS配置模式
R(config-dhcp-pool-class)#addressrangelow-ip-addresshigh-ip-address配置對應的網段範圍
值得注意的是:
● ● 當配置的CLASS在全局CLASS查找不到的情況下,會自動創建一個全局的CLASS;
● ● 在地址池中配置關聯CLASS與靜態手工綁定配置衝突,不可同時配置。
● ● 每個地址池下允許配置的CLASS數目最大為5個

配置CLASS

配置CLASS的Option82匹配信息
在全局模式下進入CLASS配置模式后,可以配置每個CLASS對應的具體的Option82匹配信息。一個CLASS可以匹配多個Option82信息,請求報文匹配時只要匹配其中一條信息即認為通過匹配,如果CLASS不配置任何的匹配信息,則認為該CLASS可以匹配任何攜帶Option82信息的請求報文。請求報文只有匹配了具體的CLASS后,才可從對應的地址池關聯的CLASS網段範圍中分配地址。
要配置全局的CLASS以及CLASS所對應的匹配Option82信息,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcpclassclass-name配置CLASS名並進入全局CLASS配置模式
R(config-dhcp-class)#relayagentinformation進入Option82匹配信息配置模式
R(config-dhcp-class-relayinfo)#relay-informationhexaabb.ccdd.eeff…[*]
配置具體的Option82匹配信息
1.aabb.ccdd.eeff..為16進位數
2.*代表不完全匹配模式,只需要匹配*之前信息即通過匹配
值得注意的是:全局CLASS可匹配的最大個數為20個。
配置CLASS的標識信息
要配置標識信息來描述CLASS代表的含義,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcpclassclass-name配置CLASS名並進入CLASS配置模式
R(config-dhcp-class)#remarkusedin#1building配置標識信息
配置是否使用CLASS分配
要設置使用CLASS來進行地址分配,在全局配置模式中執行如下命令:
命令作用
R(config)#ipdhcpuseclass配置使用CLASS進行地址分配
應注意的是:默認情況下該命令打開,執行NO命令關閉使用CLASS進行地址分配。
配置定時把綁定資料庫保存到FLASH
為了防止設備斷電重啟導致設備上的DHCP伺服器的綁定資料庫(租約信息)丟失,DHCP提供可配置的定時把綁定資料庫寫入FLASH的命令,默認情況下,定時為0,即不定時寫FLASH。
要配置定時把綁定資料庫保存到FLASH,在全局配置模式中執行以下命令:
命令作用
R(config)#[no]ipdhcpdatabasewrite-delay[time]
設置DHCP延遲寫FLASH的時間
time:600s--86400s,預設為0
值得注意的是:由於不停擦寫FLASH會造成FLASH的使用壽命縮短,所以在設置延遲寫FLASH時間時需要注意,設置時間較短有利於設備信息更有效的保存,設置時間較長能夠減少寫FLASH的次數,延長FLASH的使用壽命。
配置手動把綁定資料庫保存到FLASH
為了防止設備斷電重啟導致設備上的DHCP綁定資料庫(租約信息)丟失,除了配置定時寫FLASH外,也可以根據需要手動地把當前的綁定資料庫信息立即寫入FLASH。
要配置手動把綁定資料庫保存到FLASH,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcpdatabasewrite-to-flash把DHCP綁定資料庫信息寫入FLASH

手工地址綁定

地址綁定是指IP地址和客戶端MAC地址的映射關係。地址綁定有兩種:1)手工綁定,就是在DHCP伺服器資料庫中,通過手工定義將IP地址和MAC地址進行靜態映射,手工綁定其實是一個特殊地址池;2)動態綁定,DHCP伺服器接收到DHCP請求時,動態地從地址池中分配IP地址給客戶端,而形成的IP地址和MAC地址映射。
要定義手工地址綁定,首先需要為每一個手動綁定定義一個主機地址池,然後定義DHCP客戶端的IP地址和硬體地址或客戶端標識。硬體地址就是MAC地址。客戶端標識,微軟客戶端一般定義客戶端標識,而不定義MAC地址,客戶端標識包含了網路媒介類型和MAC地址。關於媒介類型的編碼,請參見RFC1700中關於“AddressResolutionProtocolParameters”部分內容。乙太網類型為“01”。
要配置手工地址綁定,在地址池配置模式中執行以下命令:
命令作用
R(config)#ipdhcppoolname定義地址池名,進入DHCP配置模式
R(dhcp-config)#hostaddress[netmask]定義客戶端IP地址
R(dhcp-config)#client-identifierunique-identifier
定義客戶端硬體地址,如aabb.bbbb.bb88
定義客戶端的標識,如01aa.bbbb.bbbb.88
R(dhcp-config)#client-namename(可選)用標準的ASCII字元定義客戶端的名字,名字不要包括域名。如定義mary主機名,不可定義成mary.rg.com
配置Ping包次數
預設情況,當DHCP伺服器試圖從地址池中分配一個IP地址時,會對該地址執行兩次Ping命令(一次一個數據包)。如果Ping沒有應答,DHCP伺服器認為該地址為空閑地址,就將該地址分配給DHCP客戶端;如果Ping有應答,DHCP伺服器認為該地址已經在使用,就試圖分配另外一個地址給DHCP客戶端,直到分配成功。
要配置Ping包次數,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcppingpackets[number]配置DHCP伺服器在分配地址之前的Ping包次數,如果設為0則不進行Ping操作,預設為2。
配置Ping包超時時間
預設情況下,DHCP伺服器Ping操作如果500毫秒沒有應答,就認為沒有該IP地址主機存在。你可以通過調整Ping包超時時間,改變伺服器Ping等待應答的時間。
要配置Ping包超時時間,在全局配置模式中執行以下命令:
命令作用
R(config)#ipdhcppingtimeoutmilliseconds配置DHCP伺服器Ping包超時時間,預設為500ms。
乙太網介面DHCP客戶端配置
配置乙太網介面DHCP客戶端,在介面配置模式中執行以下命令:
命令作用
R(config-if)#ipaddressdhcp配置通過DHCP得到IP地址
PPP封裝鏈路上的DHCP客戶端配置
配置DHCP客戶端,在介面配置模式中執行以下命令:
命令作用
R(config-if)#ipaddressdhcp配置通過DHCP得到IP地址
FR封裝鏈路上的DHCP客戶端配置
在介面配置模式中執行以下命令:
命令作用
R(config-if)#ipaddressdhcp配置通過DHCP得到IP地址
HDLC封裝鏈路上的DHCP客戶端配置
配置DHCP客戶端,在介面配置模式中執行以下命令:
命令作用
R(config-if)#ipaddressdhcp配置通過DHCP得到IP地址