dhcp故障转移群集状态不同步表现为租约数据库不一致、角色异常、ip获取失败等,需排查通信(tcp 647端口)、配置一致性(伙伴名、共享密钥、模式等)、时间同步(偏差≤5分钟)及数据库同步机制。
dhcp 故障转移群集状态不同步,通常表现为两台服务器显示的租约数据库不一致、角色状态异常(如“已同步”但实际未更新)、客户端获取 ip 失败或重复分配等。核心排查方向是通信、配置一致性、时间同步和数据库同步机制本身。
检查两台服务器之间的网络连通性与端口访问
DHCP 故障转移依赖 TCP 647 端口进行状态同步(RFC 3074),该端口必须双向开放且无防火墙拦截。同时需确认 DNS 解析正常,双方能通过主机名或 FQDN 互相访问。
- 在 Server A 上执行:Test-NetConnection ServerB -Port 647,反之亦然
- 确认 Windows 防火墙中“DHCP 服务器(TCP-In)”规则已启用,或手动添加允许 TCP 647 的入站规则
- 若使用域环境,验证双方是否处于同一域、DNS 后缀匹配,nslookup ServerB 应返回正确 IPv4 地址
核对故障转移配置参数是否完全一致
任何一项配置差异(如伙伴服务器名称、共享密钥、模式、负载百分比、心跳间隔)都会导致同步失败或降级为“已暂停”状态。
将提醒同步至 Windows/Outlook 日历。用户提及「提醒我」「设置提醒」「加到日历」「同步到日历」「日程」「calendar」「日历」时触发。支持Microsoft Graph API 设备代码流认证,无需 Web 服务器,直接写入用户 Outlook 日历。
- 在任意一台服务器上运行:Get-DhcpServerv4Failover,对比输出中的 PartnerServer、SharedSecret、Mode(LoadBalance/HotStandby)、Percentage、State
- 特别注意 SharedSecret:大小写敏感,不可含不可见字符;建议复制粘贴而非重输
- 若发现不一致,用 Set-DhcpServerv4Failover 修正,并在两端分别执行 Invoke-DhcpServerv4FailoverReplication -Force
验证系统时间与事件日志中的关键线索
时间偏差超过 5 分钟将导致 Kerberos 认证失败,进而中断故障转移通信;同时,DHCP 服务日志(事件查看器 → 应用程序和服务日志 → Microsoft → Windows → Dhcp-Server)会明确记录同步失败原因。
- 运行 w32tm /query /status 检查本地时间源及偏差值;建议统一指向域控制器或可靠 NTP 服务器
- 筛选事件 ID:1040(同步失败)、1041(心跳超时)、1046(共享密钥错误)、1050(数据库不一致警告)
- 若日志提示 “Failed to establish secure channel”,优先排查证书信任链或时间偏差
强制触发同步并验证租约数据库一致性
即使状态显示“已同步”,实际租约数据可能滞后。可手动触发全量同步,并比对关键指标。
- 在主服务器上运行:Invoke-DhcpServerv4FailoverReplication -ScopeId 192.168.1.0 -Force(替换为实际作用域)
- 分别导出两台服务器的租约统计:Get-DhcpServerv4ScopeStatistics -ScopeId 192.168.1.0,对比 Free、InUse、Expired 数值是否接近(允许少量浮动)
- 若差异显著,检查是否启用了“仅在故障转移关系处于活动状态时同步租约”策略(组策略路径:Computer Configuration → Policies → Administrative Templates → Network → DHCP Server → “Enable failover lease synchronization”)










