DNS查询追加父后缀两次

我们遇到DNS客户端无法parsing某些FQDN的问题。 在发生问题的同一个内,对主机名进行nslookup工作。 但是,针对hostname.domain.parentdomain1.parentdomain2.net的nslookup不起作用。 奇怪的是,从外部域,相同的FQDN查询工作。 两个域中的客户端都使用相同的DNS服务器,这些服务器位于“parentdomain1”示例中。

nslookup回来了:

非权威回答:名称:hostname.domain.parentdomain1.parentdomain2.net.parentdomain2.net地址:209.62.20.188

所以,客户端两次追加“parentdomain2.net”。

将不胜感激任何援助。

这是NXDOMAIN劫持 ,揭示了DNSsearch后缀如何工作的一个无害的方面。

我会猜测你的DNSparsing是对本地设备,它包含你的区域的副本,然后对互联网服务器(这是做NXDOMAIN劫持)的其他区域的recursion查找。


具有DNSsearch后缀的客户端将附加后缀的块发出附加查询。 如果我的系统有一个后缀列表,例如, foo.domain.comdomain.com ,然后我对一个单一名称的主机server进行查找,它将按顺序执行以下查询,直到find:

 server. server.foo.domain.com. server.domain.com. 

(最后是以DNS的forms指定它是相对于根而不是别的)

这是伟大的,是非常有意义的。 如果server不在server. ,它将在server.foo.domain.com. – 如果它不存在,它会继续; 如果它find答案,它会停止。

当它开始看起来不那么正常的时候,当你search的东西,你正在想的是FQDN – 但DNS不知道(除非你在最后做一个nslookup )。 所以,如果我searchserver2.domain.com ,它会像这样search:

 server2.domain.com. server2.domain.com.foo.domain.com. server2.domain.com.domain.com. 

最后2个对你我都没什么意义,但parsing器不知道更好,需要检查。


这使我们看到你所看到的。 您的search后缀列表可能看起来像这样:

 domain.parentdomain1.parentdomain2.net parentdomain1.parentdomain2.net parentdomain2.net 

而且,recursionDNS服务器可能包含parentdomain1.parentdomain2.net的区域,但不包含parentdomain1.parentdomain2.net的区域。

所以,查询就像这样发生:

hostname.domain.parentdomain1.parentdomain2.net.

(NXDOMAIN响应 – 如果这个logging应该是这个地方的话,你会想看看为什么会这样)

hostname.domain.parentdomain1.parentdomain2.net.domain.parentdomain1.parentdomain2.net.

(您的名字服务器可能有一个parentdomain1.parentdomain2.net的区域,并引发另一个NXDOMAIN)

hostname.domain.parentdomain1.parentdomain2.net.parentdomain1.parentdomain2.net.

(与以前相同的结果)

hostname.domain.parentdomain1.parentdomain2.net.parentdomain2.net.

(现在,您的DNS服务器将查询转发给您的上游代理商,因为缺less权威区域,您的上游会尽职尽责地发送错误的回复,以便获得额外的广告收入)

所以! 这可能是一个logging的简单问题,由于您的ISP或任何其他人运行上游DNS服务器的滥用做法而导致混淆。 有很多variables我已经做了上面的假设,但是要做一些检查以解决特定查询的问题(使用.最后消除search后缀),它应该跟我如何概述它。

如果你有Windows用户,他们在域中或以某种方式与fomain关联(例如在wimaxnetworkingnsp id或类似这样),当他们发送dns quesry他们的追加他们的域名quesry。 在Linux /etc/resolv.conf中,如果你有searchdirectove这是相同的效果。 所以不要担心,这是正常的。