DNS 故障排除指南

试用我们的虚拟代理 - 它可以帮助你快速识别和修复常见的 DNS 问题。

此解决方案旨在帮助对域名系统 (DNS) 方案进行故障排除。 可以将 DNS 故障排除问题分为服务器端和客户端类别。

故障排除清单

服务器端问题

  • IP 配置
  • DNS 服务器
  • 权威数据
  • 递 归
  • 区域转移

客户端问题

  • IP 配置
  • 网络连接

常见问题和解决方案

DNS 客户端缓存在 DNS 客户端上的支持策略

Windows 包含客户端 DNS 缓存。 建议不要在 DNS 客户端上禁用 DNS 客户端缓存。 不支持禁用 DNS 客户端缓存的配置。

Microsoft 不保证为涉及不受支持的设备或配置的问题找到解决方案。 如果未找到解决方案,则不会退还对事件的调查费用。 如果不同意无法保证解决方案,Microsoft 支持部门不会解决问题,并且将退还调查事件的费用。

DNS 区域中缺少 DNS 记录

此问题可能有以下任一原因。

DNS 清理配置错误

如果 DNS 区域中缺少 DNS 记录,则清理是最常见的原因。 即使是具有静态分配的 DNS 服务器的基于 Windows 的计算机,也每 24 小时注册一次记录。 检查无刷新间隔和刷新间隔是否太短。 例如,如果这些值都小于 24 小时,则会丢失 DNS 记录。

若要排查此问题并了解无刷新和刷新间隔,请参阅 使用 DNS 老化和清理

IP 地址更改时,将删除主机“A”记录

有时,主机“A”记录在新配置的 DNS 服务器 IP 地址上注册后,会在原始 DNS 服务器上删除主机“A”记录, (Active Directory 集成 DNS) 。 从用户的角度来看,依赖于名称解析的任何内容都已中断。 当客户端上的 DNS 服务器 IP 地址发生更改时,客户端会发送颁发机构启动 (SOA) 更新,以从以前的 DNS 服务器中删除其“A”记录。 然后,它会发送另一个更新,以将其“A”记录注册到新的 DNS 服务器。

问题发生在 Active Directory 集成区域中。 在客户端上更改 DNS 服务器 IP 地址时,会出现问题。 当 IP 地址更改时,客户端会向新服务器发送注册请求,并向以前的服务器发送删除请求。 由于两台服务器都已同步,因此不会注册记录。 在上一个服务器上,DNS 服务删除“A”记录,然后删除操作将复制到新服务器。 因此,这两个服务器上的记录都被删除。

使用 DHCP 选项 81 的 DHCP 客户端在主机“AAAA”注册期间注销主机“A”记录

如果 DHCP 客户端计算机使用 ISATAP 或 6to4 网络适配器,并且 DNS 客户端和 DNS 服务器都配置为动态更新 DNS 记录,则会出现此问题。 由于此配置,DHCP 选项 81 (也称为 客户端 FQDN 选项 ,) 在客户端和服务器上启用。 在这种情况下,DHCP 服务器可能会 (IPv4) 创建客户端的 DNS“A”记录。 然后,客户端创建其“AAAA” (IPv6) 记录。 但是,作为此操作的一部分,客户端首先发送一条更新的“A”记录,该记录的生存时间 (TTL) 为 0。 因此,DNS 服务器在注册“AAAA”记录时删除客户端的“A”记录。

若要解决此问题,请避免配置使用这些适配器的 DHCP 客户端,以便在 DHCP 服务器已配置为这样做时动态更新 DNS 记录。

注意

有关 DHCP 选项 81 的详细信息,请参阅 DHCP 服务器使用“始终动态更新 DNS 记录”时出现意外的 DNS 记录注册行为。 本文介绍了另一个问题,但详细介绍了 DHCP 选项 81。

对现有 DNS 记录的 DNS 动态更新协议更新失败

对现有记录的 DNS 动态更新协议更新失败。 由于此问题,DNS 清理过程会认为记录已过期,并且会将其删除。

