仅包含标头(无问题或资源)的 DNS 数据包有效吗?

Kri*_*ves 3 dns packet network-protocols

查看RFC 1035,我试图确定对于只包含 DNS 标头的数据包的正确响应是什么,其中所有“计数”均为零:

id         short     X
qdcount    short     0
ancount    short     0
nscount    short     0
arcount    short     0
<EOF>
Run Code Online (Sandbox Code Playgroud)

这个数据包应该有任何响应吗?是否应该将其视为错误?

har*_*ymc 5

任何qdcount不等于的DNS 查询都应1被 DNS 服务器拒绝。

返回的错误很可能是“格式错误”(FORMERR,rcode=1),这只是逻辑上的,因为根本没有任何内容的 DNS 查询必须被视为格式错误。

找到这方面的官方消息来源非常困难。我确实找到了 NSD 服务器的 错误报告 ,其中对其进行了测试并注明:“QDCOUNT = 0 使其变得FORMERR”。

对于 BIND 服务器,StackOverflow 帖子 What does QDstand for in DNS RFC1035 是这样描述 QDCOUNT 的:

请注意,该字段现在没有用处,因为 BIND 始终拒绝 QDCOUNT != 1。