Kažkas prašo iš naujo prijungti VPN klientą, ir šis prašymas gali reikšti tris skirtingus dalykus. Jis gali reikšti vienos autentifikuotos sesijos nutraukimą, kiekvieno kliento informavimą, kad UDP serveris išeina, arba paties tarnybinio proceso paleidimą iš naujo. Kiekvienas turi skirtingą poveikio spindulį, o neteisingas pasirinkimas vieno naudotojo pataisą paverčia visos paslaugos sutrikimu. Apimtis yra sprendimas, o komanda iš to išplaukia.

Prieš klausdami, kurį valdiklį naudoti, paklauskite, kam tai turėtų turėti įtakos.

Viena instancija: valdymo sąsaja

Sukonfigūruota valdymo sąsaja gali išvardyti prijungtas instancijas ir nutraukti tiksliai vieną iš jų. Kiekviena sesija turi kliento identifikatorių, o client-kill CID nukreipiamas į tą identifikatorių, o ne į bendrą pavadinimą. Skaitykite gyvą identifikatorių iš dabartinės būsenos išvesties, nes vertė, nukopijuota iš senesnio žurnalo, nurodo sesiją, kurios jau nėra. Instancijos nutraukimas baigia tą ryšį ir nieko daugiau.

Tai negarantuoja naujo ryšio. Ar klientas grįš, priklauso nuo jo pakartojimo nustatymų, likusių nuotolinių įrašų, autentifikavimo reikalavimų ir nuo to, ar prižiūrinti programa vis dar veikia. Grįžtantis klientas gauna naują identifikatorių, todėl identifikatorių palyginimas yra vienintelis patikimas būdas atskirti seną nuo naujo.

UDP išėjimo pranešimas nėra komanda kiekvienam klientui

explicit-exit-notify yra konfigūracijos direktyva apie išėjimo ir paleidimo iš naujo įvykius. UDP kliente ji praneša kitai pusei, kad sesija baigiasi, o skaitinis argumentas valdo, kiek kartų pranešimas kartojamas. Kai serveris veikia per UDP, jis siunčia paleidimo iš naujo valdymo pranešimą prijungtiems klientams, o dokumentuotos reikšmės atskiria prisijungimą iš naujo prie to paties serverio nuo perėjimo prie kito nuotolinio įrašo. Tai gyvavimo ciklo signalas plačiai auditorijai.

Niekas jame nepasirenka savavališko kliento savavališku momentu. Vertinant jį kaip prisijungimo iš naujo mygtuką, pasiekiamos visos prijungtos sesijos vienu metu.

Signalai veikia procesą, o ne sesiją

SIGUSR1 prašo veikiančio proceso iš naujo paleisti savo ryšį neperskaičius konfigūracijos, o išsaugojimo parinktys nusprendžia, kas išgyvens tą paleidimą iš naujo. SIGHUP eina toliau: jis iš naujo perskaito konfigūracijos failą ir iš naujo atidaro savo išteklius. SIGTERM ir SIGINT prašo tvarkingo išjungimo. Tai proceso lygio operacijos: daug klientų turinčiame serveryje jos paveikia kiekvieną sesiją, kurią neša procesas, o ne tą, kuri nurodyta užduotyje.

Kai procesas veikia po paslaugų tvarkykle, naudokite jos pačios valdymą, o ne siųskite signalą PID, kurį radote procesų sąraše. Perskaitykite unit failą, kad pamatytumėte, kokį signalą siunčia tvarkyklė, nes paleidimas iš naujo ir perkrovimas daro skirtingus dalykus tam pačiam tarnybiniam procesui.

Nustatykite apimtį prieš pasirinkdami valdiklį

Trys klausimai tai išsprendžia. Kam turėtų turėti įtakos: vienam naudotojui, visiems vieno serverio klientams, ar tarnybiniam procesui ir viskam, ką jis neša. Kas turėtų išlikti: konfigūracija, tunelio būsena, ar nei viena. Kas tam įgaliotas: valdymo integracija, paslaugos savininkas, ar tinklo operatorius, kuris valdo išėjimo pranešimą. Atsakykite į tai, ir tinka tik vienas valdiklis.

Neautentifikuoto valdymo klausytojo pridėjimas norint gauti prisijungimo iš naujo mygtuką atiduoda kiekvienam, kuris pasiekia prievadą, daug daugiau nei tą mygtuką.

Patikrinkite naują sesiją, o ne atsijungimą

Atsijungimo įvykis įrodo, kad senoji sesija baigėsi. Jis nieko nesako apie naują sesiją, kuri autentifikuojasi, gauna adresą, įdiegia maršrutus ar pasiekia išteklių, kurio naudotojui reikėjo. Patikrinkite naują identifikatorių, tada tunelio būseną, tada vieną realų išteklių. Tie trys žingsniai yra skirtumas tarp prisijungimo iš naujo ir veikiančio ryšio.

Įrašykite apimtį į pakeitimų žurnalą. „Aš iš naujo prijungiau klientą“ nėra aprašymas, kai klientas buvo vienas iš keturiasdešimties bendrame serveryje.

Susiję straipsniai