keepalive v OpenVPN, nebo restart v systemd: co obnoví tunel?
Tichý protějšek, mrtvý proces a nepoužitelná aplikace jsou tři různé poruchy. Dejte keepalive OpenVPN, proces systemd a otestujte každý případ.
S tunelem se mohou pokazit tři různé věci a každá vyžaduje jinou reakci. Protějšek přestane odpovídat, proces démona zemře nebo aplikace za tunelem přestane sloužit. Konfigurace, která při kterékoli z nich restartuje službu, není pečlivý dohled; je to jeden hrubý zásah aplikovaný na nesouvisející poruchy. Srovnání toho, co každý mechanismus skutečně může pozorovat, činí dělbu práce zřejmou.
Tři poruchy, které vypadají jako jedna
Ticho protějšku znamená, že druhý konec přestal vysílat, a OpenVPN to dokáže odhalit samo, protože vlastní srdeční tep. Smrt procesu znamená, že démon skončil, což si správce služeb všimne a OpenVPN nemůže. Selhání aplikace znamená, že tunel je v pořádku a něco za ním ne, a ani jeden z dalších dvou mechanismů to nemá jak zjistit. Každý potřebuje jinou reakci a žádný z nich není totéž jako všimnout si, že tunel běží.
Jsou to různé signály z různých vrstev a každý má vlastníka, který může jednat bez hádání. Jejich smícháním vzniká systém, který restartuje na příznaky, jež nedokáže vyložit.
Než změníte jakýkoli časovač, zapište si tři případy. Samotný seznam obvykle ukáže, že se po jednom mechanismu žádá, aby pokryl všechny tři.
V co se keepalive vlastně rozpíná
Direktiva keepalive je zkratka a rozvinutí se liší podle režimu. Na serveru se keepalive 10 60 mění na místní ping každých deset sekund, místní časový limit restartu 120 sekund a hodnoty 10 a 60 předávané klientům. Časový limit serveru je záměrně zdvojnásoben, aby klient dostal šanci restartovat dřív, než to server vzdá. Čtěte rozvinutou podobu v běžící konfiguraci, ne zkratku v profilu.
Právě kvůli tomuto zdvojnásobení je každý popis, který tvrdí, že se oba konce restartují po šedesáti sekundách, chybný. Vysvětluje to také, proč oba konce nekmitají současně, když se cesta zhorší.
Srdeční tep je provoz protějšku OpenVPN, nikoli ICMP sonda nějakého veřejného hostitele. Odpověď dokazuje jen to, že vzdálený konec tunelu žije. Nic neříká o databázi nebo webové službě, kterou uživatel skutečně potřebuje.
Co Restart=on-failure nesleduje
Přečtěte si nainstalovanou jednotku, než přidáte přepsání. Restart=on-failure reaguje na dokumentované podmínky selhání procesu, což není totéž jako sledování stavu spojení. Neaktivuje se proto, že začalo interní opětovné připojení, a čisté ukončení má jinou sémantiku než pád.
Tento rozdíl je důležitý, protože interní restart udržuje stejný proces naživu. Jednotka nic nevidí, tunel se obnoví sám a to je správný výsledek.
Nastavte RestartSec a limity spouštění vědomě, jinak bude smyčka pádů bušit do brány a skutečnou chybu zasype zprávami o restartu. Limit restartu, který se aktivuje, ponechá jednotku ve stavu selhání, což je vidět, zatímco neomezená smyčka vidět není.
ping-restart a ping-exit nejsou zaměnitelné
ping-restart spouští interní restart OpenVPN a zachovává proces. ping-exit ukončuje proces při stejném druhu časového limitu, čímž předává rozhodnutí správci služeb. Jsou vzájemně výlučné a volba druhého mění, kdo vlastní obnovu. Rozdíl je v tom, kdo rozhodne zkusit to znovu a kolik stavu pokus přežije.
Pokud zvolíte ukončení při vypršení limitu, jednotka potřebuje restartovací politiku a zpracování stavu ukončení, které k sobě patří, jinak selhání životnosti vypadá jako trvalé zastavení. Možnosti trvalosti mohou také zachovat rozhraní a trasy přes interní restart, ale ne přes ukončení procesu.
Zvolte jeden životní cyklus na nasazení a zapište proč. Profil, který nese obě direktivy, je profil, který se nerozhodl.
Otestujte každou poruchu jako samostatný případ
Simulujte tichý protějšek, zabitý démon a nedostupnou aplikaci ve schváleném okně a potom zkontrolujte, která obnova se spustila. Tichý protějšek by měl vyvolat interní opětovné připojení, zabitý proces restart jednotky a výpadek aplikace ani jedno z toho. Když dva případy vyvolají stejnou akci, vlastnictví je stále smíšené.
Opakovaná obnova také není oprava. Odmítnuté přihlašovací údaje nebo dva klienti sdílející jeden účinný název se budou dál navzájem nahrazovat a rychlejší časovače to kmitání jen zrychlí.