对于需要 SRV 记录的服务,本地 Netlogon 服务在无法注册 SRV 记录时会记录“事件 ID 577X”事件。 例如,如果域控制器的 Netlogon 服务为其 LDAP SRV 记录触发动态更新,并且该更新失败,则 Netlogon 服务会在域控制器上记录事件。 记录主机“A”和 PTR 记录注册失败的其他事件。 检查 DNS 服务器和任何其他受影响的计算机上的系统事件日志,了解这些故障。 注册这些记录的客户端可能会记录此类事件,或者代表客户端注册记录的 DHCP 服务器可能会记录这些事件。 这些附加事件可以深入了解失败的原因。

将活动动态租约转换为预留会删除该客户端的“A”和 PTR 记录

此行为是设计使然。 (“A”或“PTR) 的 DNS 记录在客户端发出下一个 DHCP 续订请求期间自动更新。

避免在 DNS 中注册不需要的网络适配器

如果网络适配器配置为在 DNS 中注册连接地址,则 DHCP/DNS 客户端服务在 DNS 中注册该记录。 如果计算机具有不想注册的网络适配器,请执行以下步骤:

  1. “网络Connections”中,打开不需要的网络适配器的属性,打开“TCP/IP 属性”,选择“高级>DNS”,然后清除“在 DNS 中注册此连接地址”复选框。
  2. 在左窗格中,打开 DNS 服务器控制台,突出显示服务器,然后选择“ 操作>属性”。
  3. 在“ 接口 ”选项卡上,选择“ 仅侦听以下 IP 地址”。 从列表中删除不需要的 IP 地址。
  4. “区域 属性”页上,选择“ 名称服务器 ”选项卡。除了域控制器的 FQDN 之外,此选项卡还列出了与域控制器关联的 IP 地址。 如果列出了不需要的 IP 地址,请将其删除。
  5. 删除域控制器的现有不需要的主机“A”记录。

DNS 查询响应延迟

如果 DNS 服务器将查询转发到无法访问的转发器或根提示,DNS 查询请求可能会超时。 要解决此问题,请执行下列步骤:

  1. 打开 DNS 服务器上的 DNS 控制台,检查是否可以访问转发器或条件转发器。 如果无法访问任何转发器,请将其删除。
  2. 如果 DNS 服务器不必使用转发器和根提示,请在 DNS 服务器上打开 DNS 控制台,打开服务器 属性 窗口,选择“ 高级”,然后打开 “禁用递归”。 (此设置还会禁用 forwarders.)

事件 ID 4004 和事件 ID 4013

事件消息:

DNS 服务器无法打开 Active Directory。 此 DNS 服务器配置为使用目录服务信息,在没有访问目录的情况下无法运行。 DNS 服务器将等待目录启动。 如果 DNS 服务器已启动,但尚未记录相应的事件,则 DNS 服务器仍在等待目录启动。

若要排查此问题,请参阅 排查 AD DS 问题并重启 DNS 服务器服务

DNS 服务器地理位置策略无法按预期工作

请考虑以下情况:

  • 使用名为“contoso.com”的默认区域范围 (Active Directory 集成区域) 。
  • 使用与特定子网关联的地理位置区域范围。
  • 使用 Windows PowerShell Add-DnsServerQueryResolutionPolicy cmdlet 配置 DNS 解析策略。

在此方案中,所需的结果是客户端尝试查找请求的资源,首先在本地区域范围,然后在默认区域范围中查找。 但是,在组织配置这些策略后,来自已定义子网的客户端无法成功解析托管在默认区域范围 (contoso.com) 的记录。 例如,客户端无法解析 hostA.contoso.com。 DNS 服务器收到此类请求时,会返回“服务器故障”消息。

若要排查此问题,请参阅 DNS 服务器地理位置策略未按预期工作

双堆栈查询的转发 DNS 名称解析失败

你使用的是第三方 DNS 服务器解决方案,在使用条件转发时无法一致地解析名称。

本地 DNS 服务器 (10.100.100.70) 可以连接到配置为条件转发器 (10.133.3.250) 的 DNS 服务器。 从 DNS 服务器到条件转发器的第一个请求成功解析 (名称,例如,nbob1.contoso.com) 。 一段时间后,名称解析将停止工作。 对条件转发器的 nslookup 查询返回“不存在域”错误消息。

如果清除转发计算机上的 DNS 服务器缓存 (本地 DNS 服务器) ,则名称解析会恢复。 但是,此修复是暂时的。

若要排查此问题,请参阅 双堆栈查询的转发 DNS 名称解析失败

