WireGuard zlyháva po nečinnosti: najprv otestujte smer
Expirované mapovanie NAT, spiaci rádiový modul a zastaraná aplikácia vyzerajú po tichom období rovnako. Otestujte prichádzajúcu a odchádzajúcu prevádzku oddelene, skôr než pridáte keepalive.
Pred každou zmenou nastavenia stoja štyri otázky: funguje ten istý zdroj, kým je klient aktívny, ako dlho trvalo obdobie nečinnosti, spalo zariadenie alebo zmenilo sieť, a objavuje sa porucha len v prevádzke, ktorú spúšťa protistrana. Odpovede oddeľujú expirované mapovanie NAT od spiaceho rádiového modulu a od zastaranej aplikácie. Hovoria aj to, či má keepalive vôbec význam. Začnite smerom, pretože stojí jeden príkaz a vylučuje polovicu možných príčin.
Ktorý smer zlyháva?
Nová odchádzajúca požiadavka klienta a prevádzka, ktorá k nemu po tichom období prichádza, zaťažujú stavové zariadenia odlišne. Odchádzajúce pakety pri odchode obnovujú mapovanie, kým prichádzajúce pakety potrebujú, aby staré mapovanie prežilo. Táto asymetria je celý test. Ak sa klient dostane von, ale dnu nič neprichádza, mapovanie pravdepodobne expirovalo, a ak nefunguje ani jedno, tunel alebo sieťový prístup klienta zmizol.
Poznamenajte, ako dlho tiché obdobie trvalo a či zariadenie spalo alebo medzitým prešlo na inú sieť. Tieto dva fakty menia diagnózu skôr než akékoľvek nastavenie.
wg show wg0 latest-handshakes
wg show wg0 endpoints
wg show wg0 transfer
Spustite tie tri pred tichým obdobím a po ňom, pretože každý odpovedá na inú časť otázky. Časová značka handshake, ktorá sa nepohla, hovorí, že strany prestali hovoriť, kým zmenený koncový bod hovorí, že mapovanie sa posunulo, nie zomrelo. Počítadlá prenosu ukazujú, či vôbec niečo dorazilo, a to je rozdiel medzi expirovaným mapovaním a mlčiacou aplikáciou. Zapíšte čísla v oboch bodoch, pretože porovnanie je dôkaz.
Spánok, rádio a stav aplikácie
Na telefóne alebo notebooku môže spiace zariadenie úplne stratiť sieťový prístup a keepalive nedokáže obnoviť vypnuté rádio ani dokončiť captive portál, ktorý nebol splnený. Mobilné platformy pozastavujú prácu na pozadí podľa zásad, takže či periodická prevádzka pokračuje, závisí od platformy a od toho, čo si s ňou aplikácia dohodla. Uložené spojenie je tretí prípad a najviac zavádza, pretože návrat tunela nie je to isté ako opätovné pripojenie aplikácie k nemu.
Po období nečinnosti aplikáciu znova otvorte, namiesto toho, aby ste dôverovali karte, ktorá zostala otvorená. Ak nová požiadavka uspeje tam, kde stará relácia zlyhala, tunel nikdy nebol problém.
Čo keepalive v skutočnosti robí
PersistentKeepalive pravidelne posiela overený prázdny paket partnerovi, čo stačí na udržanie mapovania NAT medzi partnermi a na to, aby koncový bod druhej strany zostal aktuálny, ako opisuje rýchly štart WireGuard. Neopravuje spiace rádio, stratenú trasu ani aplikáciu, ktorá to nikdy neskúsi znova. Interval vyberte v podporovanom nastavení klienta a nezapínajte agresívnu hodnotu všade len preto, že stavový displej stíchne.
Väčšina období nečinnosti nie sú poruchy. Tunel, ktorý sa po piatich minútach ticha znova pripojí, sa správa správne, a problémom je len prípad, keď malo z protistrany niečo doraziť.
Vydržte interval, ktorý predtým zlyhával
Urobte jednu podporovanú zmenu a potom nechajte uplynúť to isté obdobie nečinnosti, než ten zdroj znova otestujete. Čakanie je súčasťou testu, nie formalita. Okamžitý úspech po opätovnom pripojení nič nehovorí o príznaku dlhej nečinnosti, pretože opätovné pripojenie je presne tou udalosťou, ktorá resetuje stav. Ak sa problém objaví aj pri aktívnom používaní, vráťte sa ku kontrolám handshake a dátovej cesty namiesto pridávania ďalšej periodickej prevádzky.
Držte jednu zmenu na test a zapíšte použitú dobu nečinnosti. Bez toho sa každé ďalšie porovnanie rozchádza a nikto nevie, ktorá zmena bola dôležitá. Zapíšte štyri fakty spolu: smer, dobu, stav spánku a správanie aplikácie.