本文提供了操作Cisco IOS® Classic / IOS XE IPv4 DHCP服务器的配置指南,重点在于提供一致、可靠的服务。
为需要DHCP服务的每个子网配置一个通用池。常规池向非服务器客户端(如访客、无线电话)提供IP地址和其他信息。在本示例中,为子网10.10.10.0 /24提供DHCP服务,其中62个地址保留用于静态绑定,而池中剩余193个地址(10.10.10.63到10.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检查后,DHCP服务器在向客户端提供新的DHCP地址之前,将尝试ping该地址,以查看其他设备是否正在使用该地址。在本示例中,服务器将发送最多三个ping数据包,每个数据包的超时为400毫秒,然后才发送新的OFFER。这会在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检查导致DHCP服务器在提交Cisco Bug ID CSCdp之前出现扩展问题35267
Cisco IOS Classic 15.0(1)M和Cisco Bug ID CSCua63083
具体而言,旧版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地址客户端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记住已终止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
host 10.10.10.42 255.255.255.0
client-identifier 01e2.2e0b.baf5.4a
对于大多数设备,客户端标识符将是其接口MAC地址,前面是0x01二进制八位数。但是,某些设备将仅使用硬件地址请求DHCP地址:
router(config)#ip dhcp pool BedroomEchoDot
host 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 :
Utilization mark (high/low) :100 / 0
Subnet size (first/next) :0 / 0
Total addresses :254
Leased addresses :61
排除地址:62
记住的地址:77
Pending event :none
1 subnet is currently in the pool :
当前索引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
|
初始版本 |