DNS 服务器丢失其 NIC 组合配置

请考虑以下情况:

  • DNS 服务器计算机具有在 NIC 组合配置中使用的多个网络适配器。
  • 将 DNS 服务器配置为侦听组合网络适配器的 IP 地址。
  • 在 DNS 管理器中“DNS 服务器属性”对话框的“ 接口 ”选项卡上,可以配置要使用的 IP 地址。

重启 DNS 服务器后,Windows 会删除设置。 DNS 服务器再次开始侦听所有 IP 地址。

发生此更改时,Windows 会在 DNS 服务器事件日志中记录事件 ID 410:

受限制接口的 DNS 服务器列表不包含服务器计算机的有效 IP 地址。 DNS 服务器将使用计算机上的所有 IP 接口。 使用 DNS 管理器服务器属性和接口对话框验证和重置 DNS 服务器应侦听的 IP 地址。 有关详细信息,请参阅联机帮助中的“将 DNS 服务器限制为仅侦听所选地址”。

若要解决此问题,请参阅 DNS 服务器还原为侦听所有 IP 地址,而不是配置的 NIC 组合 IP 地址

如果 DHCP 服务器管理动态 DNS 更新,则 DNS 记录注册行为

你有一个基础结构,该基础结构使用 Windows 动态主机配置协议 (DHCP) 客户端和 Microsoft DHCP 服务器来分配和管理 IP 地址。 在 DHCP 服务器上, 根据以下设置选择“启用 DNS 动态更新 ”和“ 始终动态更新 DNS 记录”。 在此配置中,你希望 DHCP 服务器管理“A”记录和“PTR”记录的动态 DNS 更新。 但是,你会看到客户端和服务器都创建了 DNS 记录。 根据配置,此行为具有以下影响:

  • 如果为 非安全且安全的 动态更新配置 DNS 区域,则会看到 DHCP 服务器会创建记录,然后 DHCP 客户端会删除并重新创建相同的记录。
  • 如果为 仅保护 动态更新配置 DNS 区域,DNS 记录可能会变得不一致。 DHCP 服务器和 DHCP 客户端都创建记录。 但是,DHCP 服务器无法更新 DHCP 客户端创建的记录,DHCP 客户端无法更新 DHCP 服务器创建的记录。

若要解决此问题,请参阅 DHCP 服务器设置为“始终动态更新 DNS 记录”时的 DNS 记录注册行为

数据收集

在联系Microsoft 支持部门之前,可以收集有关你的问题的信息。

先决条件

  • 在本地系统上具有管理员权限的帐户的安全上下文中运行 TSS。 首次运行 TSS 时,请接受 EULA。 (接受 EULA 后,TSS 不会再次提示你。)
  • 建议在范围内使用 RemoteSigned PowerShell 执行策略 LocalMachine

注意

如果当前 PowerShell 执行策略不允许运行 TSS,请执行下列操作:

  1. RemoteSigned通过运行 cmdlet Set-ExecutionPolicy -scope Process -ExecutionPolicy RemoteSigned设置进程级别的执行策略。
  2. 若要验证更改是否生效,请 Get-ExecutionPolicy -List 运行 cmdlet。

这些进程级权限仅适用于当前 PowerShell 会话。 关闭运行 TSS 的 PowerShell 窗口后,为进程级别分配的权限将恢复为以前配置的状态。

在联系 Microsoft 支持人员之前收集关键信息

  1. 在所有节点上下载 TSS ,并将文件展开到 C:\tss 文件夹中。

  2. 在提升的 PowerShell 命令提示符窗口中打开 C:\tss 文件夹。

  3. 通过运行以下 cmdlet 在客户端和服务器上启动跟踪:

    • 客户:

      TSS.ps1 -Scenario NET_DNScli
      
    • 服务器:

      TSS.ps1 -Scenario NET_DNSsrv
      
  4. 如果跟踪首次在服务器或客户端上运行,请接受 EULA。

  5. 允许录制 (PSR 或视频) 。

    注意

    如果在客户端和服务器上收集日志,请等待此消息在两个节点上出现,然后重现问题。

  6. 重现问题。

  7. 重现问题后,输入 Y 以完成日志记录数据。

TSS 将跟踪存储在 C:\MS_DATA 文件夹中的压缩文件中。 可以将文件上传到工作区进行分析。

References