正如标题所示,“警告:查询响应没有设置”是什么意思。 我在dighost.c(2888和2889行)中看到以下内容,但是仍然不确定在我的DNS服务器响应中会导致什么。
if (result == ISC_R_SUCCESS && (msgflags & DNS_MESSAGEFLAG_QR) == 0) printf(";; Warning: query response not set\n");
QR比特(报头中第三个八位字节中的MSB)指示分组是请求(0)还是响应(1)。
因此,所有的客户端都必须发送那个位清零的数据包,并且服务器务必发送该位设置。 错误消息告诉您收到的响应被标记为请求。
顺便说一句,几年前,微软的DNS服务器中有一个已知的错误,即使QR数据包被设置在该数据包中,它也会回答数据包! 结果是有可能导致分组循环。
看起来像这是由于响应头的QR部分的设置不正确。