
Справочное руководство администратора BIND 9, например, для версии9.14.11или9.17.1государства в
- 5.2 ГРАММАТИКА ФАЙЛА КОНФИГУРАЦИИ
- Фраза
category
queries
- Фраза
Запись журнала запросов сначала сообщает идентификатор объекта клиента в
@0x<hexadecimal-number>
формате .
Этот термин больше нигде не упоминается в ARM, и это единственное упоминание о нем.идентификатор объектасовсем.
Похоже, это не связано с клиентом, отправившим запрос:
- это может быть то же самое для запросов со многих не связанных между собой IP-адресов, но
- он может быть разным для двух запросов с одного и того же IP-адреса.
Например,
@0x123456789abc
- первая половина
123456
кажется всегда остается одинаковой - вторая половина
789abc
время от времени меняется.
- первая половина
В примерах журнала запросов это может быть 32-битный
@0xffffffff
или 48-битный вариант@0xffffffffffff
.Алан Клегг, в этомВедение журнала BINDпрезентация от октября 2019 года описывает его только через то, чем он не является:
A
@0x
, за которым следует идентификатор объекта клиента (не имеющий ничего общего с адресом клиента)
Что это такое и как это рассчитывается?
Какую информацию мы можем извлечь из этого? Почему это вообще регистрируется?
решение1
По словам Тони Финчаотвечатьв список рассылки bind-users в августе 2019 г.:
Это адрес в памяти структуры данных, которую BIND использует для хранения своего рабочего состояния для запроса.
Я удивлен, что это похоже единственное место, где это на самом деле объясняется. Название кажется довольно обманчивым, поскольку, исходя из этого, речь идет не оклиентниидентификаторы объектовOID (поМСЭ-Т X.660| ИСО/МЭК 9834-1).
Объяснение кажется правдоподобным, поскольку оно согласуется как с форматом, так и с поведением значения. Это логирование происходит от ISClib/ns/client.c
т.е.клиентский объект(Спасибо, Патрик Мевзек!):
2715 isc_log_write(ns_lctx, category, module, level,
2716 "client @%p %s%s%s%s%s%s%s%s: %s", client, peerbuf, sep1,
2717 signer, sep2, qname, sep3, sep4, viewname, msgbuf);
Здесь, %p
действительно, есть адрес памяти (указатель)client
, как это написано на языке C, и "client @%p %s%s%s%s%s%s%s%s: %s"
этострока формата printf, где%
заполнительимеет:
Синтаксис заполнителя формата:
%[parameter][flags][width][.precision][length]type
s
: строка с нулевым завершением.p
:void *
(указатель на void) в формате, определяемом реализацией.
Вместо этого, Справочное руководство администратора BIND 9МОГпросто скажите что-то вроде:
Запись журнала запросов сначала сообщает адрес памяти структуры данных, используемой для хранения рабочего состояния запроса, в
@0x<hexadecimal-number>
формате .
Ну, весь абзац также мог бы бытьотформатирован как списоквместо истории...