Herverbind 'n OpenVPN-kliënt: drie kontroles, drie omvangvlakke
Een sessie laat val, elke UDP-kliënt in kennis stel en die daemon herbegin is verskillende bewerkings. Besluit eers oor die omvang en verifieer dan die nuwe sessie.
Iemand vra dat die VPN-kliënt herverbind word, en die versoek kan drie verskillende dinge beteken. Dit kan beteken dat een gemagtigde sessie laat val word, dat elke kliënt ingelig word dat 'n UDP-bediener weggaan, of dat die daemon self herbegin word. Elkeen het 'n ander impakgebied, en die verkeerde keuse verander 'n regstelling vir een gebruiker in 'n onderbreking. Die omvang is die besluit, en die opdrag volg daaruit.
Vra wie geraak moet word voordat jy vra watter kontrole om te gebruik.
Een instansie: die bestuurskoppelvlak
’n Opgestelde bestuurskoppelvlak kan verbonde instansies lys en presies een daarvan laat val. Elke sessie dra 'n kliëntidentifiseerder, en client-kill CID teiken daardie identifiseerder eerder as 'n algemene naam. Lees die lewende identifiseerder uit die huidige statusuitvoer, want 'n waarde wat uit 'n ouer log gekopieer is, verwys na 'n sessie wat nie meer bestaan nie. Om die instansie te laat val, beëindig daardie verbinding en niks anders nie.
Dit waarborg nie 'n nuwe verbinding nie. Of die kliënt terugkom, hang af van sy herprobeerinstellings, sy oorblywende afstandinskrywings, sy verifikasievereistes en of die toesighoudende toepassing nog loop. 'n Kliënt wat terugkeer, kry 'n nuwe identifiseerder, en daarom is die vergelyking van identifiseerders die enigste betroubare manier om oud van nuut te onderskei.
’n UDP-afskeldkennisgewing is nie 'n opdrag per kliënt nie
explicit-exit-notify is 'n konfigurasieriglyn oor afskeld- en herbegin-gebeurtenisse. Op 'n UDP-kliënt sê dit vir die eweknie dat die sessie eindig, en die numeriese argument beheer hoeveel keer die kennisgewing herprobeer word. Wanneer die bediener oor UDP loop, stuur dit 'n herbeginbeheerboodskap aan sy verbonde kliënte, en die gedokumenteerde waardes onderskei herverbinding na dieselfde bediener van die skuif na 'n ander afstandinskrywing. Dit is 'n lewensiklusseïn met 'n wye gehoor.
Niks daarin kies 'n willekeurige kliënt op 'n willekeurige oomblik nie. Om dit as 'n herverbindknoppie te behandel, bereik elke verbonde sessie gelyktydig.
Seine werk op die proses, nie op 'n sessie nie
SIGUSR1 vra 'n lopende proses om sy verbinding te herbegin sonder om die konfigurasie weer te lees, en die volhardingsopsies bepaal wat daardie herbegin oorleef. SIGHUP gaan verder: dit lees die konfigurasielêer weer in en heropen sy hulpbronne. SIGTERM en SIGINT versoek 'n ordelike afsluiting. Dit is prosessvlakbewerkings: op 'n bediener met baie kliënte raak dit elke sessie wat die proses dra, nie net die een wat in die kaartjie genoem word nie.
Wanneer die proses onder 'n diensbestuurder loop, gebruik die bestuurder se eie beheer eerder as om 'n PID te sein wat jy in 'n proseslys gevind het. Lees die eenheid om te sien watter sein die bestuurder stuur, want 'n herbegin en 'n herlaai doen verskillende dinge aan dieselfde daemon.
Besluit oor die omvang voordat jy die kontrole kies
Drie vrae besleg dit. Wie moet geraak word: een gebruiker, elke kliënt van een bediener, of die daemon en alles wat hy dra. Wat moet oorleef: die konfigurasie, die tonneltoestand, of nie een nie. Wie is gemagtig om dit te doen: die bestuursintegrasie, die dienseienaar, of die netwerkoperateur wat die afskeldkennisgewing beheer. Beantwoord dit en net een kontrole pas.
Om 'n ongeverifieerde beheerverbinder by te voeg om 'n herverbindknoppie te kry, gee veel meer as daardie knoppie aan enigiemand wat die poort kan bereik.
Verifieer die nuwe sessie, nie die ontkoppeling nie
'n Ontkoppelingsgebeurtenis bewys dat die ou sessie geëindig het. Dit sê niks daaroor of 'n nuwe een verifieer, 'n adres ontvang, roetes installeer of die hulpbron bereik wat die gebruiker nodig gehad het nie. Kontroleer die nuwe identifiseerder, dan die tonneltoestand, dan een werklike hulpbron. Daardie drie stappe is die verskil tussen 'n herverbinding en 'n werkende verbinding.
Skryf die omvang in die veranderingsrekord. 'Herverbind die kliënt' is nie 'n beskrywing wanneer die kliënt een van veertig op 'n gedeelde bediener was nie.