Das Textprotokoll von OpenVPN schreibt ein Datum, eine Uhrzeit und einen us=-Wert in dieselbe Zeile, und der letzte der drei Teile ist der, den Leser falsch deuten. Er ist die Mikrosekundenkomponente dieses Zeitstempels, ohne Auffüllung mit Nullen ausgegeben. Er ist keine Sitzungskennung, kein Benutzername und kein Zähler, und wer ihn dafür hält, macht aus einem Bruchteil einer Sekunde eine sichere falsche Schlussfolgerung. Rechnet man ihn als Bruchteil der angezeigten Sekunde um, bleibt der Rest der Zeile lesbar.

Was die drei Teile der Zeile bedeuten

Datum und ganze Sekunde stehen vorn, und us= trägt den Rest unterhalb einer Sekunde. Ein Wert von 12345 sind zwölftausenddreihundertfünfundvierzig Mikrosekunden, also 0.012345 Sekunden, sodass die Zeile 09:15:30.012345 beschreibt, wenn die gedruckte Zeit 09:15:30 ist. Der Zähler beginnt mit jeder neuen Sekunde neu, sodass eine spätere Zeile einen kleineren Bruchteil ausgeben kann, ohne dass eine Uhr rückwärts läuft. Nur der vollständige Zeitstempel ordnet Ereignisse.

2026-11-02 08:41:07 us=4820

Die Einheit ist ein Millionstel einer Sekunde, und sechs Ziffern von us= decken den ganzen Bereich von 0.000000 bis 0.999999 ab. Fünf Ziffern beschreiben Zehner von Millisekunden, sechs dagegen Hunderter von Millisekunden bis fast zu einer vollen Sekunde. Ergibt eine Umrechnung einen Bruchteil größer als eins, ist das Dezimaltrennzeichen verrutscht und die Rechnung falsch. Von Hand heißt: die gedruckte ganze Zahl durch eine Million teilen und zur ganzen Sekunde addieren.

Das Auffüllen ist die Falle. us=42 sind zweiundvierzig Mikrosekunden, geschrieben als .000042, nicht .42. Füllen Sie die ganze Zahl vor dem Umrechnen links auf sechs Stellen auf, und der Wert sieht nicht mehr wie ein Dezimalbruch der sichtbaren Ziffern aus.

Eine Zeile ohne Taschenrechner umrechnen

Nehmen Sie die gedruckte Sekunde als Basis und behandeln Sie us= als den Bruchteil. Für 09:15:30 mit us=12345 ist die Dezimalform 09:15:30.012345; für us=900000 ist sie 09:15:30.900000. Die Ziffern nach dem Dezimaltrennzeichen sind die aufgefüllte ganze Zahl, nie die durch tausend geteilte ganze Zahl. Wer zuerst die sechsstellige Form schreibt, verhindert die meisten Fehler.

Wenn Sie Protokolle in Zeitstempel zerlegen, zerlegen Sie Datum, ganze Sekunde und Bruchteil zusammen. Ein Parser, der Millisekunden annimmt, ordnet Ereignisse um den Faktor tausend falsch, und die Ausgabe sieht trotzdem plausibel aus.

Wenn das Feld im Protokoll fehlt

Der Mikrosekundenteil gehört zum Textprotokollformat und erscheint nur, wenn ausführliche Zeitstempel aktiviert sind. Im Zeitstempel-Formatierer von OpenVPN 2.6 wird er angehängt, wenn diese Ausgabe an ist und der gespeicherte Wert nicht null ist. Ein Protokoll ohne us= sagt daher nichts über die Uhr oder den Build; meist ist die eingestellte Ausführlichkeit zu niedrig. Prüfen Sie die Konfiguration, bevor Sie die Zeitsynchronisation beschuldigen.

Die Einstellung lässt sich leicht aus der Serverkonfiguration bestätigen. Führen Sie den folgenden Befehl aus und lesen Sie die Zahl, die er zurückgibt. Ausführliche Zeitstempel-Ausgabe erscheint bei Ausführlichkeit 4, ein niedrigerer Wert erklärt also das fehlende Feld ohne einen anderen Fehler. Läuft dieselbe Konfiguration mit --verb 4, zeigt sie das Feld, sobald der Daemon mit dieser Stufe neu startet.

grep -nE '^[[:space:]]*verb[[:space:]]+[0-9]' /etc/openvpn/server.conf

Eine höhere Ausführlichkeit fügt dem Protokoll Details hinzu; sie verbessert die Uhr nicht. Vergleichen Sie nach dem Neustart eine neue Zeile mit einer alten, um zu bestätigen, dass sich das Format geändert hat, und senken Sie die Stufe wieder, sobald die Frage beantwortet ist.

Was sechs Ziffern nicht beweisen

Sechs Ziffern beschreiben die Auflösung, und die Auflösung sagt nichts darüber, ob zwei Hosts dieselbe Zeit haben. Client und Server können beide Mikrosekunden ausgeben, während ihre Uhren um Sekunden auseinanderliegen. Wenn Sie Ereignisse über Maschinen hinweg korrelieren, halten Sie die Zeitzone und jeden bekannten Versatz fest und bevorzugen Sie ein Feld, das den Peer oder die Sitzung nennt, gegenüber jedem Zeitstempel. Zwei Zeilen mit demselben Bruchteil sind nicht zwangsläufig dieselbe Verbindung.

Ein Sammler kann jede Zeile bei der Ankunft stempeln, was einen zweiten Zeitstempel hinzufügt, der zum Sammler und nicht zu OpenVPN gehört. Stellen Sie fest, welchen Sie lesen, bevor Sie sie vergleichen, und bewahren Sie die Rohzeile auf, damit der Vergleich wiederholt werden kann.

Ein frischer us= Wert beweist nicht, dass sich ein neuer Client angemeldet hat, und ein wiederholter beweist kein doppeltes Ereignis. Die Peer- und Verbindungsfelder beantworten diese Fragen.

Ähnliche Artikel