本文提供操作Cisco IOS® Classic / IOS XE IPv4 DHCP伺服器的配置指南,重點是提供一致、可靠的服務。
為需要DHCP服務的每個子網配置一個通用池。常規池向非伺服器客戶端(如訪客、無線電話)提供IP地址和其他資訊。在此示例中,為子網10.10.10.0 /24提供DHCP服務,其中62個地址保留用於靜態繫結,而池中的其餘193個地址(10.10.10.63到10.10.254)。租用時間為6小時,並提供Cisco Umbrella DNS伺服器地址。
router(config)#ip dhcp excluded-address 10.10.10.1 10.10.10.62
ip dhcp pool BIGPOOL
network 10.10.10.0 255.255.255.0
default-router 10.10.10.1
dns-server 208.67.222.222 208.67.220.220
租賃0 6
附註:DHCP伺服器在子網中必須有一個第3層介面(如SVI),才能檢視DHCP流量。
附註: 如果提供DHCP服務的Cisco IOS系統本身就是其網路上行鏈路的DHCP客戶端,則可以在池下使用「import all」命令,引入DNS伺服器資訊和其他選項。
配置了ping-check後,DHCP伺服器在向客戶端提供新的DHCP地址之前,將嘗試ping該地址,檢視其他裝置是否正在使用該地址。在本示例中,伺服器在傳送新的OFFER之前,最多會傳送三個ping資料包,每個資料包都具有400毫秒的超時。這將在DISCOVER和OFFER之間造成1.2秒的延遲,因此,在嚴格控制地址分配的高度關鍵型應用中,您可能希望使用「ip dhcp ping packets 0」禁用此功能,這樣會使多台裝置嘗試使用同一IP地址的風險增加。
router(config)#ip dhcp ping packets 3
router(config)#ip dhcp ping timeout 400
附註:ping-check導致DHCP伺服器在提交Cisco錯誤ID CSCdp35267之前遇到擴充問題
63083在Cisco IOS Classic 15.0(1)M和思科錯誤ID CSCua中
在Cisco IOS XE 16.1.1中。具體來說,舊版Catalyst交換機中的Cisco IOS XE 3.xE「Nova」軟體沒有擴展增強功能,因此這些平台不應用於大規模DHCP服務。
router(config)#ip dhcp remember
使用DHCP時,請記住,從池中租用的地址到期後,該地址將返回到池中,但伺服器會「記得」上次使用該地址的時間,以及該IP地址分配到的最後一個客戶端ID/硬體地址。除非條目是池中最近最少使用的地址,否則不會將該地址重新分配給其他客戶端。這樣可避免衝突,並可用作DHCP客戶端的歷史記錄。
可以使用命令「show ip dhcp binding [remembered]」檢視池中記住的繫結。範例:
router#show ip dhcp binding remembered
記住所有未與VRF關聯的池中的繫結:
IP address Client-ID/租約到期型別狀態介面
硬體地址/
使用者名稱
10.10.10.123 0146.81df.f153.fe 2026年6月27日01:47 PM記住終止的Vlan102
10.10.10.124 01e2.2e0b.baf5.4a 2026年7月30日07:50 AM記住終止的Vlan102
10.10.10.125 0146.8f75.339a.66 2026年7月25日上午06:17記住終止的Vlan102
對於LAN交換機和接入點等基礎設施裝置,最好分配固定DHCP繫結。即使裝置的IP地址是靜態配置的,如果只是為了確保該地址不被其他DHCP客戶端使用,仍可以為其設定靜態DHCP繫結。
首先,為固定繫結配置一個排除的地址範圍。所有固定繫結以及任何靜態地址分配都應進入此範圍。
對於具有固定繫結的每台裝置,配置如下所示的DHCP池條目:
router(config)#ip dhcp pool AARON-X1
主機10.10.10.42 255.255.255.0
client-identifier 01e2.2e0b.baf5.4a
對於大多數裝置,客戶端識別符號將是其介面MAC地址,前面是0x01二進位制八位數。但是,某些裝置將僅使用hardware-address請求DHCP地址:
router(config)#ip dhcp pool BedroomEchoDot
主機10.10.10.24 255.255.255.0
hardware-address 66.db.f5b3.e85f
要瞭解給定客戶端具有哪些客戶端識別符號,可以讓它從常規池中抽取一個地址,找出它具有哪些地址,然後檢視池的繫結表:
router#show ip dhcp binding |包括自動
10.10.10.137 0196.8eac.8963.b4 2026年8月04日下午05:03自動
然後刪除自動繫結,以便可以配置靜態繫結:
router#clear ip dhcp binding 10.10.10.137
客戶端特定的DHCP選項可以在靜態繫結下配置。如果靜態繫結中的地址與常規池中的「網路」作用域位於同一子網中,則將向靜態繫結的客戶端提供該池中的選項。
為了在伺服器重新載入之間提供可靠的DHCP服務,將動態繫結備份到資料庫檔案非常重要。否則,重新載入後,伺服器將不知道它分發的現有租約,因此可能會分配其他客戶端已在使用的IP地址。即使ping檢查有效,情況也是如此,因為某些裝置不會回覆ICMP ECHO請求。
router(config)#ip dhcp database flash:/dhcp-bindings.db
當DHCP伺服器重新啟動時,它將從備份檔案讀取DHCP繫結。
DHCP資料庫可以儲存在網路伺服器上,並且可以從一個DHCP伺服器移動到另一個,以實現無縫遷移,但此類使用不屬於本文的範圍。
要檢視給定池中分配/可用的繫結數量,請執行以下操作:
router#show ip dhcp pool BIGPOOL
池BIGPOOL :
使用標籤(高/低):100 / 0
子網大小(第一個/下一個):0 / 0
地址總數:254
租用地址:61
排除的地址:62
記住的地址:77
掛起事件:none
池中當前有1個子網:
當前索引IP地址範圍已租用/已排除/總計
10.10.10.160 10.10.10.1 - 10.10.10.254 61 / 62 / 254
可用地址的數量將為 — (租用+排除)總數,因此本例中為123(254 -(61+62))。
以下命令可用於調試Cisco IOS DHCP伺服器:
router#debug ip dhcp server packet
router#debug ip dhcp server events
DHCP事務的資料包捕獲非常有用,例如通過運行SPAN或嵌入式資料包捕獲。
請參閱企業網路中的DHCP故障排除。
請參閱IOS XE IP編址配置指南中的配置Cisco IOS XE DHCP伺服器一章。
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
1.0 |
06-Aug-2026
|
初始版本 |