Идентификатор объекта клиента в журналах запросов BIND 9

Идентификатор объекта клиента в журналах запросов BIND 9

Справочное руководство администратора 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>формате .

Ну, весь абзац также мог бы бытьотформатирован как списоквместо истории...

Связанный контент