vpn.persistent vis bando, bet nepalieka jūsų prisijungus
Ši savybė prašo VPN paslaugos išlaikyti tunelį ryšio pokyčių metu. Aktyvinimas, gyvybingumas, ketinimas ir kill switch elgsena lieka atskiri klausimai.
NetworkManager pateikia vieną savybę, vpn.persistent, ir žmonės prašo jos vienu metu atsakyti į keturis skirtingus klausimus. Jos aukštesnės grandies dokumentacija yra atidi: tvarumas galioja, kai VPN paslauga jį palaiko ir profilis jį įjungia, o tada ryšio prašoma atlaikyti ryšio pokyčius ir sutrikimus iki aiškaus atjungimo. Ta pati dokumentacija taip pat rodo, kad numatytoji savybės reikšmė yra false, ko dauguma atkūrimo planų nesitiki. Skaitykite tai kaip prašymą bandyti, o ne kaip rezultato pažadą.
Ką nustatymas iš tikrųjų įsipareigoja
Profilyje saugoma reikšmė yra nurodymas valdytojui, o valdytojas turi perduoti tą nurodymą VPN papildiniui, kuris žino, ką su juo daryti. Jei įdiegtas papildinys nepaiso savybės, profilis vis tiek suaktyvėja, o žurnalas lieka tylus, ir tai yra blogiausia iš abiejų pasaulių kiekvienam, kas vėliau derins. Niekas profilio viduje negali priversti papildinio įgyvendinti elgsenos, kurios jis neturi, todėl vienintelis matomas rezultatas yra nebuvimas.
Štai kodėl dokumentacijoje esanti sąlyga svarbesnė už jungiklį. Patikrinkite, kokį papildinį ir kokią versiją iš tikrųjų turite, ir parašykite versiją šalia ryšio aprašymo, kad kitam žmogui nereikėtų jos atrasti iš naujo. Atkūrimo politika, pastatyta ant neįgyvendintos vėliavėlės, žlunga gamyboje lygiai vieną kartą ir visada pačiu nepatogiausiu metu.
Savybės traktavimas kaip bandymo taip pat nustato tinkamą lūkestį testavimui. Jūs netikrinate, ar vėliavėlė nustatyta; jūs tikrinate, ar kas nors įvyko, kai ryšys nutrūko. Tai skirtingi eksperimentai, ir tik vienas jų vertas popietės.
Keturi klausimai, sujungti į vieną
Aktyvinimas klausia, kas apskritai pakelia VPN. NetworkManager profilį galima susieti su baziniu ryšiu, atskirai valdoma OpenVPN paslauga turi savo paleidimą, o trečio paleidiklio pridėjimas prie šios tvarkos duoda du savininkus, turinčius skirtingas idėjas apie tai, kas vadovauja. Nuspręskite, kuris komponentas valdo paleidimą, prieš pridėdami dar vieną trigerį.
Atkūrimas klausia, kas nutinka, kai ryšys pasikeičia arba dingsta, ir tai yra siauras klausimas, kurį sprendžia vpn.persistent. Gyvybingumas klausia, ar klientas gali atpažinti, kad tolimasis galas nustojo atsakinėti, ir į tai vietoj jo atsako OpenVPN keepalive arba perkrovimo elgsena; abu mechanizmai dažnai aprašomi tuo pačiu žodžiu ir įgyvendinami skirtingose vietose. Testuokite juos atskirai, skirtingais įrankiais, kitaip priskirsite vieną elgseną kitai.
Ketinimas klausia, ar persijungimas apskritai pageidaujamas, ir tai yra klausimas, į kurį būsenos apklausa negali atsakyti. Sąmoningas sustabdymas ir sutrikimas sukuria tą pačią neaktyvią būseną, todėl viskas, kas persijungia esant nebuvimui, spėlioja apie žmogišką sprendimą. Spėlioti gerai iki tos akimirkos, kai tai ką nors aplenkia.
Kontrolinis sąrašas, kuris juos atskiria
Vykdykite įvykius iš eilės, o ne skaitykite konfigūraciją ir apie ją samprotaukite, ir užfiksuokite, ką kiekvienas rodo, su laiko žyma.
Pirma, suaktyvinkite numatytą bazinį ryšį ir patvirtinkite, kad VPN pakilo per lauktą trigerį, o ne per mechanizmą, kurį pamiršote įdiegę. Antra, patvirtinto pertraukimo metu palyginkite valdytojo VPN įvykius, savininko kliento atkūrimo būseną ir naują užklausą privačiam ištekliui. Trečia, sąmoningai atjunkite, palaukite ir patvirtinkite, kad niekas neuž jūsų nugaros nepaleidžia profilio iš naujo.
Trečias žingsnis yra tas, kurį žmonės praleidžia, ir būtent jis dažniausiai randa tikrą defektą. Sarginė, kuri tikrina aktyvų profilį ir persijungia, kai jo nėra, linksmai atšauks sąmoningą naudotojo atjungimą. Naudotojo požiūriu tai ne atsparumas; tai mašina, kuri nepaklus. Paklauskite jų prieš pridėdami tokią.
Įrašykite rezultatus į tą patį dokumentą kaip ryšio aprašymą. Atkūrimo politika verta tiek, kiek paskutinis kartas, kai kas nors matė ją sąmoningai žlungant. Laiko žymos padaro skirtumą matomą kiekvienam, kas kitą kartą skaitys užrašus.
Autentifikavimas yra atkūrimo dalis
Persijungimas nėra vien tinklo veiksmas. Jei patvirtintam srautui reikia naujo iššūkio, vienkartinio kodo arba paslapties, kurios aktyvinimo kontekstas negali pasiekti, joks tvarumo nustatymas negali jos sukurti iš nieko.
Tai paaiškina pažįstamą modelį: ryšys atsikuria mašinoje su atrakintu raktų raiščiu ir žlunga toje pačioje mašinoje po perkrovimo. Tinklo sluoksnis padarė būtent tai, ko buvo prašoma, o prisijungimo duomenų sluoksnis neturėjo ką pasiūlyti.
Taisykite prisijungimo duomenų darbo eigą, o ne trumpinkite kartojimo intervalą. Greitesni kartojimai prieš užklausą, į kurią niekas negali atsakyti, sukuria žurnalo triukšmą ir klaidingą įspūdį, kad kažkas bandoma.
Tvarumas nėra kill switch
Savybė bando išsaugoti arba atkurti VPN santykį. Ji nenusprendžia, ką programos gali daryti, kol VPN išjungtas, ir pati nieko neblokuoja.
Jei reikalavimas yra kad joks srautas neišeitų už tunelio, tai atskira politika su savo mechanizmu, savo testais ir savo gedimų režimais. Prielaida, kad tvarumas tai apima, paverčia saugumo sprendimą nelaimingu atsitikimu.
Užrašykite abi puses atkūrimo užrašuose: ką VPN bandė ir koks programų srautas buvo leidžiamas bandymo metu.