Стандарт DNS позволяет указывать более 1 вопроса на запрос (я имею в виду внутри одного пакета DNS). Я пишу плагин Snort для анализа DNS, и мне нужно проверить, правильно ли он работает, когда есть DNS-запрос, содержащий несколько вопросов.
Структура DNS-пакета выглядит следующим образом:
0 1 2 3 4 5 6 7 8 9 A B C D E F
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ID |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
|QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| QDCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ANCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| NSCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| ARCOUNT |
+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
| <ACTUAL QUESTIONS GO HERE> |
| |
| ... |
| |
Таким образом, если QDCOUNT
больше 1, в одном запросе может быть несколько вопросов DNS.
Как я могу выполнить такой запрос с помощью инструментов Linux? dig domain1.example domain2.example
создает только 2 отдельных запроса с 1 вопросом каждый. host
и nslookup
, кажется, позволяют запрашивать только 1 имя за один раз.