了解 dig 的 DNS 查询: dig 是否为 Z 字段设置非零值?

了解 dig 的 DNS 查询: dig 是否为 Z 字段设置非零值?

当我仔细检查 发送的 DNS 查询时dig,我发现 RFC 的状态有些奇怪。我不知道 DNS 协议的不同变体,但来自 RFC 1035

Z:保留以供将来使用。所有查询和响应中都必须为零。

这是接收到的 DNS 查询的内存快照,在调试模式下从 eclipse IDE 导出。

00000000   F5 F4 01 20  00 01 00 00  00 00 00 01  03 77 77 77  06 67 6F 6F  67 6C 65 03  63 6F 6D 00  00 01 00 01  00 00 29 10  00 00 00 00  ... .........www.google.com.......).....
00000028   00 00 0C 00  0A 00 08 1F  0A 12 91 67  67 B0 B9                                                                                   ...........gg..

将相应位映射到 DNS 字段(来自 RFC 1035)

F5F4-> DNS 事务 ID。

01-> QR、操作码、AA、TC、RD

20-> 00100000 => RA-> 0 , Z-> 010

Z是非零!dig如果存在 DNS 变体,是否使用 DNS 的其他变体?或者应该将其视为一个问题dig

答案1

DNS 不存在多种变体,但有关此主题的 RFC 1035 已由 RFC2535“DNS 安全扩展”修订。

其 6.1 节显示了消息格式:


                                           1  1  1  1  1  1
             0  1  2  3  4  5  6  7  8  9  0  1  2  3  4  5
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                      ID                       |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |QR|   Opcode  |AA|TC|RD|RA| Z|AD|CD|   RCODE   |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                    QDCOUNT                    |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                    ANCOUNT                    |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                    NSCOUNT                    |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
            |                    ARCOUNT                    |
            +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+

正如您所看到的,前面的 3 位 Z 字段现在分为 Z、AD 和 CD。

因此,您的0x20=0b00100000将被分割如下:

  • RA = 0:回复此消息的服务器无法进行递归
  • Z = 0: 正如预期的那样,应该是 0
  • AD = 1:“响应的答案和权限部分中包含的所有数据都已由服务器根据该服务器的策略进行了身份验证。”
  • CD = 0:检查未禁用(在查询中有意义,而不是在响应中,它被定义为“发送查询的解析器可以接受待处理(未经身份验证)的数据。”)
  • RCODE = 0:没有错误

DNS 规范很复杂,常常含糊不清,分散在许多文档中,等等。最近的这项工作可以帮助找到它的方法: https://powerdns.org/hello-dns/

相关内容