keepalive në OpenVPN apo restart në systemd: cili e rikuperon?
Një palë e heshtur, një proces i vdekur dhe një aplikacion i papërdorshëm janë tre dështime të ndryshme. Jepini keepalive OpenVPN-së, procesin systemd-së, dhe provoni çdo rast.
Tre gjëra të ndryshme mund të shkojnë keq me një tunel, dhe kërkojnë tre reagime të ndryshme. Pali ndalon së përgjigjuri, procesi i daemon-it vdes, ose aplikacioni pas tunelit ndalon së shërbyeri. Një konfigurim që rinis shërbimin për secilën prej tyre nuk është mbikëqyrje e kujdesshme; është një veprim i vetëm i trashë i aplikuar për dështime të palidhura. Krahasimi i asaj që çdo mekanizëm mund të vëzhgojë vërtet e bën të qartë ndarjen e punës.
Tre dështime që duken si një
Heshtja e palit do të thotë që skaji tjetër ndaloi së dërguari, dhe OpenVPN mund ta zbulojë vetë sepse zotëron rrahjen e zemrës. Vdekja e procesit do të thotë që daemon-i doli, gjë që menaxheri i shërbimeve e vëren dhe OpenVPN nuk mundet. Dështimi i aplikacionit do të thotë që tuneli është në rregull dhe diçka pas tij nuk është, dhe asnjë nga dy mekanizmat e tjerë nuk ka mënyrë ta dijë. Secili kërkon një reagim tjetër, dhe asnjë nuk është i njëjtë me vënien re se tuneli është aktiv.
Këto janë sinjale të ndryshme nga shtresa të ndryshme, dhe secili ka një pronar që mund të veprojë pa hamendësuar. Përzierja e tyre prodhon një sistem që rinis në simptoma që nuk mund t'i interpretojë.
Shkruani tre rastet përpara se të ndryshoni çdo kohëmatës. Vetë lista zakonisht tregon se një mekanizëm po kërkohet të mbulojë të tre.
Në çfarë zgjerohet vërtet keepalive
Direktiva keepalive është shkurtesë, dhe zgjerimi ndryshon sipas mënyrës. Në një server, keepalive 10 60 bëhet një ping lokal çdo dhjetë sekonda, një afat lokal rinisjeje prej 120 sekondash dhe vlerat 10 dhe 60 që u dërgohen klientëve. Afati i serverit dyfishohet qëllimisht që një klient të ketë shansin të rinisë përpara se serveri të dorëzohet. Lexoni formën e zgjeruar në konfigurimin që punon, jo shkurtesën në profil.
Ky dyfishim është arsyeja pse çdo përshkrim që pretendon se të dy skajet rinisin pas gjashtëdhjetë sekondash është i gabuar. Ai shpjegon gjithashtu pse dy skajet nuk lëkunden njësoj kur një rrugë përkeqësohet.
Rrahja e zemrës është trafiku i palëve të OpenVPN, jo një provë ICMP ndaj ndonjë hosti publik. Një përgjigje provon vetëm se skaji i largët i tunelit është gjallë. Nuk thotë asgjë për bazën e të dhënave ose shërbimin e web-it që përdoruesi ka vërtet nevojë.
Çfarë nuk vëzhgon Restart=on-failure
Lexoni njësinë e instaluar përpara se të shtoni një anulim. Restart=on-failure reagon ndaj kushteve të dokumentuara të dështimit të procesit, që nuk është e njëjtë me vëzhgimin e gjendjes së lidhjes. Nuk aktivizohet sepse filloi një rilidhje e brendshme, dhe një dalje e qartë ka semantikë të ndryshme nga një rrëzim.
Ky dallim ka rëndësi sepse një rinisje e brendshme mban gjallë të njëjtin proces. Njësia nuk sheh asgjë, tuneli rikuperohet vetë, dhe ky është rezultati i saktë.
Vendosni RestartSec dhe kufijtë e nisjes me qëllim, përndryshe një cikël rrëzimesh do të godasë portën dhe do të varrosë gabimin e vërtetë nën mesazhet e rinisjes. Një kufi rinisjeje që aktivizohet e lë njësinë në dështim, gjë që është e dukshme, ndërsa një cikël i pakufizuar nuk është.
ping-restart dhe ping-exit nuk janë të këmbyeshëm
ping-restart shkakton rinisjen e brendshme të OpenVPN dhe e mban procesin. ping-exit e përfundon procesin në të njëjtin lloj afati, gjë që ia dorëzon vendimin menaxherit të shërbimeve. Ato përjashtojnë njëra-tjetrën, dhe zgjedhja e së dytës ndryshon kush e zotëron rikuperimin. Dallimi është kush vendos të provojë përsëri, dhe sa gjendje i mbijeton përpjekjes.
Nëse zgjidhni daljen në afat, njësia ka nevojë për një politikë rinisjeje dhe trajtim të statusit të daljes që përputhen, përndryshe një dështim gjallërie duket si ndalim i përhershëm. Opsionet e këmbënguljes mund të ruajnë gjithashtu ndërfaqet dhe rrugët gjatë një rinisjeje të brendshme, por jo gjatë një daljeje të procesit.
Zgjidhni një cikël jetësor për çdo vendosje dhe shkruani pse. Një profil që mban të dyja direktivat është një profil që nuk është vendosur.
Provoni çdo dështim si rastin e vet
Simuloni një palë të heshtur, një daemon të vrarë dhe një aplikacion të padisponueshëm në një dritare të miratuar, pastaj kontrolloni cili rikuperim u aktivizua. Pali i heshtur duhet të prodhojë një rilidhje të brendshme, procesi i vrarë një rinisje të njësisë, dhe ndërprerja e aplikacionit asnjërën. Kur dy raste prodhojnë të njëjtin veprim, pronësia është ende e përzier.
Rikuperimi i përsëritur nuk është as riparim. Kredencialet e refuzuara ose dy klientë që ndajnë të njëjtin emër efektiv do të vazhdojnë të zëvendësojnë njëri-tjetrin, dhe kohëmatësit më të shpejtë e bëjnë atë lëkundje thjesht më të shpejtë.