我有一个反复出现的 DNS 问题,它一直困扰着我们的用户,偶尔会导致他们的笔记本电脑将我们的公司域附加到所有 DNS 查询的末尾。该问题仅在用户不在现场并且看起来相当随机时才会出现。它将工作一天,然后它会突然显示无效条目。这主要影响 Windows XP 用户,但最近也出现在 Vista 上。这是一个使用 nslookup 的示例。
C:\Users\Username>nslookup www.yahoo.com
Server: Linksys
Address: 192.168.0.1
Non-authoritative answer:
Name: www.yahoo.com.EXAMPLE.COM
Address: 192.0.2.99
我已将报告的 IP 地址替换为占位符,但我可以告诉您,它返回的是*.
我们网络解决方案配置中的默认条目。因为显然www.yahoo.com.EXAMPLE.COM
不存在,所以这是有道理的。我相信用户的内部设备运行正常。在内部,我们运行带有基于 Windows 的 DHCP 和 DNS 服务器的 Windows 2k3 Active Directory。最终问题通常会在几个小时或多次重新启动后自行解决。
有没有人见过这种行为?
如果您启动 nslookup 并打开调试,您会看到 Windows 总是首先尝试附加其后缀。
正如您在上面看到的,我的机器首先尝试查找 www.yahoo.com.example.com,然后 DNS 服务器响应
NXDOMAIN
(未找到条目)。您可以通过运行来确认这一点nslookup www.yahoo.com.
(注意 .com 末尾的点!),您会看到它已正常解决。发生的事情是您的外部DNS 服务器响应他们有一个“www.yahoo.com.example.com”条目,并返回您网站根目录的 IP 地址。我不确定您使用什么服务,但我猜您有一个通配符映射,它告诉您的服务器以有效响应响应任何未知查询,而不是返回
NXDOMAIN
. 您需要仔细检查服务器的设置,并确认它仅设置为响应对其实际具有的条目的查询(example.com
、www.example.com
、mail.example.com
等)。请记住,DNS 通过检查配置的服务器并从那里向上运行来工作。DNS 查询可以采用类似以下模式的路径(当然这只是一个示例,它可能是错误的):机器 -> 本地路由器 DNS (linksys) -> ISP DNS -> (2nd ISP DNS?) -> Root服务器 DNS -> TLD DNS -> 您的外部 DNS 服务器。沿着这条路有人说
www.yahoo.com.example.com
存在。可能是您的外部 DNS 服务器。编辑
我想我会再包含一个关于你提到的随机性的花絮。如果这种情况确实偶尔发生,您可能有一个错误配置的外部 DNS 服务器,或者他们的 ISP 可能正在提供 DNS 劫持服务。不幸的是,我看到越来越多的住宅 ISP 为无效域名提供“搜索服务”。由于几乎所有最终用户都使用他们的 ISP DNS 服务器,因此 ISP 现在开始将无效的域条目重定向到搜索页面 - 通常充满广告、不相关的链接和一个小的“你的意思是 www.example.com 吗?” 一些结果可能与域名相关,也可能不相关。我知道 Verizon 和 Comcast 开始这样做了,我相信 Quest 也开始这样做了。另一种可能性是 OpenDNS,因为如果没有,它们会提供相同的“搜索相关域”
不过,我建议作为问题的问题在于,您说它正在返回根记录的地址,如果他们试图搜索它,这些都不会这样做,他们会给您一个 IP他们的网络服务器来处理搜索。
在喝醉了我的 Windows 7 tcpip 注册表设置后,我遇到了同样的问题。在:
确保您的域条目与您的 dhcpdomain 条目相同,那么您就可以开始了。
我在同样的问题上苦苦挣扎,我的窗口在使用 nslookup 时附加了主域后缀。我找到的解决方案是为请求添加点会阻止 Windows 执行此操作。所以不要使用:
nslookup yahoo.com 192.168.0.1
利用
nslookup yahoo.com。192.168.0.1。
根据消息来源,其他请求不应显示此行为。
来源(第 3 篇文章)在这里https://social.technet.microsoft.com/Forums/windows/en-US/a34896f6-d784-4e52-8252-54f6520bc495/dns-queries-all-have-my-internal-domain-名称应用到查询例如 googlecommydomaincom?forum=winserverNIS
我找到了答案。在该注册表设置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters 中,查找搜索列表。双击它并删除框中的内容。固定我的。现在 nslookup 是正确的。我从雇主那里得到了一些东西,我正在使用我的个人电脑进行远程工作。我再也不会为那家公司工作了。我仍在寻找流氓条目。
问题大多与住宅路由器的配置有关。在这些路由器的一般设置中,您会发现两个字段,系统名称和域名。
例如,如果您的 ISP 域名是 x.com,而您在该字段中输入的域名为 y.com。路由器还是会把WAN和LAN接口中配置的DNS作为权威DNS,但是会从这个y.com给出非权威的DNS。
我有同样的问题。
由 DHCP 服务器提供
删除域注册表值解决问题 HKLM\SYSTEM\CurrentControlSet001\Services\Tcpip\Parameters
对我来说,使用 bind9 作为权威本地名称服务器和同一域的权威名称服务器,我可以通过删除
*.example.com
记录来修复此行为(在下面注释掉)。这是为了方便而设置的,不必手动将所有端口转发的子域设置为相同的公共 IP。
副作用如父母所述。所有查询都解析到相同的公共 IP 地址。程序和服务运行良好,但是 nslookup 从不返回 IP 地址,这是我在发现此页面并引导我进行上述修复之前忍受了半年的一个小烦恼。