4

DNS 标准允许为每个查询指定超过 1 个问题(我的意思是在单个 DNS 数据包内)。我正在为 DNS 分析编写 Snort 插件,当 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 个名称。

4

1 回答 1

5

有关完整详细信息,请参阅此问题:在单个 DNS 查询中请求 A 和 AAAA 记录

简而言之,今天实际上没有人在一个查询中做多个问题。这从来没有明确定义,并提出了很多问题(比如:只有一个返回码,所以如果一个失败而不是另一个失败,你会为 2 个问题做什么?)。

它对人们同时进行AAAAA查询(而不是弃用ANY)很有用,但它今天基本上不存在。

于 2019-03-11T00:48:21.117 回答