1. DHCP 与 DNS 集成概述
启用 DHCP-DNS 集成后,DHCP 服务器在为客户端分配 IP 时会自动向 DNS 服务器注册(A 记录)和更新(PTR 记录),客户端 IP 变化时 DNS 记录自动更新,无需手动维护。
更新模式
| 模式 | DHCP 操作 | 客户端操作 | 适用场景 |
|---|---|---|---|
| 仅客户端 | 不更新 | 客户端自行注册 | 域成员(推荐) |
| 仅 DHCP | 代为注册 A + PTR | 无 | 非域成员、Linux、IoT |
| 两者都启用 | 客户端不更新时 DHCP 接管 | 优先由客户端更新 | 混合环境 |
💡 推荐配置
域环境下选择「仅在客户端请求时动态更新 DNS 记录」(默认值),这是最安全的模式。
2. 启用 DNS 动态更新
1
DHCP 管理器 → 右键 dc1.iehang.cn → 「属性」
2
切换到 「DNS」 选项卡
3
勾选「根据以下设置启用 DNS 动态更新」
4
选择「仅在 DHCP 客户端请求时动态更新 DNS A 和 PTR 记录」
5
勾选「为不请求更新的 DHCP 客户端动态更新 DNS A 和 PTR 记录」(适用于非域设备)
6
勾选「丢弃 A 和 PTR 记录」(租约删除时清理 DNS 记录)→ 确定
PowerShell - DNS 集成
# 启用 DNS 动态更新(推荐模式)
Set-DhcpServerv4DnsSetting -ComputerName "dc1.iehang.cn" `
-DynamicUpdates "OnClientRequest" `
-DeleteDnsRRonLeaseExpiry $true
# 如需支持非域设备,启用 Always 模式
Set-DhcpServerv4DnsSetting -ComputerName "dc1.iehang.cn" `
-DynamicUpdates "Always" `
-UpdateDnsRRForOlderClients $true `
-DeleteDnsRRonLeaseExpiry $true
# 验证设置
Get-DhcpServerv4DnsSetting -ComputerName "dc1.iehang.cn"
3. 配置 DNS 凭据
当 DNS 区域设置为安全更新时,DHCP 服务器需要凭据才能更新 DNS 记录:
1
DHCP 管理器 → 服务器属性 → 「高级」 选项卡
2
点击「凭据」 → 输入有权限更新 DNS 的域账号和密码
3
建议创建专用服务账号如 DHCP-DNS-Updater,授予 DNS 区域的写入权限
PowerShell - DNS 凭据
# 设置 DNS 更新凭据
Set-DhcpServerDnsCredential -ComputerName "dc1.iehang.cn" `
-Domain "iehang.cn" `
-UserName "DHCP-DNS-Updater" `
-Password "P@ssw0rd2024"
# 查看当前凭据
Get-DhcpServerDnsCredential -ComputerName "dc1.iehang.cn"
4. 验证 DNS 记录
PowerShell - 验证 DNS 记录
# 查看正向查找区域的 A 记录
Get-DnsServerResourceRecord -ComputerName "dc1.iehang.cn" `
-ZoneName "iehang.cn" -RRType A | Where-Object {
$_.HostName -notmatch "^(dc1|dc2)$"
}
# 查看反向查找区域的 PTR 记录
Get-DnsServerResourceRecord -ComputerName "dc1.iehang.cn" `
-ZoneName "10.168.192.in-addr.arpa" -RRType Ptr
# 测试某客户端的解析
Resolve-DnsName -Name "client01.iehang.cn" -Type A
5. 常见问题
Q1:DNS 记录没有自动更新?
检查 DNS 区域是否允许动态更新(属性 → 常规 → 动态更新选"安全"或"非安全")。检查 DHCP 服务器属性 DNS 选项卡。
Q2:旧记录未清理?
确保勾选了"丢弃 A 和 PTR 记录"。也可以运行 dnscmd / scavengetime 配置老化清理。
Q3:非域设备需要 DHCP 注册 DNS 吗?
需要。设置为 Always 模式,DHCP 会代替这些设备更新 DNS。