Мне не известны никакие серверы имен, которые поддерживают несколько вопросов в одном запросе.
В таком запросе может быть неоднозначность, поскольку существуют флаги для каждого пакета (такие как AA), которые могут применятьсятолько на один из вопросов.Если вы задаете два вопроса, и сервер является полномочным только для одного из доменов, должен ли сервер устанавливать флаг или нет?Я подозреваю, что такие проблемы помешали разработчикам.
Был выдвинут ряд предложений по решению проблемы, о которой вы говорите (например, это предложение ввести QTYPE, который объединяет Aи AAAA, и повторение Пола Викси попыток ввести форму EDNS из нескольких вопросов), но в настоящее время программы, поддерживающие как IPv4, так и 6, имеют тенденцию выполнять два отдельных запроса, за которыми следует либо AAAA (после тайм-аута) по A или обоим одновременно.
Я полагаю, что есть также "all" QTYPE, но он может вернуть намного больше данных, чем вам нужно.
Редактировать: из query.c в источнике BIND:
dns_message_currentname(message, DNS_SECTION_QUESTION,
&client->query.qname);
client->query.origqname = client->query.qname;
result = dns_message_nextname(message, DNS_SECTION_QUESTION);
if (result != ISC_R_NOMORE) {
if (result == ISC_R_SUCCESS) {
/*
* There's more than one QNAME in the question
* section.
*/
query_error(client, DNS_R_FORMERR, __LINE__);
} else
query_error(client, result, __LINE__);
return;
}
Редактировать: также, из resolver.c в источнике BIND:
/*
* XXXRTH Currently we support only one question.
*/
if (message->counts[DNS_SECTION_QUESTION] != 1) {
log_formerr(fctx, "too many questions");
return (DNS_R_FORMERR);
}