Windows 将域后缀附加到所有查找

Windows 将域后缀附加到所有查找

我有一个反复出现的 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 2k3 Active Directory,其中包含基于 Windows 的 DHCP 和 DNS 服务器。最终,问题通常会在几个小时或多次重启后自行解决。

以前有人见过这种行为吗?

答案1

如果您启动 nslookup 并打开调试,您会看到 Windows 总是首先尝试附加其后缀。

C:\>nslookup
Default Server:  itads.example.com
Address:  0.0.0.0

> set debug=true
> www.yahoo.com
Server:  itads.example.com
Address:  0.0.0.0

------------
Got answer:
    HEADER:
        opcode = QUERY, id = 2, rcode = NXDOMAIN
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        www.yahoo.com.example.com, type = A, class = IN
    AUTHORITY RECORDS:
    ->  example.com
        ttl = 3600 (1 hour)
        primary name server = itads.example.com
        responsible mail addr = itads.example.com
        serial  = 12532170
        refresh = 1200 (20 mins)
        retry   = 600 (10 mins)
        expire  = 1209600 (14 days)
        default TTL = 3600 (1 hour)

------------
------------
Got answer:
    HEADER:
        opcode = QUERY, id = 3, rcode = NOERROR
        header flags:  response, want recursion, recursion avail.
        questions = 1,  answers = 4,  authority records = 0,  additional = 0

    QUESTIONS:
        www.yahoo.com, type = A, class = IN
    ANSWERS:
    ->  www.yahoo.com
        canonical name = www.wa1.b.yahoo.com
        ttl = 241 (4 mins 1 sec)
    ->  www.wa1.b.yahoo.com
        canonical name = www-real.wa1.b.yahoo.com
        ttl = 30 (30 secs)
    ->  www-real.wa1.b.yahoo.com
        internet address = 209.131.36.158
        ttl = 30 (30 secs)
    ->  www-real.wa1.b.yahoo.com
        internet address = 209.191.93.52
        ttl = 30 (30 secs)

------------
Non-authoritative answer:
Name:    www-real.wa1.b.yahoo.com
Addresses:  209.131.36.158, 209.191.93.52
Aliases:  www.yahoo.com, www.wa1.b.yahoo.com

如上所示,我的机器首先尝试查找 www.yahoo.com.example.com,DNS 服务器响应NXDOMAIN(未找到条目)。您可以通过运行来确认这一点nslookup www.yahoo.com.(请注意 .com 末尾的点!),然后您会看到它已正常解析。

发生的事情是你的外部的DNS 服务器响应说他们有一个“www.yahoo.com.example.com”条目,并返回您站点根目录的 IP 地址。我不确定您使用什么服务,但我猜您有一个通配符映射,它告诉您的服务器以有效响应响应任何未知查询,而不是返回。NXDOMAIN您需要仔细检查服务器的设置,并确认它仅设置为响应它实际拥有的条目的查询(example.com、、等)。www.example.commail.example.com

请记住,DNS 的工作方式是检查已配置的服务器并从那里向上进行。DNS 查询可以采用以下模式的路径(当然,这只是一个示例,可能不正确):计算机 -> 本地路由器 DNS(linksys)-> ISP DNS ->(第二个 ISP DNS?)-> 根服务器 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 来处理搜索。

答案2

在醉酒后,我彻底解决了 Windows 7 tcpip 注册表设置问题,但仍然遇到同样的问题。在:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters

确保您输入的域名与输入的 dhcpdomain 相同,然后就可以开始了。

答案3

我为同样的问题而苦恼,我的 Windows 在使用 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-name-applied-to-queries-eg-googlecommydomaincom?forum=winserverNIS

答案4

问题大多数时候与家用路由器的配置有关。在这些路由器的常规设置中,你会发现两个字段:系统名称和域名。

例如,如果您的 ISP 域名是 x.com,而您在该字段中输入的域名为 y.com。路由器仍将 WAN 和 LAN 接口中配置的 DNS 作为权威 DNS,但 y.com 将不具有权威性。

相关内容