BIND 9 管理员参考手册(例如9.14.11或9.17.1版)在
- 5.2. 配置文件语法
category
短语 _queries
查询日志条目首先以
@0x<hexadecimal-number>
格式报告客户端对象标识符。
在 ARM 的其他任何地方都没有提到这个术语,而且它是唯一提到任何对象标识符的地方。
它似乎与发送查询的客户端无关:
- 对于来自许多不相关 IP 地址的查询可能是相同的,但
- 来自同一 IP 地址的两个查询可能会有所不同。
例如
@0x123456789abc
- 上半场
123456
似乎总是一样 - 下半场
789abc
不时变化。
- 上半场
在查询日志示例中,它可以是 32-bit
@0xffffffff
或 48-bit@0xffffffffffff
。Alan Clegg 在 2019 年 10 月的这个BIND Logging演示文稿中,仅通过它不是什么来描述它:
A
@0x
后跟客户端对象标识符(与客户端地址无关)
它是什么以及如何计算?
我们能从中得到什么信息?为什么它仍然被记录?
根据 Tony Finch在 2019 年 8 月对 bind-users 邮件列表的回复:
我很惊讶这似乎是唯一可以解释的地方。该命名似乎颇具误导性,因为基于此,它与客户端或对象标识符OID 无关(根据ITU-T X.660 | ISO/IEC 9834-1)。
这个解释似乎是可信的,因为它与值的格式和行为一致。此日志记录来自 ISC,
lib/ns/client.c
即客户端对象(感谢 Patrick Mevzek!):在这里,
%p
确实是 的内存地址(指针)client
,因为它是用 C 语言编写的,并且"client @%p %s%s%s%s%s%s%s%s: %s"
是printf 格式字符串,%
占位符具有:相反, BIND 9 管理员参考手册可以简单地说如下:
好吧,整个段落也可以格式化为列表而不是故事......