keepalive u OpenVPN ili restart u systemd: što oporavlja tunel?
Tihi partner, mrtav proces i neupotrebljiva aplikacija tri su različita kvara. Dajte keepalive OpenVPN-u, proces systemd-u i testirajte svaki slučaj.
Tri različite stvari mogu poći po zlu s tunelom, i one traže tri različite reakcije. Partner prestane odgovarati, proces demona umre ili aplikacija iza tunela prestane posluživati. Konfiguracija koja ponovno pokreće uslugu na bilo koji od njih nije pažljiv nadzor; to je jedna gruba radnja primijenjena na nepovezane kvarove. Usporedba onoga što svaki mehanizam zapravo može primijetiti čini podjelu rada očitom.
Tri kvara koja izgledaju kao jedan
Tišina partnera znači da je drugi kraj prestao slati, a OpenVPN to može sam otkriti jer posjeduje otkucaj. Smrt procesa znači da je demon izašao, što upravitelj usluga primjećuje, a OpenVPN ne može. Kvar aplikacije znači da je tunel ispravan, a nešto iza njega nije, i nijedan od druga dva mehanizma nema načina da to zna. Svaki traži drukčiju reakciju, i nijedan nije isto što i primijetiti da je tunel aktivan.
To su različiti signali iz različitih slojeva, i svaki ima vlasnika koji može djelovati bez nagađanja. Njihovo miješanje daje sustav koji se ponovno pokreće na simptome koje ne može protumačiti.
Zapišite tri slučaja prije nego promijenite bilo koji tajmer. Sam popis obično pokazuje da se od jednog mehanizma traži da pokrije sva tri.
U što se keepalive zapravo razvija
Direktiva keepalive je kratica, a razvoj se razlikuje po načinu rada. Na poslužitelju keepalive 10 60 postaje lokalni ping svakih deset sekundi, lokalni rok za ponovno pokretanje od 120 sekundi i vrijednosti 10 i 60 koje se šalju klijentima. Rok poslužitelja namjerno je udvostručen kako bi klijent dobio priliku za ponovno pokretanje prije nego poslužitelj odustane. Čitajte razvijeni oblik u pokrenutoj konfiguraciji, a ne kraticu u profilu.
To udvostručenje razlog je zašto je svaki opis koji tvrdi da se oba kraja ponovno pokreću nakon šezdeset sekundi pogrešan. Ono također objašnjava zašto dva kraja ne lepršaju usklađeno kada se put pogorša.
Otkucaj je promet partnera OpenVPN-a, a ne ICMP provjera nekog javnog hosta. Odgovor samo dokazuje da je udaljeni kraj tunela živ. Ništa ne govori o bazi podataka ili web usluzi koja korisniku zapravo treba.
Što Restart=on-failure ne nadzire
Pročitajte instaliranu jedinicu prije dodavanja nadjačavanja. Restart=on-failure reagira na dokumentirane uvjete kvara procesa, što nije isto kao nadziranje stanja veze. Ne aktivira se zato što je počelo interno ponovno povezivanje, a čist izlaz ima drukčije značenje od pada.
Ta razlika je važna jer interno ponovno pokretanje održava isti proces živim. Jedinica ne vidi ništa, tunel se sam oporavlja, i to je ispravan ishod.
Postavite RestartSec i ograničenja pokretanja namjerno, inače će petlja padova udarati po pristupniku i zatrpati pravu grešku porukama o ponovnom pokretanju. Ograničenje ponovnog pokretanja koje se aktivira ostavlja jedinicu u stanju kvara, što je vidljivo, dok neograničena petlja nije.
ping-restart i ping-exit nisu zamjenjivi
ping-restart pokreće interno ponovno pokretanje OpenVPN-a i zadržava proces. ping-exit završava proces na istoj vrsti roka, što odluku predaje upravitelju usluga. Oni se međusobno isključuju, a odabir drugoga mijenja to kome pripada oporavak. Razlika je u tome ko odlučuje pokušati ponovno i koliko stanja preživi pokušaj.
Ako odaberete izlaz na isteku roka, jedinici trebaju politika ponovnog pokretanja i obrada izlaznog statusa koji se podudaraju, inače kvar živosti izgleda kao trajno zaustavljanje. Mogućnosti postojanosti također mogu sačuvati sučelja i rute kroz interno ponovno pokretanje, ali ne kroz izlaz procesa.
Odaberite jedan životni ciklus po implementaciji i zapišite zašto. Profil koji nosi obje direktive profil je koji se nije odlučio.
Testirajte svaki kvar kao zaseban slučaj
Simulirajte tihog partnera, ubijeni demon i nedostupnu aplikaciju u odobrenom prozoru, zatim provjerite koji se oporavak aktivirao. Tihi partner trebao bi proizvesti interno ponovno povezivanje, ubijeni proces ponovno pokretanje jedinice, a prekid aplikacije nijedno od toga. Kada dva slučaja daju istu radnju, vlasništvo je još uvijek pomiješano.
Ponovljeni oporavak također nije popravak. Odbijene vjerodajnice ili dva klijenta koja dijele jedan učinkoviti naziv nastavit će zamjenjivati jedan drugoga, a brži tajmeri samo čine to lepršanje bržim.