Keepalive ir prisijungimas iš naujo konfigūruojami vienu metu, bet sprendžia skirtingas problemas, todėl vieno derinimas retai pataiso kitą. Keepalive siunčia nedidelį srautą, kad palaikytų būsenos įrašą gyvą arba pastebėtų, jog partneris nustojo atsakinėti. Prisijungimas iš naujo nugriauna tai, kas sulūžo, ir iš naujo pastato ryšį, įskaitant raktus, adresus ir maršrutus. Rinkitės gedimą atitinkantį mechanizmą, o ne tą, kurio rankenėlę jau pažįstate. Tai sprendžia du klausimai: ar kelias negyvas, ar kažkas tarp partnerių jį pamiršta?

Kai susiejimas yra problema

Tunelis, kuris miršta tik po kelių minučių tylos, paprastai praranda vertimo įrašą, o ne partnerį. WireGuard PersistentKeepalive egzistuoja NAT ir ugniasienės būsenai, o paties projekto pastabos jį apibūdina būtent taip, o ne kaip sveikatos patikrinimą. Kelių dešimčių sekundžių intervalas palaiko įrašą šiltą, o paketas kas sekundę yra baterijos sprendimas, o ne patikimumo. OpenVPN patenka į tą pačią vietą per ping ir ping-restart , kurie pirmiausia pastebi tylą, o paskui pagal ją veikia.

Šie nustatymai taip pat nepakeičiami tarp protokolų. IKEv2 negyvo partnerio taisyklė, OpenVPN ping laikmatis ir WireGuard keepalive atsako į tą patį klausimą trimis skirtingomis sintaksėmis ir trimis skirtingomis numatytosiomis reikšmėmis, todėl skaičiaus kopijavimas tarp jų yra derinimo drabužiais apsirengęs spėjimas.

Kai ryšio nebėra

Jei partneris keičia adresą, prisijungimo duomenys baigiasi arba tolimasis galas persikrauna, maži paketai nėra taisymas. Prisijungimas iš naujo turi atkurti būseną : gauti adresą, iš naujo įdiegti maršrutus, iš naujo derėtis dėl raktų ir kai kuriuose diegimuose iš naujo autentifikuoti naudotoją.

Klientai, kurie jungiasi iš naujo be priežiūros, laiko sertifikatą arba išsaugotą paslaptį. Klientas, kuris klaustų žmogaus, žlunga būtent tada, kai nieko nėra, ir tai yra scenarijus, kuriame prisijungimas iš naujo turėjo reikšmės. Tai prieš mėnesius priimtas dizaino sprendimas, o ne nustatymas, kurį galite pakeisti gedimo metu.

Ko neįrodo nė vienas

Tunelis gali būti prisijungęs iš naujo, su raktais ir maršrutais, kol už jo esanti paslauga neveikia, o keepalive gali laikyti susiejimą atvirą sesijai, kurios serveris dingo prieš valandas. Abu mechanizmai gali pranešti apie sėkmę, kai tai, kas jums iš tikrųjų rūpi, nepasiekiama.

Todėl testas baigiasi tikru užklausu. Po jums rūpimo intervalo nusiųskite ką nors per tunelį, tada atskirai sukurkite gedimą, kuriam projektavote: neveiklos laikotarpį susiejimo atveju, perkrovimą arba adreso pakeitimą prisijungimo iš naujo atveju.

Tiesioginio srauto blokavimas yra atskiras sprendimas

Prisijungimo iš naujo ciklas gali būti visiškai sveikas, kol programa tyliai naudoja įprastą kelią, ir tai yra nuotėkis, o ne gedimas. Jei reikalavimas yra, kad niekas neišeitų už tunelio, pasakykite tai aiškiai kliento konfigūracijoje ir įrodykite numetę tunelį ir stebėdami, kas dar jungiasi. Nė vienas mechanizmas neimplikuoja tokio elgesio, ir jokia pakartojimų disciplina jo nenustato.

Užrašykite, kuris mechanizmas veikė ir ar po to pavyko nauja užklausa. Šie du faktai yra tai, ko reikia kitam inžinieriui, ir nė vienas jų nesimato būsenos piktogramoje. Žurnalo eilutė, kad klientas prisijungė iš naujo, nėra tas pats, kas veikianti užklausa.

Rašykite politiką, o ne tik skaičių

Sudėkite porą į vieną sakinį: neveiklos intervalas, gyvybingumo slenkstis, kas sukelia perstatymą , ir ką klientas daro bandydamas iš naujo. Be to sakinio kiekvienas būsimas incidentas vėl atveria tą patį ginčą, ar keepalive per trumpas, ar prisijungimas iš naujo per lėtas.

WireGuard pastabos apie apribojimus yra naudingas priminimas, kad keepalive yra apėjimo sprendimas tarpiniams įrenginiams, o ne bendras gyvybingumo dizainas. Perskaitykite tą apribojimą prieš didindami dažnį atsakydami į problemą, kurios jis negali išspręsti.

Susiję straipsniai