Een tunnel die elke vijftien minuten sterft, of elk uur op dezelfde minuut, vertelt u dat een of andere timer is verlopen, niet dat het netwerk onstabiel is. De nuttige stap is het interval opschrijven en het vergelijken met de vier timers die dit patroon veroorzaken. Time-outs wijzigen vóór die vergelijking verplaatst de fout meestal zonder hem te verklaren, waardoor het volgende optreden moeilijker leesbaar is dan het eerste. De meting kost tien minuten en vervangt een week giswerk.

Maak van het interval een getal

Verzamel vijf of zes gevallen en bereken de tussenruimte, niet de ruimte vanaf het begin van de dag. Een onderbreking om 09:12, 10:12 en 11:12 is een uurgrens; een onderbreking om 09:12, 09:27 en 09:42 is vijftien minuten vanaf de laatste geslaagde verbinding. Rond het resultaat af op de meest waarschijnlijke timer, niet op de dichtstbijzijnde minuut.

Noteer twee momenten per gebeurtenis: wanneer het verkeer voor het laatst bewoog en wanneer de client de verbinding meldde. Ze verschillen wanneer een tunnel stil sterft en de client het pas bij de volgende verzending merkt, en dat verschil scheidt een idle-time-out van een harde fout. Een client die laat merkt, blaast het idle-venster op dat u meet.

Let op of de herverbinding automatisch is. Een client die binnen enkele seconden opnieuw verbindt, houdt het interval zichtbaar in het log en buiten het gebruikersrapport, waardoor deze fouten vaak als incidenteel worden beschreven in plaats van periodiek. Het verbergt de gebeurtenis ook voor de persoon die de laptop gebruikt.

Vier timers die op elkaar lijken

Bijna elke terugkerende tunnelstoring komt van een van deze: een protocol-sleutelvernieuwing, een verlopen idle-mapping, een DHCP- of interfacegebeurtenis, of een accountbeleid. Ze verschillen in of er verkeer liep en in wat het log bij de grens zegt.

De onderstaande signaturen zijn de moeite waard om te leren, omdat ze u drie verklaringen laten verwerpen op basis van één logregel:

TimerTypical triggerWhat the log shows at the boundary
Protocol rekeyTraffic present, fixed intervalNegotiation lines, sometimes a failure
NAT or firewall idleNo traffic for minutesSilence, then a timeout on send
DHCP lease or link changeHalf the lease, or a radio eventAddress or interface churn
Account session limitWall-clock hours since loginClean disconnect, server-side reason

De eerste rij is een beveiligingsmechanisme dat zijn werk doet, en de tweede is een tussenapparaat dat de toestand vergeet. Ze verwarren leidt ertoe dat u de vernieuwing verzwakt of achter een firewallregel aan jaagt die nooit betrokken was.

Bezet tegenover inactief vertelt u welke helft

Voer een gecontroleerde vergelijking uit met doorlopend verkeer, zoals een lange stream naar een host binnen de tunnel, en kijk of het interval verandert. Als de onderbreking verdwijnt terwijl er gegevens stromen, is de timer gebaseerd op inactiviteit.

Als hij doorlopend verkeer overleeft, hoort de oorzaak bij vernieuwing, lease of beleid. Die ene test verwijdert de helft van de kandidaten in ongeveer een uur observatie, en hij kost niets anders dan aandacht.

Houd het toegangsnetwerk ongewijzigd tijdens de test. Wisselen tussen Wi-Fi en Ethernet halverwege de vergelijking introduceert precies de interfacegebeurtenis die u van een timer probeert te onderscheiden.

Stem de logregel af op de grens

Lees de client- en serverlogs rond het vastgelegde moment, niet het hele bestand. Een vernieuwing toont onderhandeling; een idle-verloop toont niets tot het volgende pakket; een leasewijziging toont adreswerk; een beleidslimiet toont meestal een schone administratieve verbreking.

Deze opdrachten halen het relevante venster uit elke bron:

grep -iE "reneg|TLS Error|Inactivity" /var/log/openvpn.log | tail -20
journalctl -u NetworkManager --since "-90 min" | grep -iE "dhcp|link"
wg show

Als de drie bronnen het eens zijn over de tijdstempel, kent u de eigenaar van de timer. Als alleen het clientlog iets bevat, beëindigt de server waarschijnlijk niet de sessie.

Repareer de fase, niet het pictogram

Elke eigenaar heeft één ondersteunde reparatie. Een vernieuwingsfout vereist compatibele voorstellen aan beide uiteinden. Een idle-verloop vereist een keepalive of een kortere idle-verwachting, binnen wat het pad toestaat. Een leasegebeurtenis vereist dat de interface- of energie-instellingen worden gecorrigeerd. Een accountlimiet is een beleidsbeslissing, geen bug.

Vernieuwing of authenticatie uitschakelen om het pictogram groen te houden, ruilt een zichtbare onderbreking voor een onzichtbare zwakte, en laat u niet kunnen zeggen wanneer de tunnel voor het laatst nieuwe sleutels onderhandelde. Test daarna de oorspronkelijke duur opnieuw en bewaar de tijdstempels, zodat de volgende gebeurtenis met deze kan worden vergeleken in plaats van opnieuw te beginnen.

Gerelateerde artikelen