为什么状态为“拒绝”的查询会得到答案?

ian*_*lov 8 dns

我想知道为什么会这样。如果你只是“挖掘+缩短”记录,那就更奇怪了——你得到了回应,但客户无法利用它。我快速浏览了 RFC,但找不到这种行为的原因。

例子:

... opcode: QUERY, status: REFUSED ...

;; QUESTION SECTION:
blah.blah IN A

;; ANSWER SECTION:
blah.blah 19343 IN A 1.1.1.1

dig +short blah.blah just plainly returns 1.1.1.1
Run Code Online (Sandbox Code Playgroud)

小智 4

REFUSED根据 RFC 1035,状态的含义是:

The name server refuses to perform the specified operation for policy reasons.
Run Code Online (Sandbox Code Playgroud)

因此,使用该状态代码返回查询的答案是没有意义的。RFC 中没有定义特定客户端软件对这个无意义答案的反应,并且很可能因实现而异。