DHCP 服务基本概念
在配置之前,我们先简单回顾一下 DHCP 的工作原理:

- Discover (发现): 客户端在网络上广播一条消息,寻找可用的 DHCP 服务器。
- Offer (提供): DHCP 服务器收到请求后,从地址池中挑选一个可用的 IP 地址,并提供给客户端(广播)。
- Request (请求): 客户端选择其中一个服务器的 Offer,并向网络广播一条消息,正式请求使用该 IP 地址。
- ACK (确认): DHCP 服务器收到请求后,发送一个确认包,将该 IP 地址、子网掩码、网关、DNS 等信息分配给客户端,IP 地址已被占用,则发送 NAK (否定确认)。
配置步骤详解
我们将配置一个名为 LAN_POOL 的 DHCP 地址池,为 168.1.0/24 网段提供服务。
第 1 步:进入全局配置模式
Router> enable Router# configure terminal Enter configuration commands, one per line. End with CNTL/Z. Router(config)#
第 2 步:排除静态 IP 地址(可选但推荐)
如果您想为某些设备(如服务器、打印机)分配固定的 IP 地址,最好先将这些 IP 地址从 DHCP 地址池中“排除”掉,避免 DHCP 服务器错误地将它们分配出去。
! 排除 192.168.1.1 到 192.168.1.10 之间的所有 IP 地址 Router(config)# ip dhcp excluded-address 192.168.1.1 192.168.1.10
第 3 步:创建 DHCP 地址池
创建一个 DHCP 地址池,并为其命名(名称自定义,如 LAN_POOL)。
Router(config)# ip dhcp pool LAN_POOL Router(dhcp-config)#
进入 DHCP 地址池配置模式后,您需要设置以下关键参数:

第 4 步:配置网络地址和子网掩码
指定该 DHCP 地址池负责的网段。
Router(dhcp-config)# network 192.168.1.0 255.255.255.0
或者使用 CIDR 表示法(更推荐):
Router(dhcp-config)# network 192.168.1.0 /24
第 5 步:配置默认网关
指定客户端的默认网关地址。
Router(dhcp-config)# default-router 192.168.1.1
第 6 步:配置 DNS 服务器
指定客户端使用的 DNS 服务器地址,可以配置一个或多个。

! 配置一个 DNS 服务器 Router(dhcp-config)# dns-server 8.8.8.8 ! 或者配置多个 DNS 服务器(用空格隔开) Router(dhcp-config)# dns-server 8.8.8.8 1.1.1.1
第 7 步:配置租期(可选)
设置 IP 地址的租用时间,默认是 24 小时。
- 天、小时、分钟格式:
Router(dhcp-config)# lease 7 0 0 ! 租期为7天
- 秒数格式:
Router(dhcp-config)# lease 604800 ! 租期为7天 (7 * 24 * 60 * 60)
第 8 步:退出配置模式并保存
Router(dhcp-config)# end Router# write memory Building configuration... [OK] Router#
完整配置示例
假设您有一台 Cisco 路由器,其 FastEthernet0/0 接口连接到内部局域网,以下是完整的配置脚本:
! 进入全局配置模式 configure terminal ! 1. 排除静态IP地址 (给网关和服务器用) ip dhcp excluded-address 192.168.1.1 192.168.1.10 ! 2. 创建DHCP地址池 ip dhcp pool LAN_POOL ! 3. 配置网络地址和掩码 network 192.168.1.0 255.255.255.0 ! 4. 配置默认网关 (通常是路由器自身的接口IP) default-router 192.168.1.1 ! 5. 配置DNS服务器 dns-server 8.8.8.8 114.114.114.114 ! 6. 配置租期为3天 lease 3 0 0 ! 退出并保存 end write memory
高级配置选项
配置多个 DHCP 地址池
您可以在一台路由器上创建多个 DHCP 地址池,为不同的网段提供服务。
! 为 192.168.1.0/24 网段创建池 ip dhcp pool VLAN10 network 192.168.1.0 255.255.255.0 default-router 192.168.1.1 dns-server 8.8.8.8 ! 为 192.168.2.0/24 网段创建另一个池 ip dhcp pool VLAN20 network 192.168.2.0 255.255.255.0 default-router 192.168.2.1 dns-server 1.1.1.1
配置中继代理
如果您的 DHCP 服务器和客户端不在同一个广播域(在交换机的不同 VLAN 中),您需要在连接客户端的交换机接口上配置 DHCP 中继(在 Cisco 交换机上称为 ip helper-address)。
- 场景: 交换机连接了 VLAN 10 (192.168.1.0/24) 和 VLAN 20 (192.168.2.0/24),而 DHCP 服务器位于 VLAN 10 的网关(192.168.1.1)上,VLAN 20 的客户端也需要获取 IP 地址。
- 配置: 在交换机上,为连接 VLAN 20 客户端的接口(或 SVI 接口)配置
ip helper-address,指向 DHCP 服务器的地址。
! 假设交换机的 VLAN 20 SVI 是 interface Vlan20 interface Vlan20 ip address 192.168.2.1 255.255.255.0 ! 将 DHCP 请求转发到 192.168.1.1 的 DHCP 服务器 ip helper-address 192.168.1.1
验证和维护命令
配置完成后,您可以使用以下命令来检查 DHCP 服务的状态:
- 查看 DHCP 地址池的详细配置:
Router# show ip dhcp pool
- 查看 DHCP 地址池的地址使用情况:
Router# show ip dhcp conflict ! 检查地址冲突 Router# show ip dhcp binding ! 查看已分配的地址绑定 Router# show ip dhcp conflict ! 查看地址冲突
- 查看 DHCP 数据库(如果配置了):
Router# show ip dhcp conflict
- 清除 DHCP 绑定(谨慎使用):
Router# clear ip dhcp binding * ! 清除所有绑定 Router# clear ip dhcp binding 192.168.1.50 ! 清除特定IP的绑定
常见问题排查
-
客户端无法获取 IP 地址:
- 检查物理连接: 确保客户端和路由器/交换机之间的链路正常。
- 检查 IP 和子网掩码: 确保客户端和 DHCP 服务器在同一网段。
- 检查防火墙: 确保没有防火墙规则阻止 UDP 端口 67 (DHCP Server) 和 68 (DHCP Client)。
- 检查配置: 使用
show run | include dhcp检查 DHCP 配置是否正确。 - 检查中继代理: 如果使用了
ip helper-address,确保其指向的地址是正确的 DHCP 服务器地址。
-
IP 地址冲突:
- 使用
show ip dhcp conflict命令查看冲突的 IP 地址,冲突通常是由于手动为客户端设置了 DHCP 地址池中的 IP 地址,或者有其他设备(如家用路由器)也在同一网络中提供 DHCP 服务。
- 使用
希望这份详细的指南能帮助您成功配置 Cisco 设备上的 DHCP 服务器!
