Opätovné pripojenie klienta OpenVPN: tri ovládacie prvky, tri rozsahy
Zrušiť jednu reláciu, informovať každého klienta UDP a reštartovať démona sú rôzne operácie. Najprv určte rozsah, potom overte novú reláciu.
Niekto žiada, aby sa klient VPN znova pripojil, a táto žiadosť môže znamenať tri rôzne veci. Môže znamenať zrušenie jednej overenej relácie, upozornenie každého klienta, že server UDP odchádza, alebo reštart samotného démona. Každá má iný dosah a nesprávna voľba premení opravu pre jedného používateľa na výpadok. Rozsah je rozhodnutie a príkaz z neho vyplýva.
Skôr než sa spýtate, ktorý ovládací prvok použiť, spýtajte sa, koho sa to má dotknúť.
Jedna inštancia: rozhranie na správu
Nakonfigurované rozhranie na správu dokáže vypísať pripojené inštancie a vyradiť presne jednu z nich. Každá relácia nesie identifikátor klienta a client-kill CID cieli na tento identifikátor, nie na spoločné meno. Čítajte živý identifikátor z aktuálneho výstupu stavu, pretože hodnota skopírovaná zo staršieho logu odkazuje na reláciu, ktorá už neexistuje. Vyradenie inštancie ukončí toto spojenie a nič iné.
Nezaručuje nové pripojenie. Či sa klient vráti, závisí od jeho nastavení opakovania, zostávajúcich vzdialených položiek, požiadaviek na overenie a od toho, či dohliadajúca aplikácia ešte beží. Vracajúci sa klient dostane nový identifikátor, a preto je porovnávanie identifikátorov jediný spoľahlivý spôsob, ako odlíšiť staré od nového.
Oznámenie o ukončení UDP nie je príkaz pre jednotlivého klienta
explicit-exit-notify je konfiguračná direktíva o udalostiach ukončenia a reštartu. Na klientovi UDP oznamuje druhej strane, že relácia sa končí, a číselný argument riadi, koľkokrát sa oznámenie zopakuje. Keď server beží cez UDP, posiela pripojeným klientom riadiacu správu o reštarte, a dokumentované hodnoty rozlišujú opätovné pripojenie k rovnakému serveru od prechodu na inú vzdialenú položku. Je to signál životného cyklu so širokým publikom.
Nič v ňom nevyberá ľubovoľného klienta v ľubovoľnom okamihu. Ak sa s ním zaobchádza ako s tlačidlom opätovného pripojenia, zasiahne všetky pripojené relácie naraz.
Signály pôsobia na proces, nie na reláciu
SIGUSR1 žiada bežiaci proces, aby reštartoval svoje spojenie bez opätovného načítania konfigurácie, a voľby trvácnosti rozhodujú, čo ten reštart prežije. SIGHUP ide ďalej: znova načíta konfiguračný súbor a znova otvorí svoje prostriedky. SIGTERM a SIGINT žiadajú o riadne vypnutie. Sú to operácie na úrovni procesu: na serveri s mnohými klientmi zasahujú každú reláciu, ktorú proces nesie, nie tú uvedenú v tikete.
Keď proces beží pod správcom služieb, použite jeho vlastné ovládanie namiesto posielania signálu PID, ktorý ste našli vo výpise procesov. Prečítajte jednotku, aby ste videli, ktorý signál správca posiela, pretože reštart a opätovné načítanie robia s tým istým démonom rôzne veci.
Určte rozsah skôr, než vyberiete ovládací prvok
Rozhodnú tri otázky. Koho sa to má dotknúť: jedného používateľa, všetkých klientov jedného servera alebo démona a všetkého, čo nesie. Čo má prežiť: konfigurácia, stav tunela alebo nič. Kto je na to oprávnený: integrácia správy, vlastník služby alebo sieťový operátor, ktorý ovláda oznámenie o ukončení. Odpovedzte a hodí sa len jeden ovládací prvok.
Pridanie neovereného poslucháča správy kvôli tlačidlu opätovného pripojenia odovzdá každému, kto dosiahne na port, oveľa viac než to tlačidlo.
Overte novú reláciu, nie odpojenie
Udalosť odpojenia dokazuje, že stará relácia skončila. Nič nehovorí o novej, ktorá sa overuje, dostáva adresu, inštaluje trasy alebo dosahuje prostriedok, ktorý používateľ potreboval. Skontrolujte nový identifikátor, potom stav tunela, potom jeden skutočný prostriedok. Tieto tri kroky sú rozdiel medzi opätovným pripojením a fungujúcim spojením.
Zapíšte rozsah do záznamu o zmene. „Znova som pripojil klienta“ nie je opis, keď bol klient jeden zo štyridsiatich na zdieľanom serveri.