Kople ein OpenVPN-klient til på nytt: tre kontrollar, tre omfang
Å droppe éi økt, varsle kvar UDP-klient og starte daemonen på nytt er ulike operasjonar. Fastset omfanget først, og stadfest deretter den nye økta.
Nokon ber om at VPN-klienten blir kopla til på nytt, og førespurnaden kan tyde tre ulike ting. Det kan tyde å droppe éi autentisert økt, å varsle kvar klient om at ein UDP-tenar forsvinn, eller å starte daemonen sjølv på nytt. Kvar har ulik påverknadsradius, og feil val gjer ei retting for éin brukar til eit avbrot. Omfanget er avgjerda, og kommandoen følgjer av han.
Spør kven som skal råkjast før du spør kva kontroll som skal brukast.
Éin instans: administrasjonsgrensesnittet
Eit konfigurert administrasjonsgrensesnitt kan liste tilkopla instansar og droppe nøyaktig éin av dei. Kvar økt ber ein klientidentifikator, og client-kill CID rettar seg mot den identifikatoren i staden for eit felles namn. Les den levande identifikatoren frå gjeldande statusutskrift, fordi ein verdi kopiert frå ein eldre logg viser til ei økt som ikkje finst lenger. Å droppe instansen avsluttar den tilkoplinga og ingenting anna.
Det garanterer ikkje ei ny tilkopling. Om klienten kjem tilbake avheng av gjenframsøksinnstillingane, dei attverande eksterne oppføringane, autentiseringskrava og om overvakingsapplikasjonen framleis køyrer. Ein klient som kjem tilbake får ein ny identifikator, og derfor er samanlikning av identifikatorar den einaste pålitelege måten å skilje gammal frå ny.
Ei UDP-avgangsmelding er ikkje ein kommando per klient
explicit-exit-notify er eit konfigurasjonsdirektiv om avgangs- og omstartshendingar. På ein UDP-klient fortel det motparten at økta sluttar, og det numeriske argumentet styrer kor mange gonger meldinga blir gjenteken. Når tenaren køyrer over UDP, sender han ei omstartskontrollmelding til dei tilkopla klientane, og dei dokumenterte verdiane skil mellom å kople til same tenar på nytt og å flytte til ein annan ekstern oppføring. Det er eit livssyklussignal med eit breitt publikum.
Ingenting i det vel ein vilkårleg klient på eit vilkårleg tidspunkt. Å handsame det som ein gjentilkoplingsknapp når alle tilkopla økter samstundes.
Signal verkar på prosessen, ikkje på ei økt
SIGUSR1 ber ein køyrande prosess starte tilkoplinga på nytt utan å lese konfigurasjonen på nytt, og innstillingane for varigheit avgjer kva som overlever den omstarten. SIGHUP går lenger: det les konfigurasjonsfila på nytt og opnar ressursane sine på nytt. SIGTERM og SIGINT ber om ei ryddig avslutning. Det er operasjonar på prosessnivå: på ein tenar med mange klientar råkar dei kvar økt prosessen ber, ikkje den som er nemnd i billetten.
Når prosessen køyrer under ein tenestebehandlar, bruk behandlaren sin eigen kontroll i staden for å sende signal til ein PID du fann i ei prosessliste. Les eininga for å sjå kva signal behandlaren sender, fordi ein omstart og ei omlasting gjer ulike ting med same daemon.
Fastset omfanget før du vel kontrollen
Tre spørsmål avgjer det. Kven skal råkjast: éin brukar, kvar klient på éin tenar, eller daemonen og alt han ber. Kva skal overleve: konfigurasjonen, tunnelstoda eller ingen av dei. Kven har løyve: administrasjonsintegrasjonen, tenesteeigaren eller nettverksoperatøren som styrer avgangsmeldinga. Svar på det, og berre éin kontroll passar.
Å leggje til ein uautentisert administrasjonslyttar for å få ein gjentilkoplingsknapp gir langt meir enn den knappen til den som når porten.
Stadfest den nye økta, ikkje fråkoblinga
Ei fråkoblingshending beviser at den gamle økta slutta. Ho seier ingenting om ei ny økt som autentiserer seg, får ei adresse, installerer ruter eller når ressursen brukaren trengde. Kontroller den nye identifikatoren, deretter tunnelstoda, deretter éin reell ressurs. Dei tre trinna er skilnaden mellom ei gjentilkopling og ei tilkopling som verkar.
Skriv omfanget i endringsprotokollen. «Eg kopla klienten til på nytt» er ikkje ei skildring når klienten var éin av førti på ein delt tenar.