部署基于 Windows 的 DNS 服务器后,某些 DNS 名称查询不成功

本文介绍在部署基于 Windows 的 DNS 服务器后可能无法成功解决对某些域的 DNS 查询的问题。

适用于: Windows Server 2012 R2
原始 KB 编号: 832223

症状

部署基于 Windows 的 DNS 服务器后,可能无法成功解析对某些域的 DNS 查询。

原因

出现此问题的原因是 Windows Server DNS 中支持的 DNS (EDNS0 的扩展机制) 功能。

EDNS0 允许更大的用户数据报协议 (UDP) 数据包大小。 但是,某些防火墙程序可能不允许大于 512 字节的 UDP 数据包。 因此,防火墙可能会阻止这些 DNS 数据包。

解决方案

若要解决此问题,请更新防火墙程序,以识别并允许大于 512 字节的 UDP 数据包。 有关如何执行此操作的详细信息,请联系防火墙程序的制造商。

Microsoft 提供了第三方联系信息,以便你寻求技术支持。 该联系信息如有更改,恕不另行通知。 Microsoft 不保证此第三方联系信息的准确性。

解决方法

若要解决此问题,请在基于 Windows 的 DNS 服务器上关闭 EDNS0 功能。 为此,请执行下列操作:

在命令提示符下,键入以下命令,然后按 Enter:

dnscmd /config /enableednsprobes 0

注意

在此命令中,键入 0 (零) 而不是“enableednsprobes”后面的字母“O”。

将显示以下信息:

注册表属性 enableednsprobes 已成功重置。
命令已成功完成。

注意

Dnscmd.exe 安装在所有基于 Windows 的 DNS 服务器上,但运行 Windows Server 2003 或 Windows Server 2003 R2 的服务器除外。 可以从 Windows Server 2003 支持工具安装 Dnscmd.exe。 若要下载 Windows Server 2003 支持工具,请单击以下 Microsoft 下载中心链接: Setspn

更多信息

某些防火墙包含用于检查 DNS 数据包的某些参数的功能。 这些防火墙功能可以确保 DNS 响应小于 512 字节。 如果捕获不成功的 DNS 查找的网络流量,你可能会注意到 DNS 请求 EDNS0。 类似于以下内容的帧不会收到答复:

其他记录
<根>:类型 OPT,类未知
名称: <根>
类型:EDNS0 选项
UDP 有效负载大小:1280

在这种情况下,防火墙可能会删除所有 EDNS0 扩展的 UDP 帧。