dig 输出中的“警告:未设置查询响应”是什么意思?

dig 输出中的“警告:未设置查询响应”是什么意思?

正如标题所示,“警告:未设置查询响应”是什么意思。我在 dighost.c(第 2888 行和第 2889 行)源代码中看到以下内容,但仍然不确定我的 DNS 服务器响应中的哪些内容会导致此问题。

if (result == ISC_R_SUCCESS && (msgflags & DNS_MESSAGEFLAG_QR) == 0)
    printf(";; Warning: query response not set\n");

答案1

QR位(报头中第三个八位字节的 MSB)指示该数据包是请求 (0) 还是响应 (1)。

因此,所有客户端都必须发送清除该位的数据包,服务器也必须发送设置了该位的数据包。错误消息会告诉您收到的响应被标记为请求。

顺便说一句,几年前 Microsoft DNS 服务器中有一个已知错误,即使数据包中设置了 QR 位,它也会应答该数据包!因此可能会导致数据包循环。

答案2

这看起来是由于响应标头的 QR 部分设置不正确造成的。

相关内容