尝试我们的虚拟代理 - 它可以帮助你快速识别和修复常见的 DNS 问题。
本文讨论如何排查 DNS 服务器上的问题。
检查 IP 配置
在命令提示符下运行
ipconfig /all
,并验证 IP 地址、子网掩码和默认网关。检查 DNS 服务器是否对要查找的名称具有权威性。 如果是,请参阅 检查权威数据是否存在问题。
运行下面的命令:
nslookup <name> <IP address of the DNS server>
例如:
nslookup app1 10.0.0.1
如果收到失败或响应超时消息,请参阅检查是否存在递归问题。
刷新解析程序缓存。 为此,请在管理命令提示符窗口中运行以下命令:
dnscmd /clearcache
或者,在管理 PowerShell 窗口中,运行以下 cmdlet:
Clear-DnsServerCache
注释
如果服务器充当 DNS 客户端(例如,当服务器需要解析自己的操作名称时),请使用
Clear-DnsClientCache
来清除本地 DNS 客户端缓存。 如果要排查与服务器角色(向其他客户端提供 DNS 记录)相关的问题,请使用Clear-DnsServerCache
清除服务器的权威缓存并阻止其提供过时的 DNS 信息。重复步骤 3。
检查 DNS 服务器问题
事件日志
检查以下日志,查看是否存在任何记录的错误:
应用程序
系统
DNS 服务器
使用 nslookup 查询进行测试
运行以下命令,并检查是否可以从客户端计算机访问 DNS 服务器。
nslookup <client name> <server IP address>
如果解析程序返回客户端的 IP 地址,则服务器没有任何问题。
如果解析程序返回“服务器故障”或“查询被拒绝”响应,则区域可能会暂停,或者服务器可能重载。 可查看 DNS 控制台中区域属性的“常规”选项卡来了解它是否已暂停。
如果解析程序返回“请求服务器超时”或“没有来自服务器的响应”响应,则 DNS 服务可能未运行。 尝试通过在服务器上的命令提示符处输入以下命令来重启 DNS 服务器服务:
net start DNS
如果服务正在运行时出现问题,则服务器可能无法侦听 nslookup 查询中使用的 IP 地址。 在 DNS 控制台中的“服务器属性”页的“ 接口 ”选项卡上,管理员可以限制 DNS 服务器仅侦听所选地址。 如果 DNS 服务器已配置为将服务限制为其配置 IP 地址的特定列表,则可能是用于联系 DNS 服务器的 IP 地址不在列表中。 可以尝试列表中的其他 IP 地址,或将 IP 地址添加到列表中。
在极少数情况下,DNS 服务器可能具有高级安全性或防火墙配置。 如果服务器位于只能通过中间主机(如数据包筛选路由器或代理服务器)访问的另一个网络上,则 DNS 服务器可能会使用非标准端口来侦听和接收客户端请求。 默认情况下,nslookup 将查询发送到 UDP 端口 53 上的 DNS 服务器。 因此,如果 DNS 服务器使用任何其他端口,nslookup 查询将失败。 如果认为这可能是问题,请检查中间筛选器是否有意用于阻止已知 DNS 端口上的流量。 如果不是,请尝试修改防火墙上的数据包筛选器或端口规则,以允许 UDP/TCP 端口 53 上的流量。
检查权威数据是否存在问题
检查返回错误响应的服务器是区域的主服务器(区域的标准主服务器,还是使用 Active Directory 集成加载区域的服务器)或托管该区域辅助副本的服务器。
如果服务器是主服务器
当用户将数据输入到区域中时,用户错误可能会导致此问题。 或者,它可能是由影响 Active Directory 复制或动态更新的问题引起的。
如果该服务器托管区域辅助副本
检查主服务器(此服务器从中拉取区域传送的服务器)上的区域。
注释
可以通过检查 DNS 控制台中辅助区域的属性来确定哪个服务器是主服务器。
如果主服务器上的名称不正确,请转到步骤 4。
如果主服务器上的名称正确,请检查主服务器上的序列号是否小于或等于辅助服务器上的序列号。 如果是,请修改主服务器或辅助服务器,使主服务器上的序列号大于辅助服务器上的序列号。
在辅助服务器上,您可以在 DNS 控制台内强制进行区域传输,也可以通过运行以下命令来完成此操作:
dnscmd /zonerefresh <zone name>
例如,如果区域是 corp.contoso.com,请输入:
dnscmd /zonerefresh corp.contoso.com
.再次检查辅助服务器,查看区域是否已正确传输。 如果没有,则可能遇到区域传输问题。 有关详细信息,请参阅 区域传输问题。
如果区域已正确传输,请检查数据现在是否正确。 否则,主区域中的数据不正确。 当用户将数据输入到区域中时,用户错误可能会导致此问题。 或者,它可能是由影响 Active Directory 复制或动态更新的问题引起的。
检查是否存在递归问题
若要成功运行递归,在递归查询路径中使用的所有 DNS 服务器必须能够响应和转发正确的数据。 如果不能,递归查询可能会因以下任何原因而失败:
查询在完成之前超时。
查询期间使用的服务器无法响应。
查询期间使用的服务器提供不正确的数据。
开始对原始查询中使用的服务器进行故障排除。 通过检查 DNS 控制台中服务器属性中的 转发器 选项卡,检查此服务器是否将查询转发到另一台服务器。 如果选中了 “启用转发器 ”复选框,并且列出了一个或多个服务器,则此服务器将转发查询。
如果此服务器确实将查询转发到另一台服务器,请检查此服务器将查询转发到的服务器是否存在问题。 若要检查问题,请参阅 “检查 DNS 服务器问题”。 当该部分指示你在客户端上执行任务时,请改为在服务器上执行该任务。
如果服务器正常且可以转发查询,请重复此步骤,并检查此服务器将查询转发到的服务器。
如果此服务器未将查询转发到另一台服务器,请测试此服务器是否可以查询根服务器。 为此,请运行以下命令:
nslookup
server <IP address of server being examined>
set q=NS
如果解析程序返回根服务器的 IP 地址,则可能是由于根服务器与您尝试解析的名称或 IP 地址之间的委派出现了问题。 按照测试中断的委派过程来确定委派中断的位置。
如果解析程序返回“请求服务器超时”响应,请检查根提示是否指向正常运行的根服务器。 为此,请使用 “查看当前根提示 ”过程。 如果根提示指向正常运行的根服务器,则可能有网络问题,或者服务器可能使用高级防火墙配置来阻止解析程序查询服务器,如 “检查 DNS 服务器问题 ”部分中所述。 也可能是默认递归超时时间过短。
测试中断的委派
通过查询有效的根服务器,在以下过程中开始测试。 该测试将引导你完成查询所有 DNS 服务器(从根服务器到要测试是否委派中断的服务器)的过程。
在要测试的服务器上的命令提示符处,输入以下内容:
nslookup server <server IP address> set norecursion set querytype= <resource record type> <FQDN>
注释
资源记录类型是在原始查询中所查询的资源记录类型,FQDN 是所查询的 FQDN(以句点结束)。
如果响应包含委托服务器的“NS”和“A”资源记录列表,请对每台服务器重复步骤 1,并使用“A”资源记录中的 IP 地址作为服务器 IP 地址。
如果响应不包含“NS”资源记录,则表示委派中断。
如果响应包含“NS”资源记录,但没有“A”资源记录,请输入 设置递归,并单独查询“NS”记录中列出的服务器的“A”资源记录。 如果对于区域中的每个 NS 资源记录,找不到“A”资源记录的至少一个有效 IP 地址,则表示委派中断。
如果确定委派中断,请通过使用委派区域的正确 DNS 服务器的有效 IP 地址,在父区域中添加或更新“A”资源记录来修复此问题。
查看当前根目录提示
启动 DNS 控制台。
添加或连接到失败递归查询的 DNS 服务器。
右键单击服务器,然后选择“ 属性”。
单击“根目录提示”。
检查与根服务器的基本连接。
如果根目录提示看上去配置正确,请验证失败的名称解析中使用的 DNS 服务器是否可以通过 IP 地址对根服务器进行 ping 操作。
如果根服务器不响应通过 IP 地址的 ping 请求,则根服务器的 IP 地址可能已更改。 根服务器的重新配置并不常见。
区域传输问题
运行以下检查:
检查主 DNS 服务器和辅助 DNS 服务器的事件查看器。
检查主服务器以查看它是否出于安全原因拒绝发送传送内容。
检查 DNS 控制台中区域属性的“ 区域传输 ”选项卡。 如果服务器将区域传送限制为服务器列表(如区域属性的“名称服务器”选项卡上列出的服务器),请确保辅助服务器位于该列表中。 确保服务器已配置为发送区域传输(zone transfers)。
按照 “检查 DNS 服务器问题 ”部分中的步骤检查主服务器是否存在问题。 当系统提示你在客户端上执行任务时,请改为在辅助服务器上执行该任务。
检查辅助服务器是否正在运行另一个 DNS 服务器实现,例如 BIND。 如果是,问题可能具有以下原因之一:
Windows 主服务器可能配置为发送快速区域传输,但第三方辅助服务器可能不支持快速区域传输。 如果是这种情况,请通过选中服务器属性的“高级”选项卡上的“启用绑定辅助副本”复选框,在 DNS 控制台中禁用主服务器上的快速区域传输。
如果 Windows 服务器上的正向查找区域包含辅助服务器不支持的记录类型(例如 SRV 记录),则辅助服务器在拉取该区域时可能会遇到问题。
检查主服务器是否运行另一个 DNS 服务器实现,例如 BIND。 如果是这样,则主服务器上的区域可能包含 Windows 无法识别的不兼容资源记录。
如果主服务器或辅助服务器运行另一个 DNS 服务器实现,请检查这两个服务器以确保它们支持相同的功能。 可以在服务器的“属性”页的“ 高级 ”选项卡上的 DNS 控制台中检查 Windows 服务器。 除了“启用 Bind 辅助区域”框外,此页还包括“名称检查”下拉列表。 这样,便可以为 DNS 名称中的字符选择严格的 RFC 符合性。