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 个名称。