最近,我注意到我的 ISP 的 DNS 服务器在解析不存在的域时出现了一些“奇怪”的行为。这给我带来了一些问题,我想知道这些 DNS 服务器是否真的符合标准。
他们首先添加了一项功能,如果您请求的域名不正确,它会将您引导到他们运行的搜索页面。我猜这对某些浏览网页的人来说很有用,但它会给其他应用程序带来麻烦,特别是当搜索服务器有其他开放端口(如 SMTP)时。
为了解决这个问题,我更改了 ISP 的首选项以关闭此功能。现在我的 ISP 的 DNS 做了一些奇怪的事情。当无法找到某个域时,它会返回我自己的 IP 地址作为该不存在域的 A 名称。所以现在如果我点击一个不再存在的链接,它会将我跳转到我自己的主页(通过相同的 Internet 连接运行)。
我试图理解为什么被弹回到我自己的 IP 地址会是有用的。更重要的是,这是标准吗?还是他们为了他们自己最清楚的某些目的而违反了标准?
答案1
答案2
不。您应该获得 NXDOMAIN (http://dnsknowledge.com/whatis/nxdomain-non-existent-domain-2/) 当域名在权威 DNS 服务器中不存在时。例如:
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 服务器(BIND 缓存 DNS 服务器)?跟踪此问题的最佳方法是运行 dig 命令,或者最好使用 tcpdump 命令。以下将跟踪来自根名称服务器的委派路径,以验证您是否从自己的权威 DNS 服务器获取了正确的数据:
dig +trace your.domain.com
答案3
我不确定 RFC 对此有何规定。但是 Window 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
答案4
那是……等,什么?
对于任何不存在的域,您确实应该获取 NXDOMAIN。
如今,不存在的域名上出现通配符结果已成为现实 - 尽管这可能令人遗憾。但将请求 IP 作为通配符返回...这没有任何意义。我也从未见过 Google 做过这样的事情。
您是否有输出dig
或者nslookup
可以分享来澄清正在发生的事情?
或者,您是否愿意分享 ISP 的 DNS 服务器的 IP 或名称?我很想看看这种做法,因为这完全没有意义。我想不出您所描述的行为存在的任何理由。