Hvorfor en Azure OpenVPN-tunnel falder cirka hvert tresindstyvende sekund
En tunnel, der falder hvert tresindstyvende sekund, har fuldført sit håndtryk, så intet blokerer den. Læs først afbrydelsesårsagen, og sammenlign derefter begge keepalive-timere.
Tunnelen fuldfører sit håndtryk, bærer trafik i omkring et minut og genopretter derefter forbindelsen. Den sekvens udelukker den sædvanlige mistænkte, fordi en firewall, der blokerer porten, ville have stoppet håndtrykket og ikke sessionen. Det, du har, er en uenighed om livlighed: den ene side besluttede, at den anden var blevet tavs, og rev en fungerende tunnel ned. Loglinjen siger hvilken side, og den vælger rettelsen.
Læs den linje, før du rører nogen timer.
Myten: noget på vejen blokerer tunnelen
Hvis en port var blokeret, ville forbindelsen fejle ved starten og blive ved med at fejle. En gentagen cyklus betyder, at kontrolmeddelelser flyder, at sessioner oprettes, og at noget senere i samtalen bliver ved med at udløbe. Blokering skaber stilhed, og det her skaber en rytme.
Rytmen er det nyttige spor. Timere skaber den; pakketab gør det sjældent.
Læs afbrydelsesårsagen før timeren
OpenVPN navngiver sin årsag, og hvert navn peger på et forskelligt undersystem. Session invalidated: KEEPALIVE_TIMEOUT er en timer, der udløber, så sammenlign ping- og ping-restart-værdier i begge ender. AUTH_FAILED er legitimationsoplysninger eller certifikattilstand, og ingen ændring af timeren hjælper. En TLS-fejl betyder, at parterne slet ikke nåede keepalive-fasen.
Noter forbindelsestiden, afbrydelsestiden og om intervallet er stabilt på sekundet. Den ene måling adskiller en konfigureret tidsplan fra en tilfældighed.
Et stabilt interval er en timer. Et, der driver, er mere sandsynligt et vejproblem eller en forskudt session.
To keepalive-timere, der aldrig blev enige
Profiler eksporteret fra portalen indeholder nogle gange stadig linjer som keepalive eller ping-restart kopieret fra en community-server-skabelon. Gatewayen kører sin egen registrering af døde parter og håndhæver sine egne forventninger, og de to tidsplaner behøver ikke at stemme overens. Når de er uenige, genstarter klienten efter en tidsplan, som gatewayen aldrig har accepteret.
De to værdier er ikke den samme kontrol. ping er, hvor ofte klienten sender et ekko, og ping-restart er, hvor længe den venter uden at høre noget, før den river tunnelen ned. En profil med kort ping-restart og en gateway, der svarer langsomt, genstarter i hver stille periode, hvilket er præcis formen af en etminutscyklus.
Den mindste ændring på klientsiden er at neutralisere timerne på profilens øverste niveau, uden for hver inline-blok:
keepalive 0 0Gem, genindlæs profilen, genopret forbindelsen. En session, der allerede er i hukommelsen, beholder de gamle værdier, og derfor ser redigeringen nogle gange ud, som om den ikke gjorde noget.
Certifikatnavnet kan flytte sig under dig
Azure-certifikatgodkendelse afhænger af, at klienten stoler på det navn, som gatewayen præsenterer i dag. En verify-x509-name-linje i en ældre download kan fastlåse et navn, som en genopbygning af gatewayen eller en certifikatfornyelse har ændret siden, og uoverensstemmelsen viser sig som en genopkoblingsløkke i stedet for en klar fejl. Sletning af linjen genopretter forbindelsen, hvilket gør den til en god diagnose og en dårlig permanent løsning, fordi den også fjerner verifikationen. Når tunnelen holder, skal du gendanne linjen med det navn, gatewayen faktisk præsenterer.
Test en anden klientgeneration på samme maskine, før du redigerer gatewayen. Hvis den ene klient løber i ring, og den anden holder, er profilen ikke problemet.
Hvad skal ændres, og i hvilken rækkefølge
Tjek derefter for en forskudt session. To enheder, der deler et certifikat, kan skubbe hinanden ud, og resultatet ser periodisk ud, fordi begge sider bliver ved med at genoprette forbindelsen. Sammenlign punkt-til-site-sessionsposterne for den samme identitet, der dukker op igen og igen.
Test derefter den inaktive vej ved at køre kontinuerlig trafik i flere minutter. Hvis faldene stopper, mens trafikken flyder, tilhører den vigtige timer en NAT-enhed eller belastningsfordeler på vejen og ikke OpenVPN.
Gateway-indstillinger bør først ændres efter disse fire tests.