我的域名注册商和DNS提供当前忽略对未知域的DNS请求。忽略是指出现黑洞且从不响应,这会导致我的DNS客户端和解析器库重试,退出并最终超时。
dig @NS3.DNSOWL.COM somedomainthatdoesntexist.org
...
;; connection timed out; no servers could be reached
在调查其他流行的域名服务时,我看到此行为非常独特,因为其他提供程序返回的RCODE为5(拒绝):
dig @DNS1.NAME-SERVICES.COM somedomainthatdoesntexist.org
dig @NS-284.AWSDNS-35.COM somedomainthatdoesntexist.org
dig @NS21.DOMAINCONTROL.COM somedomainthatdoesntexist.org
全部返回如下内容:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 64732
要么
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 31219
恕我直言,立即返回REFUSED
或NXDOMAIN
立即发送,而不是仅将请求丢弃在服务器机房地板上。
当我向提供者投诉他们的服务器没有响应时,他们要求我引用他们的服务器违反的RFC。我知道奇怪的是,他们要我证明他们的服务器应该响应所有请求,但事实并非如此。
问题:
- 我的规定是,除非存在重复的请求ID或某种DOS响应,否则服务器应始终响应该请求。这个对吗?
- 我应该引用什么RFC和特定部分来支持我的规定?
对我来说,不响应DNS查询是很糟糕的。大多数客户端将退出,然后将同一查询重新传输到同一DNS服务器或另一台服务器。它们不仅减慢了客户端的速度,而且还导致它们自己或其他服务器根据权威名称服务器和NS条目再次执行相同的查询。
在RFC 1536和2308中,出于性能原因,我看到了很多有关否定缓存的信息,并停止了重新传输同一查询。在4074中,我看到有关返回RCODE为0的空答案的信息,因此客户端知道没有ipv6信息,该信息会导致客户端询问A RR,这是空响应的另一个示例。
但是我找不到一个说DNS服务器应该响应请求的RFC,可能是因为它暗含了。
当我将域(和关联的DNS记录)迁移到他们的服务器时,或者在我向他们的服务注册新域后的最初X分钟内,就会发生特定的问题。在权威性名称服务器更改(如今这真是太快了)的时间与它们的服务器开始为我的DNS记录提供服务之间存在时间差。在此滞后时间内,DNS客户端认为其服务器是权威的,但它们从未响应请求-即使使用REFUSED
。我理解延迟是可以的,但是我不同意不响应DNS请求的决定。作为记录,我了解如何解决他们系统中的这些限制,但我仍在与他们合作,以改善他们的服务,使其更符合DNS协议。
谢谢您的帮助。
编辑:
在发布此消息并与我的提供商进行跟进后的几个月内,他们更改了服务器以返回NXDOMAIN
未知域。