Tidslinjen för en VPN-händelse börjar vanligtvis med två tidsstämplar som skiljer sig några minuter och en visning som visar en annan timme. Frestelsen är att välja en som korrekt och skriva om den andra. Båda kan vara korrekta, eftersom olika klockor skrev dem om olika händelser. Myten är att en VPN har en enda klocka; arbetet är att ta reda på vilken komponent som skrev varje fält.

Myten: VPN:en har en enda klocka

En klient skriver en händelse när den försöker med en anslutning. En gateway skriver en händelse när den tar emot eller accepterar försöket. En insamlare skriver en ankomsttid när den tar emot gatewayens meddelande. Det är tre händelser, och var och en stämplas av den klocka som den skrivande komponenten litade på. Att pressa ihop dem till en enda tidslinje är en bekvämlighet som döljer den bristande överensstämmelse du försöker förklara.

Talen skiljer sig vanligtvis från sekunder till minuter, och det är normalt. Det som spelar roll är om skillnaden är leveransfördröjning, klockförskjutning eller en verkligt annan händelse. Att avgöra vilken du tittar på kräver ursprunget för varje fält, inte en starkare åsikt om vilken maskin som har rätt.

Läs ursprunget före värdet

Innan du jämför värden måste du fastställa vem som producerade var och en och vilket fält det är. Ett syslog-meddelande bär en tidsstämpel från ursprunget, som RFC 5424 beskriver, och formatet kan också bära tidskvalitetsinformation som beskriver synkronisering och noggrannhet. Samma format låter ursprunget skicka ingen tidsstämpel alls när det inte kan läsa systemtiden, vilket i sig är en användbar signal.

journalctl -o short-iso --utc -n 20
logger -t vpn-check "test event"

En klient kan också skicka ett tidsvärde som applikationsmetadata, och en tjänst som lagrar det bör märka det som klientrapporterat i stället för att behandla det som oberoende verifierat. Den märkningen är skillnaden mellan bevis och påstående. När du exporterar loggar för ett ärende, håll fältnamnet, ursprunget och förskjutningen tillsammans. Att reducera dem till en bekväm lokal tid förstör just den information du behöver.

Stanna om du inte kan säga vilken komponent som skrev ett fält. Att jämföra det med något annat är gissningar.

Visning av tidszon är inte ett annat ögonblick

Samma ögonblick återgivet som 10:00Z och som 18:00+08:00 är inte en avvikelse, och att behandla det som en slösar bort en eftermiddag. Konvertera båda till UTC innan du jämför, och behåll originaltexten bredvid konverteringen. Ett decimalbråk på ena sidan och hela sekunder på den andra är inte heller en konflikt. Precision är inte noggrannhet: ett värde med millisekunder kan fortfarande komma från en klocka som är minuter fel.

date -u +%FT%TZ
timedatectl

Leveransfördröjning är den andra vanliga förklaringen. Gatewayen registrerar när den accepterade anslutningen, och insamlaren registrerar när meddelandet nådde den, så gapet mellan dem är transporttid. Det gapet säger något om loggpipelinen, inte om VPN-sessionen. Märk det som ankomsttid och det slutar konkurrera med händelsetiden.

Korrelera utan att skriva om bevisen

Behåll de ursprungliga tidsstämplarna och lägg till en härledd kolumn om du behöver en gemensam vy. Förklara konverteringen i anteckningarna i stället för att redigera källposterna, eftersom källan är det en senare granskare kommer att kontrollera. Bevara insamlarens ankomsttid separat där den än finns.

chronyc tracking
journalctl --utc -u openvpn-client@work -n 50 --no-pager

Att ändra en enhets klocka är inte en integritetskontroll och skriver inte om poster som ett annat system redan har. Det gör också supportbevis svårare att jämföra, och det kan bryta certifikat- och kodkontrollerna som beror på tiden. Håll klockorna synkroniserade för normal drift, och behandla varje avsiktlig avvikelse som ett fel att undersöka. Om de två posterna verkar vara i fel ordning, titta på klocksynkronisering och leverans innan du bygger en ny historia.

Myten som måste överges är att det finns en enda VPN-tid. Fråga vad som skrev varje fält och vad som hände när det gjorde det, och tidslinjen blir en uppsättning märkta observationer i stället för en motsägelse.

Relaterade artiklar