括号中的数字在我的 Windows DNS 调试日志中是什么意思?

Rya*_*ies 6 domain-name-system windows windows-server-2008-r2

这是我一直好奇但从未问过的那些小事情之一。

在 Windows DNS 服务器上,您可以启用 DNS 调试日志记录并观察数据包飞过。

该日志中的一行可能如下所示:

6/5/2013 10:00:32 AM 0E70 PACKET  00000000033397A0 UDP Rcv 10.161.60.71    5b47   Q [0001   D   NOERROR] A      (12)somecomputer(6)domain(3)com(0)
Run Code Online (Sandbox Code Playgroud)

我感兴趣的部分是最后的实际查询名称:

(12)somecomputer(6)domain(3)com(0)

那些取代了句点的数字是什么意思?

Der*_*rfK 9

您的混淆使问题有点混乱,但您的顶级域绝对不是 com 否则它会是(3)com.

在 DNS 查询中,您请求的名称 ( QNAME) 以“pascal”样式字符串格式表示:一个字节表示字符串的长度,后跟那么多字符。名称的每一级都作为一个单独的字符串发送,没有.字符,最后发送一个空字符串(长度为 0),因此对 的地址的查询twelveletter.domain.com.将是(12)twelveletter(6)domain(3)com(0)

RFC 4.1.2 开始:

QNAME          a domain name represented as a sequence of labels, where
               each label consists of a length octet followed by that
               number of octets.  The domain name terminates with the
               zero length octet for the null label of the root.  Note
               that this field may be an odd number of octets; no
               padding is used.
Run Code Online (Sandbox Code Playgroud)