
Das BIND 9 Administrator Reference Manual, z. B. für Version14.9.11oder9.17.1Staaten in
- 5.2. GRAMMATIK DER KONFIGURATIONSDATEI
- Der
category
Satzqueries
- Der
Der Abfrageprotokolleintrag meldet zunächst eine Clientobjektkennung im
@0x<hexadecimal-number>
Format.
Dieser Begriff wurde sonst nirgends im ARM erwähnt, und es ist die einzige Erwähnung einesObjektkennungüberhaupt.
Es scheint nicht mit dem Client zusammenzuhängen, der die Abfrage gesendet hat:
- Dies könnte auch für Abfragen von vielen unabhängigen IP-Adressen der Fall sein, aber
- Es kann bei zwei Abfragen von derselben IP-Adresse unterschiedlich sein.
Zum Beispiel
@0x123456789abc
- die erste Hälfte
123456
scheint immer gleich zu bleiben - die zweite Hälfte
789abc
ändert sich von Zeit zu Zeit.
- die erste Hälfte
In Abfrageprotokollbeispielen kann es 32-Bit
@0xffffffff
oder 48-Bit sein@0xffffffffffff
.Alan Clegg, in diesemBIND-ProtokollierungPräsentation vom Oktober 2019, beschreibt es nur durch das, was es nicht ist:
A
@0x
gefolgt von der Client-Objektkennung (hat nichts mit der Client-Adresse zu tun)
Was ist das und wie wird es berechnet?
Welche Informationen können wir daraus gewinnen? Warum werden sie überhaupt protokolliert?
Antwort1
Laut Tony FinchsAntwortan die Mailingliste der Bind-User im August 2019:
Es handelt sich um die Adresse im Speicher der Datenstruktur, die BIND verwendet, um seinen Arbeitsstatus für die Abfrage beizubehalten.
Ich bin überrascht, dass dies anscheinend der einzige Ort ist, an dem dies tatsächlich erklärt wird. Die Benennung scheint eher irreführend, da es auf dieser Grundlage nicht um dieKlientnochObjektkennungenOID (proITU-T X.660| ISO/IEC 9834-1).
Die Erklärung scheint glaubwürdig, da sie sowohl mit dem Format als auch mit dem Verhalten des Wertes übereinstimmt. Diese Protokollierung stammt aus ISCslib/ns/client.c
d.h. dieClientobjekt(Danke, Patrick Mevzek!):
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);
Dabei %p
handelt es sich um die Speicheradresse (Zeiger) desclient
, wie es in C geschrieben ist, und das "client @%p %s%s%s%s%s%s%s%s: %s"
ist einprintf-Formatzeichenfolge, bei dem die%
Platzhalterhat:
Die Syntax für einen Formatplatzhalter lautet
%[parameter][flags][width][.precision][length]type
s
: nullterminierte Zeichenfolge.p
:void *
(Zeiger auf void) in einem implementierungsdefinierten Format.
Stattdessen das BIND 9 Administrator Reference ManualKÖNNTEsagen Sie einfach etwas wie:
Der Abfrageprotokolleintrag meldet zunächst die Speicheradresse der Datenstruktur, die zum Speichern des Arbeitsstatus für die Abfrage verwendet wird, im
@0x<hexadecimal-number>
Format.
Der ganze Absatz könnte auch lauten:als Liste formatiertstatt einer Geschichte...