Windows_DHCP_运维文档
Windows DHCP 服务器 运维手册
1. 系统概述
- 产品名称:Windows Server DHCP(Dynamic Host Configuration Protocol)角色
- 操作系统版本:Windows Server 2016 / 2019 / 2022(请确认)
- 部署位置:数据中心 / IP 地址:________________(请填写)
主要功能:
- IP 地址自动分配与管理
- 子网(作用域)管理
- DHCP 选项配置(DNS、网关、WINS 等)
- DHCP 故障转移(高可用)
- DHCP 中继代理
- IP 地址租约管理与保留
- 服务对象:全网所有使用 DHCP 获取 IP 地址的客户端(办公 PC、瘦客户机、移动设备、IP 电话等)
2. 系统架构
2.1 组件组成
| 组件 | 说明 | 部署方式 |
|---|---|---|
| DHCP 主服务器 | 主用 DHCP 服务器,负责 IP 地址分配 | 物理机/虚拟机 |
| DHCP 辅助服务器 | DHCP 故障转移的备用节点 | 物理机/虚拟机 |
| DHCP 数据库 | 存储租约和配置信息(Jet 数据库) | 本地或共享存储 |
| DHCP 中继代理 | 跨子网转发 DHCP 请求 | 三层交换机或路由器 |
| NAP(可选) | 网络访问保护组件 | 可选 |
2.2 网络拓扑
[DHCP 客户端(PC/终端)]
↓ (DHCP Discover/Request)
[接入层交换机(DHCP Snooping 启用)]
↓ (DHCP Relay 或广播转发)
[汇聚/核心层交换机/路由器]
↓ (DHCP Relay Agent 跨子网转发)
[DHCP 主服务器] ←──故障转移──→ [DHCP 辅助服务器]
↓
[AD + DNS 服务器](选项配置项)DHCP 通信流程(DORA):
1. DHCP Discover(客户端广播寻找 DHCP 服务器)
2. DHCP Offer(DHCP 服务器提供 IP 地址)
3. DHCP Request(客户端请求使用该 IP)
4. DHCP Acknowledge(DHCP 服务器确认分配)2.3 依赖关系
- AD/DNS:DHCP 选项通常配置 DNS 服务器地址
- 网络设备:三层交换机/路由器需配置 DHCP 中继(如有跨子网需求)
- 网络基础架构:DHCP 依赖广播通信,需确保 VLAN 内广播可达
- NTP:租约时间依赖于准确的时间
3. 日常运维操作
3.1 启动与停止
启动顺序:
- 确保网络基础架构正常运行
- 启动 DHCP 服务器
- 确认 DHCP 服务已启动且正在监听
- 检查作用域状态(是否已激活)
停止顺序:
- 先停用相关作用域(停止新租约发放)
- 停止 DHCP 服务
- 关闭服务器
DHCP 服务管理:
# 启动/停止/重启 DHCP 服务
net start dhcpserver
net stop dhcpserver
net restart dhcpserver
# 使用 PowerShell
Start-Service dhcpserver
Stop-Service dhcpserver
Restart-Service dhcpserver
# 查看服务状态
Get-Service dhcpserver3.2 服务状态检查
基本状态检查:
# 检查 DHCP 服务进程
Get-Service dhcpserver
# 预期输出:Running
# 检查 DHCP 服务绑定的网卡和监听端口
Get-DhcpServerInDc
netsh dhcp server show bindings
# 查看 DHCP 服务器统计信息
Get-DhcpServerStatistics
# 检查作用域状态
Get-DhcpServerv4Scope | Format-Table ScopeId, Name, State, SubnetMask详细统计信息:
# 查看所有作用域统计
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, AddressesInUse, AddressesFree, PercentageInUse
# 查看特定作用域统计
Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0
# 查看 DHCP 服务器全局统计
netsh dhcp server show statistics
# 总地址数、已用地址数、可用地址数、冲突地址数DHCP 数据库检查:
# 检查 DHCP 数据库一致性
netsh dhcp server reconcile
# 检查特定作用域的一致性
netsh dhcp server scope 192.168.1.0 reconcile3.3 日志查看
关键日志位置:
| 日志/文件 | 路径 | 说明 |
|---|---|---|
| DHCP 审计日志 | %SystemRoot%\System32\DHCP\ | DHCP 操作日志(默认每日一个文件) |
| 事件查看器 - DHCP | Event Viewer → Applications and Services Logs → Microsoft → Windows → DHCP-Server | DHCP 服务事件 |
| 事件查看器 - 系统 | Event Viewer → Windows Logs → System | 系统相关事件 |
DHCP 审计日志说明:
# 审计日志位置
# %SystemRoot%\System32\DHCP\DhcpSrvLog-<日期>.log
# 日志文件命名:DhcpSrvLog-周一.log, DhcpSrvLog-周二.log ... (英文系统)
# 或 DhcpSrvLog-YYYY-MM-DD.log查看审计日志:
# 查看当日 DHCP 日志
Get-Content "C:\Windows\System32\DHCP\DhcpSrvLog-$(Get-Date -Format 'yyyy-MM-dd').log" -Tail 50
# 查看最新的 DHCP 分配记录(ID 10=分配, 11=续租, 12=释放)
Select-String -Path "C:\Windows\System32\DHCP\DhcpSrvLog-*.log" -Pattern ",10," | Select -First 20
# 查看 DHCP 错误(ID 51=错误)
Select-String -Path "C:\Windows\System32\DHCP\DhcpSrvLog-*.log" -Pattern ",51,"
# 查看 DHCP 事件日志
Get-WinEvent -LogName "Microsoft-Windows-DHCP-Server/Operational" -MaxEvents 50日志格式说明(CSV 格式):
# 字段:日期,时间,描述,IP地址,主机名,MAC地址,租约时长(秒),...
# ID 代码:00=启动, 10=新租约, 11=续租, 12=释放, 13=拒绝, 50=NACK, 51=错误3.4 性能监控
关键监控指标:
| 指标 | 说明 | 告警阈值 |
|---|---|---|
| 地址池使用率 | 已分配 IP 地址占总量百分比 | > 80%(需扩容) |
| 可用地址数 | 剩余可分配 IP 地址数 | < 10 |
| DHCP 服务状态 | DHCP 服务是否运行 | 非 Running 即告警 |
| 租约请求速率 | 每秒新租约请求数 | 异常突增 |
| 拒绝请求数 (NACK) | 被拒绝的 DHCP 请求 | 持续 > 0 |
| 故障转移状态 | 主备同步状态 | 非正常即告警 |
监控命令:
# 查看地址池利用率
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, AddressesInUse, AddressesFree, PercentageInUse
# 检查作用域地址耗尽风险
Get-DhcpServerv4ScopeStatistics | Where-Object { $_.PercentageInUse -gt 80 }
# 检查故障转移状态
Get-DhcpServerv4Failover
# 检查 DHCP 服务器性能计数器
Get-Counter "\DHCP Server\Packets/sec" -SampleInterval 5 -MaxSamples 3
# 查看最近 24 小时的租约分配统计
Get-Date | ForEach-Object {
$yesterday = (Get-Date).AddDays(-1)
Select-String -Path "C:\Windows\System32\DHCP\DhcpSrvLog-*.log" -Pattern ",10," | Where-Object { $_ -match "10," } | Measure-Object | Select-Object Count
}3.5 日常巡检 Checklist
每日巡检:
- [ ] 检查 DHCP 服务运行状态
- [ ] 检查各作用域地址池使用率
- [ ] 检查 DHCP 审计日志中是否有异常
- [ ] 检查事件日志中 DHCP 相关错误
- [ ] 确认 DHCP 故障转移状态正常(如已配置)
每周巡检:
- [ ] 检查作用域地址池,评估是否需要扩容
- [ ] 检查 DHCP 数据库大小,评估是否需要清理
- [ ] 审查近一周的 NACK(拒绝)记录
- [ ] 检查保留地址(Reservation)是否仍有效
- [ ] 检查 DHCP 中继代理配置是否正常
每月巡检:
- [ ] 审计 DHCP 作用域配置(确认无废弃作用域)
- [ ] 清理过期和不需要的保留地址
- [ ] 检查 DHCP 备份任务执行情况
- [ ] 评估 DHCP 地址规划是否需要调整
- [ ] 审查 DHCP 安全配置
- [ ] 检查 DHCP 选项配置是否正确
4. 常见故障处理
4.1 故障列表
故障 1:客户端无法获取 IP 地址
- 现象:客户端显示"无法获取 IP 地址",自动获取到 169.254.x.x(APIPA 地址)
原因分析:
- DHCP 服务未运行
- 作用域地址池已耗尽
- 网络问题(广播无法到达 DHCP 服务器)
- DHCP 中继代理未配置或配置错误
- 客户端与 DHCP 服务器不在同一 VLAN 且无中继
- DHCP Snooping 配置阻止了合法 DHCP 流量
解决步骤:
确认 DHCP 服务运行:
Get-Service dhcpserver检查地址池使用率:
Get-DhcpServerv4ScopeStatistics | Format-Table ScopeId, AddressesInUse, AddressesFree, PercentageInUse在客户端手动释放并更新 IP:
ipconfig /release ipconfig /renew- 在客户端抓包确认 DHCP 请求已发出
检查 DHCP 中继配置(在交换机/路由器上):
# 检查中继接口配置 show ip dhcp relay检查是否配置了 DHCP Snooping:
# 在交换机上检查 show ip dhcp snooping show ip dhcp snooping binding检查 DHCP 服务器上的 NACK 记录:
Get-DhcpServerv4ScopeStatistics | Select-Object ScopeId, Nacked
故障 2:客户端获取到错误的 IP 地址(不在正确网段)
- 现象:客户端获取的 IP 与所在网段不匹配
原因分析:
- 网络中多个非授权 DHCP 服务器(Rogue DHCP)
- DHCP 中继配置错误
- VLAN 配置与 DHCP 作用域不匹配
- DHCP 选项错误
解决步骤:
- 确认客户端所在 VLAN
- 确认 DHCP 作用域覆盖该 VLAN 网段
查找网络中是否存在非授权 DHCP 服务器:
# 在客户端抓包分析 DHCP Offer 的来源 # 或使用 DHCP 扫描工具检测在交换机上配置 DHCP Snooping 防止非授权 DHCP:
# 交换机配置 DHCP Snooping 示例 ip dhcp snooping ip dhcp snooping vlan 10,20,30 interface GigabitEthernet0/1 ip dhcp snooping trust # 连接合法 DHCP 服务器的端口设为信任端口- 检查中继代理配置是否正确
故障 3:IP 地址冲突
- 现象:客户端报"IP 地址冲突",或实际存在 IP 冲突导致网络不稳定
原因分析:
- 存在静态分配 IP 与 DHCP 池冲突
- 其他设备被分配了相同 IP(数据库中不一致)
- DHCP 数据库损坏
- 非授权 DHCP 服务器分配了冲突地址
解决步骤:
识别冲突 IP 和冲突设备:
# 查看 DHCP 冲突事件 Get-WinEvent -LogName "Microsoft-Windows-DHCP-Server/Operational" | Where-Object { $_.Id -eq 20165 } # 查看冲突地址记录 Get-DhcpServerv4ScopeStatistics- 检查冲突地址是否被设置为保留地址
- 检查冲突地址是否为静态配置
- 在 DHCP 中创建保留地址或调整地址池范围
运行一致性检查:
netsh dhcp server reconcile如果冲突频繁,启用 DHCP 冲突检测:
# 设置冲突检测次数(1-5) Set-DhcpServerv4Binding -BindingState $true -InterfaceAlias "以太网" -ConflictDetectionAttempts 2
故障 4:DHCP 故障转移状态异常
- 现象:主备 DHCP 服务器之间状态显示"不正常"或"通信中断"
原因分析:
- 网络不通(主备之间防火墙阻挡)
- 故障转移配置参数错误
- 安全认证失败
- 时间不同步
解决步骤:
检查故障转移伙伴状态:
Get-DhcpServerv4Failover # 关注 State 字段 # 正常状态:Normal # 异常状态:CommunicationInterrupted, PartnerDown检查主备服务器网络连通性:
Test-NetConnection <伙伴服务器IP> -Port 3346检查 Windows 防火墙是否放行 DHCP 故障转移流量:
New-NetFirewallRule -DisplayName "DHCP Failover" -Direction Inbound -Protocol TCP -LocalPort 3346 -Action Allow检查主备服务器时间是否同步:
w32tm /query /status强制重置故障转移关系:
# 在主服务器上 Invoke-DhcpServerv4FailoverReplication # 重新创建故障转移关系(如果无法恢复) Remove-DhcpServerv4Failover -Name "Failover-Relation" Add-DhcpServerv4Failover -Name "Failover-Relation" -PartnerServer <伙伴IP> -ScopeId <作用域ID> -Mode HotStandby
故障 5:DHCP 选项配置错误导致客户端网络异常
- 现象:客户端虽然获取到了 IP 地址,但无法解析域名或上网
原因分析:
- DHCP 选项 3(默认网关)配置错误或缺失
- DHCP 选项 6(DNS 服务器)配置错误
- DHCP 选项 15(DNS 域名)配置错误
- 选项优先级冲突(服务器级别 vs 作用域级别)
解决步骤:
查看客户端获取的 DHCP 选项:
ipconfig /all # 检查默认网关、DNS 服务器是否正确检查作用域选项配置:
Get-DhcpServerv4OptionValue -ScopeId <作用域IP> # 检查 003(路由器)和 006(DNS 服务器)选项值检查服务器级别选项配置(可能会被作用域选项覆盖):
Get-DhcpServerv4OptionValue修正选项配置:
# 设置作用域选项 Set-DhcpServerv4OptionValue -ScopeId <作用域IP> -OptionId 3 -Value <网关IP> Set-DhcpServerv4OptionValue -ScopeId <作用域IP> -OptionId 6 -Value <DNS1>,<DNS2>在客户端执行更新:
ipconfig /renew
故障 6:DHCP 数据库损坏或性能下降
- 现象:DHCP 服务响应缓慢,日志报数据库错误
原因分析:
- 非正常关闭导致数据库文件损坏
- 磁盘 I/O 性能下降
- 数据库文件过大
- 磁盘空间不足
解决步骤:
检查并压缩 DHCP 数据库:
# 停止 DHCP 服务 Stop-Service dhcpserver # 使用 jetpack 压缩数据库 jetpack "C:\Windows\System32\DHCP\dhcp.mdb" "C:\Windows\System32\DHCP\dhcp_tmp.mdb" copy /y "C:\Windows\System32\DHCP\dhcp_tmp.mdb" "C:\Windows\System32\DHCP\dhcp.mdb" del "C:\Windows\System32\DHCP\dhcp_tmp.mdb" # 启动 DHCP 服务 Start-Service dhcpserver检查并修复合约冲突:
netsh dhcp server reconcile检查磁盘空间:
Get-PSDrive C | Select-Object Used, Free重启 DHCP 服务:
Restart-Service dhcpserver
4.2 应急处理流程
DHCP 服务中断应急流程:
客户端无法获取 IP 地址(大面积断网)
|
┌────┴────┐
│ 确认范围 │ 影响多少个 VLAN/网段
└────┬────┘
↓
┌─────────┐
│ 检查服务 │ net start dhcpserver
│ 启动服务 │ Get-Service dhcpserver
└────┬────┘
↓
┌─────────┐
│ 检查作用域 │ Get-DhcpServerv4ScopeStatistics
│ 地址池 │ 确认地址耗尽 → 临时扩池
└────┬────┘
↓
┌─────────┐
│ 故障转移 │ 检查主备同步状态
│ 切换 │ 如配置了故障转移,切换到辅助服务器
└────┬────┘
↓
┌─────────┐
│ 紧急措施 │ 如 DHCP 完全不可用:
│ │ 1. 配置辅助 DHCP 服务器
│ │ 2. 在交换机上配置静态 IP 池
│ │ 3. 启用备用 DHCP 服务器
└─────────┘
↓
┌─────────┐
│ 事后处理 │ 分析故障根因
│ │ 更新运维文档
└─────────┘5. 备份与恢复
5.1 需要备份的数据
| 备份项 | 说明 | 备份频率建议 |
|---|---|---|
| DHCP 数据库 | 包含所有租约、保留、选项配置 | 每日 |
| DHCP 配置 | 作用域配置、故障转移配置等 | 每周 |
| 注册表配置 | DHCP 相关的注册表设置 | 每次配置变更后 |
5.2 备份策略建议
使用 netsh 备份 DHCP 配置(推荐):
# 完整备份 DHCP 配置(包括所有作用域和选项)
netsh dhcp server export "D:\DHCPBackup\dhcp_backup_$(Get-Date -Format 'yyyyMMdd').txt" all
# 备份到网络路径
netsh dhcp server export "\\backup-server\dhcp\dhcp_backup_<日期>.txt" all
# 备份单个作用域
netsh dhcp server scope 192.168.1.0 export "D:\DHCPBackup\scope_192.168.1.0.txt"使用 PowerShell 备份:
# 导出所有 DHCP 配置
Export-Clixml -Path "D:\DHCPBackup\dhcp_config_$(Get-Date -Format 'yyyyMMdd').xml" -InputObject @{
Scopes = Get-DhcpServerv4Scope
Options = Get-DhcpServerv4OptionValue
Reservations = Get-DhcpServerv4Reservation
Failover = Get-DhcpServerv4Failover
}备份数据库文件:
# 停止 DHCP 服务
Stop-Service dhcpserver
# 复制数据库文件
Copy-Item "C:\Windows\System32\DHCP\dhcp.mdb" "D:\DHCPBackup\dhcp_$(Get-Date -Format 'yyyyMMdd').mdb"
# 启动 DHCP 服务
Start-Service dhcpserver备份保留策略:
- 每日备份保留 7 天
- 每周备份保留 4 周
- 每次配置变更后手动备份一次
5.3 恢复步骤
使用 netsh 恢复 DHCP 配置:
# 停止 DHCP 服务
Stop-Service dhcpserver
# 导入备份配置
netsh dhcp server import "D:\DHCPBackup\dhcp_backup_<日期>.txt" all
# 启动 DHCP 服务
Start-Service dhcpserver
# 验证恢复
Get-DhcpServerv4Scope | Format-Table ScopeId, Name, State恢复 DHCP 数据库:
# 1. 停止 DHCP 服务
Stop-Service dhcpserver
# 2. 备份当前数据库(以防恢复失败)
Copy-Item "C:\Windows\System32\DHCP\dhcp.mdb" "C:\Windows\System32\DHCP\dhcp_old.mdb"
# 3. 复制备份数据库
Copy-Item "D:\DHCPBackup\dhcp_<日期>.mdb" "C:\Windows\System32\DHCP\dhcp.mdb"
# 4. 重新注册 DHCP 服务
netsh dhcp server reconcile
# 5. 启动 DHCP 服务
Start-Service dhcpserver
# 6. 验证
Get-DhcpServerv4ScopeStatistics6. 安全配置
6.1 账户权限管理
DHCP 管理角色:
| 角色 | 权限范围 | 适用对象 |
|---|---|---|
| DHCP Administrators | DHCP 服务器的完全管理权限 | 网络管理员 |
| DHCP Users | 只读查看 DHCP 配置和统计 | 监控人员 |
| 本地管理员 | 服务器操作系统完全控制 | 系统管理员 |
安全管理建议:
- 将 DHCP 管理员加入 Builtin\DHCP Administrators 组
- 禁止普通用户远程管理 DHCP 服务
- 使用独立的管理账户进行 DHCP 管理
- 启用 DHCP 审核日志记录所有管理操作
6.2 防火墙规则
| 端口 | 协议 | 用途 | 来源限制 |
|---|---|---|---|
| 67 | UDP | DHCP Server 监听(BOOTP Server) | 所有 DHCP 客户端 |
| 68 | UDP | DHCP Client(BOOTP Client) | 本地 |
| 3346 | TCP | DHCP 故障转移通信 | 故障转移伙伴服务器 |
| 135 | TCP | RPC 管理 | 管理网段 |
| 445 | TCP | SMB(可选文件共享) | 管理网段 |
6.3 安全加固建议
防止 DHCP 饥饿攻击
启用 DHCP Snooping(在交换机上):
# 交换机配置 ip dhcp snooping ip dhcp snooping vlan <VLAN范围> ip dhcp snooping rate limit <pps>- 限制每个端口的 DHCP 请求速率
- 监控异常高的 DHCP Discover 请求
防止非授权 DHCP 服务器(Rogue DHCP)
- 启用 DHCP Snooping,只信任连接合法 DHCP 服务器的端口
在 Windows DHCP 服务器上启用"非授权 DHCP 服务器检测":
Set-DhcpServerSetting -ActivateDetection $true在 AD 中授权 DHCP 服务器:
Add-DhcpServerInDC -DnsName <服务器FQDN> -IPAddress <服务器IP>
审计日志配置
# 启用 DHCP 审计日志 Set-DhcpServerAuditLog -Enable $true -Path "C:\Windows\System32\DHCP" # 设置日志保留天数(默认 7 天) Set-DhcpServerSetting -BackupInterval 60网络安全配置
- 将 DHCP 服务器放在独立的管理网段
- 使用 VLAN 隔离客户端网络和管理网络
- 控制 DHCP 服务器上的防火墙规则(最小开放原则)
DHCP 选项安全
- 避免在 DHCP 选项中配置敏感信息
- 仅设置必要的 DHCP 选项(003、006、015)
- 定期审计 DHCP 选项配置
7. 参考资料
- DHCP 官方文档:https://learn.microsoft.com/zh-cn/windows-server/networking/technologies/dhcp/dhcp-top
- DHCP 最佳实践:https://learn.microsoft.com/zh-cn/windows-server/networking/technologies/dhcp/dhcp-best-practices
- DHCP 安全指南:https://learn.microsoft.com/zh-cn/windows-server/networking/technologies/dhcp/dhcp-security
- PowerShell DHCP 模块:https://learn.microsoft.com/zh-cn/powershell/module/dhcpserver/
- DHCP Snooping 配置指南:https://www.cisco.com/c/zh_cn/support/docs/lan-switching/port-security/116261-configure-dhcp-snooping.html
相关联系人:
| 角色 | 姓名 | 联系电话 | 邮箱 |
|---|---|---|---|
| DHCP 管理员 | __ | __ | __ |
| 网络管理员 | __ | __ | __ |
| AD/DNS 管理员 | __ | __ | __ |
| 微软技术支持 | 400-820-3800 | — | — |
| 值班工程师 | __ | __ | __ |