Mažai programai, jungiančiai esamą VPN, reikia valdiklio, o ne naujos VPN implementacijos. Palaikomas variklis turėtų atlikti derybas ir tunelio srautą; jūsų programa turėtų išreikšti naudotojo užklausą ir sąžiningai paaiškinti rezultatą. Linux aplinkoje NetworkManager D-Bus sąsaja suteikia tam valdikliui konkretų modelį, kuriuo sekti.

Keturi patikrinimai neleidžia valdikliui supainioti išsaugoto profilio, aktyvinimo užklausos ir veikiančios sesijos.

Pirmas patikrinimas: kuri tapatybė pasirenkama

Laikykite profilio UUID kaip nuolatinę tapatybę ir išspręskite jį per tvarkyklę, kai reikia objekto kelio. Rodomą vardą gali bendrai naudoti du profiliai, o vykdymo laiko magistralės kelias nėra protingas naudotojo nustatymas saugoti. Užrašykite pasirinkimą savo konfigūracijoje, o ne komentare apie tai, kuris įrašas buvo antras sąraše.

Patikrinkite, ką tvarkyklė grąžina, prieš vadindami tai atitikimu. UUID, kurio nebėra, sukelia paieškos klaidą, ir tai yra kitas kodo kelias nei egzistuojantis profilis, kuris atsisako aktyvuotis.

Antras patikrinimas: ką grąžina aktyvinimo kvietimas

Dokumentuotas aktyvinimo kvietimas priima esamo ryšio objekto kelią, įrenginio kelią ir konkretų objektą. Jis grąžina aktyvaus ryšio kelią, ir tas atsakymas yra rankena, o ne pasirengimo rezultatas. Nenustatykite programos pasirengimo vėliavėlės iš grąžinamos reikšmės; užsiprenumeruokite aktyvaus ryšio būseną ir priežastį.

VPN atveju konkretus objektas pasirenka aktyvų bazinį ryšį. Perdavus šakninį kelią, įrenginio pasirinkimas paliekamas NetworkManager, kuris pasirenka tą, kuris tuo metu yra numatytasis. Tai maršrutizavimo konteksto sprendimas, o ne slaptažodžio laukas, ir jis keičia, ant kurio įrenginio klojamas tunelis.

Nepaimkite bendro pridėjimo-ir-aktyvinimo pavyzdžio ir nesitikėkite, kad jis sukurs VPN profilį. Dokumentuotas pagalbininkas neįtraukia VPN ryšių, todėl profilio paruošimas arba importas yra atskiras, peržiūrėtas žingsnis. Tai svarbu, nes paruošimui reikia įgaliojimo ir peržiūros, kurių jungimosi mygtukas nesuteikia. Traktuokite importą kaip administracinį veiksmą su savo žurnalo eilute ir savo tvirtintoju.

Trečias patikrinimas: kaip pateikiama būsena

Aktyvus ryšys pereina aktyvinimo, aktyvaus, išaktyvinimo ir išjungtos būsenas, o priežasties laukas pasako, kodėl. Viso to suglaudimas į loginę reikšmę pavadinimu loggedIn praranda informaciją, kurios reikia naudotojui ir kurios paklaus palaikymas. Rodykite bent tai, ar ryšys laukia, ar nustatytas, ar dingo, ir išsaugokite priežasties eilutę gedimo atvejui.

Susiekite asinchroninius atsakymus su užklausa, kuri juos sukūrė. Vėlyvas senesnio bandymo užbaigimas neturi perrašyti naujesnio naudotojo veiksmo, o dvigubas Connect paspaudimas turėtų būti ignoruojamas arba traktuojamas kaip atšaukimas ir pakartojimas su matoma politika.

Ketvirtas patikrinimas: kas nutinka po perkrovimo

Kai tvarkyklė persikrauna arba jūsų valdiklis vėl prisijungia prie magistralės, atkurkite stebimą būseną iš savininko. Nenustokite rodyti podėlyje esančios sesijos kaip aktyvios todėl, kad senas objekto kelias dar yra atmintyje. Būsenos pakeitimo signalai egzistuoja būtent tam, kad valdiklis galėtų sinchronizuotis iš naujo, o ne spėlioti.

Pasirinkite, ką reiškia uždaryti valdiklį. Palikti esamą mašinos valdomą ryšį įjungtą gali būti teisinga, o išardyti sąmoningai trumpalaikę sesiją taip pat gali būti teisinga. Palikti esamą mašinos valdomą ryšį įjungtą gali būti teisinga; išardyti sąmoningai trumpalaikę sesiją taip pat gali būti teisinga. Užrašykite tą nuosavybės sutartį sąsajoje, o ne manykite, kad proceso pabaiga atlieka tinklo veiksmą. Naudotojams neturėtų tekti spėlioti, ar lango uždarymas nutrauks jų tunelį. Įrašykite atsakymą į sąsajos tekstą, o ne tik į kodo komentarą.

Laikykite valdžią ir paslaptis pas jų savininkus

Leidimai grįžta kaip taip, auth arba ne, o sąsaja turėtų atspindėti skirtumą tarp leista, leista po autentifikavimo ir atmesta. Valdiklio paleidimas kaip root neįgyvendina leidimų politikos; jis pašalina klausimą.

Prisijungimo duomenys priklauso palaikomam paslapčių agentui arba kliento integracijai sukonfigūruotam autentifikavimo metodui. Slaptažodis šaltinio kode, argumente arba žurnale yra radinys, o vietinis administracinis įgaliojimas nėra tas pats įvykis kaip autentifikavimas ties tinklų sietuvu.

Galiausiai ryšio būseną praneškite atskirai nuo užduoties, kurią naudotojas nori atlikti. Tunelis gali būti aktyvus, kol privatus vardas ar programa lieka nepasiekiami, ir tas antras gedimas nusipelno savo žinutės ir savo būsenos. Valdiklis, kuris tiksliai pasako, kuris sluoksnis nepavyko, naudingesnis už tą, kuris sako, kad VPN neveikia.

Susiję straipsniai