我最近在parsing不存在的域时,注意到我的ISP的DNS服务器有些“奇怪”的行为。 这一直导致我一些问题,我想知道这些DNS服务器是否确实符合标准。
他们从添加function开始,如果您请求一个不正确的域名,它将引导您到他们运行的search页面。 我猜这对于一些网页浏览者来说很有用,但是对于其他应用程序来说,特别是如果search服务器还有其他一些开放的端口,比如SMTP,这种情况就会发生。
为了解决这个问题,我改变了我的ISP的喜好,closures这个function。 现在我的ISP的DNS做了很多陌生的事情。 当找不到一个域时,它返回我自己的IP地址作为该不存在的域的A名称。 所以,现在如果我点击一个不再存在的链接,它会将我反弹到我自己的主页(通过相同的Internet连接运行)。
我试图理解为什么被反弹到我自己的IP地址将永远有用。 更重要的是,这是标准,还是他们打破了为自己最熟悉的目的的标准?
是的,你的互联网服务提供商打破了这个标准,但是这些日子以来都是这样。 您的ISP的DNS服务器应该返回一个NXDOMAIN响应或“不存在的域”。
如果他们无法做到这一点,我会考虑使用像Google或OpenDNS这样的外部DNS服务器,或者为您的客户运行自己的内部caching/parsing服务器。
关于OpenDNS的一个注意事项,我相信你必须注册一个企业帐户来closuresNXDOMAINredirect。
不可以。当权威DNS服务器中不存在域时,您应该获得NXDOMAIN( http://dnsknowledge.com/whatis/nxdomain-non-existent-domain-2/ )。 一个例子:
host foooo.serverfault.com Host foooo.serverfault.com not found: 3(NXDOMAIN)
Google确实会返回NXDOMAIN
host foooo.serverfault.com 8.8.8.8 Using domain server: Name: 8.8.8.8 Address: 8.8.8.8#53 Aliases: Host foooo.serverfault.com not found: 3(NXDOMAIN)
你有没有尝试过使用自己的DNS服务器(BINDcachingDNS服务器)? 跟踪这个问题的最好方法是运行dig命令或更好地使用tcpdump命令。 以下将跟踪根名称服务器的委派path,以validation您是否从您自己的权威DNS服务器获取了正确的数据:
dig +trace your.domain.com
我不确定RFC是关于这个的。 但是,Windows DNS返回超时。
> yagoo.mil Server: mylocaldc.com Address: 172.27.27.10 DNS request timed out. timeout was 2 seconds. DNS request timed out. timeout was 2 seconds. *** Request to mylocaldc.com timed-out
但谷歌返回域名回来没有答案。
> server 8.8.8.8 Default Server: google-public-dns-a.google.com Address: 8.8.8.8 > yagoo.mil Server: google-public-dns-a.google.com Address: 8.8.8.8 Name: yagoo.mil
那是……等等,什么?
你真的应该为任何不存在的域获取NXDOMAIN。
不存在的域名的通配符结果现在是现实 – 不幸的是,这可能是。 但是将请求的IP作为通配符返回……这没有任何意义。 我从来没有见过Google做过这样的事情。
你有dig或nslookup的输出,你可以分享以澄清是怎么回事?
另外,你是否愿意分享你的ISP的DNS服务器的IP,或者也许是他们的名字? 我很想看到这个行动,因为这是毫无意义的。 我想不出为什么你描述的行为会存在。