我的域注册商和 DNS 提供当前忽略对未知域的 DNS 请求。忽略我的意思是黑洞并且从不响应,这会导致我的 DNS 客户端和解析器库重试、退出并最终超时。
dig @NS3.DNSOWL.COM somedomainthatdoesntexist.org
...
;; connection timed out; no servers could be reached
Run Code Online (Sandbox Code Playgroud)
在调查其他流行的域名服务时,我发现这种行为非常独特,因为其他提供商返回的 RCODE 为 5 (REFUSED):
dig @DNS1.NAME-SERVICES.COM somedomainthatdoesntexist.org
dig @NS-284.AWSDNS-35.COM somedomainthatdoesntexist.org
dig @NS21.DOMAINCONTROL.COM somedomainthatdoesntexist.org
Run Code Online (Sandbox Code Playgroud)
全部返回如下内容:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64732
Run Code Online (Sandbox Code Playgroud)
或者
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 31219
Run Code Online (Sandbox Code Playgroud)
返回REFUSED或NXDOMAIN立即返回是合适的恕我直言,而不是仅仅在服务器机房地板上删除请求。
当我向我的提供商抱怨他们的服务器没有响应时,他们要求我引用他们的服务器违反的 RFC。我知道他们要求我证明他们的服务器应该响应所有请求,这很奇怪,但就这样吧。
问题:
对我来说,不响应 DNS 查询是不好的。大多数客户端将退出,然后将相同的查询重新传输到相同的 DNS 服务器或另一台服务器。它们不仅会减慢客户端的速度,还会导致它们自己或其他服务器根据权威名称服务器和 NS 条目再次执行相同的查询。
在RFC 1536和 …