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


23

我遇到了一个反复出现的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服务器)。最终,问题通常会在几个小时或多次重新启动后才能解决。

有人见过这种行为吗?


Aggghhhh,这让我发疯了长时间-我没有意识到networksolutions拥有一个通配符条目,将其删除(将其设置为空白)并等待了几个小时后,终于能够为我们的外部域,并查看来自外部世界的正确NXDOMAIN响应。
Kamilion '18

Answers:


26

如果启动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.comwww.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他们的网络服务器来处理搜索。


1
好的摘要-这是许多住宅ISP的常见问题。
Doug Luxem

1
约书亚,听起来很合理。我已从您的网络解决方案配置中删除了通配符条目。正如您指出的那样,它没有任何作用,只是将无效的Web网址驱动到我们的主要网站。我会让它在午餐中传播,然后重试,让大家知道它是如何工作的。
Xap

您关于ISP和DNS的提示帮助我找到了问题所在。我用www替换了*。因此我的域名不会以www.mydomain.tld的形式出现,也不会再显示为www.yahoo.com.mydomain.tld。在Hover中,它作为默认值列在DNS下。
Stevoni,2015年

3

总计Windows 7 tcpip注册表设置后,我遇到了同样的问题。在:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters

确保您输入的域与dhcpdomain的输入相同,那么就可以了。


5
至少你是诚实的。
汤姆·奥康纳

1

我在同一个问题上苦苦挣扎,即使用nslookup时,我的Windows追加了主域后缀。我发现的解决方案是,为请求附加点可以阻止Windows执行此操作。因此,不要使用:

nslookup yahoo.com 192.168.0.1

使用

nslookup yahoo.com。192.168.0.1。

根据消息来源,其他请求不应显示此行为。

源(第3个帖子)在这里https://social.technet.microsoft.com/Forums/windows/zh-CN/a34896f6-d784-4e52-8252-54f6520bc495/dns-queries-all-have-my-internal-domain-名称应用于查询,例如,googlecommydomaincom?forum = winserverNIS


0

大多数情况下,问题与住宅路由器中的配置有关。在这些路由器的常规设置中,您将找到两个字段,系统名称和域名。

例如,如果您的ISP域名是x.com,而您将该域名放在y.com中。路由器仍将提供在WAN和LAN接口中配置的DNS作为权威DNS,但此y.com将给出非权威DNS。


0

我找到了答案。在该注册表设置HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ services \ Tcpip \ Parameters中,查找搜索列表。双击它并删除框中的内容。固定我的。现在nslookup是正确的。我从雇主那里得到的东西是我正在使用个人PC进行远程工作。我再也不会为那家公司工作。我仍然在寻找流氓条目。


0

我有同样的问题。

由DHCP服务器提供

删除域注册表值解决问题HKLM \ SYSTEM \ CurrentControlSet001 \ Services \ Tcpip \ Parameters


0

对我来说,将bind9用作权威本地名称服务器和同一域的权威名称服务器,我可以通过删除*.example.com记录(在下面进行注释)来解决此问题。

来自/etc/bind/example.com区域文件

; *。example.com。在CNAME example.com中。; GLOBALOK

这样做是为了方便起见,而不必手动将所有端口转发的子域设置为同一公共IP。

副作用是父母描述的。所有查询都解析为相同的公共IP地址。程序和服务运行良好,但是nslookup永远不会返回IP地址,这是我在发现此页面并导致上述修复之前忍受了半年的烦恼。


DNS通配符和后缀列表是两件事……
Patrick Mevzek,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.