1. 什么是 DHCP 中继
DHCP 使用广播通信,广播包无法穿越路由器(三层设备)。当客户端和 DHCP 服务器不在同一个网段时,需要DHCP 中继代理(DHCP Relay Agent)将客户端的广播请求转为单播,转发到另一网段的 DHCP 服务器。
客户端广播 DHCPDISCOVER → 中继代理接收并转为单播 → 转发到远端 DHCP 服务器 → 服务器响应到中继代理 → 中继代理转发回客户端。
2. 场景分析
典型多网段环境:
| 网段 | DHCP 服务器 | 中继代理 |
|---|---|---|
| 192.168.10.0/24(办公) | DC01(192.168.10.254) | 不需要(同网段) |
| 192.168.20.0/24(生产) | 无本地 DHCP | 需在网关(192.168.20.1)上配置 |
| 192.168.30.0/24(访客) | 无本地 DHCP | 需在网关(192.168.30.1)上配置 |
3. 配置 DHCP 中继代理
以 Windows Server 作为路由器并启用中继为例:
服务器管理器 → 右键「添加角色和功能」
勾选 「远程访问」 或 「路由和远程访问服务」 → 安装
打开「路由和远程访问」管理控制台
右键服务器 → 「配置并启用路由和远程访问」
选择「LAN 路由」 → 完成
展开 IPv4 → 常规 → 右键 → 「新增路由协议」 → 选择 「DHCP 中继代理」
右键「DHCP 中继代理」 → 「新增接口」 → 选择面向客户端的网卡
接口属性中,「中继 DHCP 数据包」 勾选,服务器 IP 填 192.168.10.254
# 安装路由角色
Install-WindowsFeature -Name Routing -IncludeManagementTools
# 查看网络接口
Get-NetAdapter | Select-Object Name, InterfaceDescription, Status
# 安装 DHCP 中继代理
Set-Service RemoteAccess -StartupType Automatic
Start-Service RemoteAccess
netsh routing ip relay install
# 添加 DHCP 服务器地址
netsh routing ip relay add dhcpserver 192.168.10.254
# 在指定接口上启用中继
netsh routing ip relay set interface "生产网段" enable
# 验证
netsh routing ip relay show interface
netsh routing ip relay show dhcpserver
4. VLAN 环境下的 DHCP
在企业网络中,VLAN 通常通过三层交换机实现网间路由。DHCP 中继一般在交换机上配置:
Cisco 交换机配置示例
! VLAN 20 接口配置 DHCP 中继
interface Vlan20
ip helper-address 192.168.10.254
! VLAN 30 接口配置 DHCP 中继
interface Vlan30
ip helper-address 192.168.10.254
华为交换机使用 dhcp select relay 和 dhcp relay server-ip 192.168.10.254 命令,语法与 Cisco 不同。
5. 验证与排错
DHCP 管理器 → 查看 LAN-Subnet 的地址租用,确认 20/30 网段客户端已获取 IP
在客户端运行 ipconfig /all,确认 DHCP 服务器为 192.168.10.254
# 查看所有活跃租约
Get-DhcpServerv4Lease -ComputerName "DC01.iehang.cn" `
-ScopeId 192.168.10.0 | Format-Table IPAddress, ClientId, AddressState
# 检查中继服务状态
Get-Service RemoteAccess
netsh routing ip relay show interface
6. 常见问题
中继未生效或目标 DHCP 服务器上没有对应网段的作用域。检查中继配置和作用域是否存在。
确认 DHCP 服务器上有对应网段的作用域和排除范围,且作用域已激活。
中小型网络够用。大型网络建议使用硬件路由器或三层交换机做中继,性能更好。