Je, script ya up ya OpenVPN ilianza mapema mno, au haikuwa tayari kamwe?
Hook ya up hukimbizwa pale kifaa cha handaki kinapotokea, kabla ya njia na utayari wa programu. Linganisha script na tukio inalohitaji badala ya kuongeza usingizi.
Script ya up hukimbizwa, hutoka kwa sifuri, na kazi iliyo ndani yake haifikii huduma ya kibinafsi ambayo kutoka kwenye terminal hufanya kazi kikamilifu sekunde mbili baadaye. Silika husema ni muda, na ukarabati wa kawaida ni usingizi, ambao huficha mbio bila kuzielewa. Usomaji wenye faida zaidi ni kwamba “up” huita hook, si uhakika wa utayari. Huanza pale kifaa cha handaki kinaposanidiwa, jambo ambalo ni mapema kuliko njia, DNS na kwa hakika mapema kuliko programu yoyote nyuma ya handaki.
Jaribio la shell lilifanikiwa kwa sababu liliendeshwa baada ya kila kitu kutulia. Hook iliendeshwa kwa wakati mmoja maalum.
Mahali up inaposimama katika mpangilio wa kuanza
OpenVPN husanidi kifaa cha handaki na kisha huendesha hook ya up. Usanidi wa njia ni hatua ya baadaye, na ina hook yake yenyewe, ndiyo sababu kazi inayotegemea njia iliyowekwa ndani ya up inaweza kuona kifaa kisicho na njia yenye faida. Weka kazi ya njia ndani ya route-up na tatizo la muda kwa kawaida hupotea.
Mwongozo unaandika mpangilio huu na mazingira ambayo kila hook hupokea. Mpangilio huo ndio maelezo yote ya ripoti ya kawaida “inafanya kazi kutoka shell yangu”, na pia ndio sababu script hiyo hiyo inaweza kupita kwenye mashine moja na kushindwa kwenye nyingine yenye hatua ya njia ya polepole. Hakuna matokeo yoyote yanayosema kitu kuhusu ubora wa script.
DNS na utayari wa programu huja hata baadaye. Hata njia zilizosanidiwa si ushahidi kwamba mwisho wa mbali unasikiliza, kwamba jina linatatuliwa, au kwamba kuna kikao cha desktop kwa kazi ya wigo wa mtumiaji.
Hook hurithi nini hasa
Hook huendeshwa chini ya akaunti na mazingira ya mchakato wa OpenVPN, jambo ambalo si sawa na shell yako ya mwingiliano. Inaweza kukosa basi la kikao cha mtumiaji, mazingira ya desktop, au kitambulisho kinachofunguliwa tu wakati wa kuingia. Andika ni kipi kati ya hivyo ambacho kazi inahitaji kweli.
Hilo ni muhimu kwa kazi zinazoonekana za mtandao lakini zinazotegemea muktadha wa mtumiaji: kupachika shirika kwa kitambulisho cha mtumiaji, kuweka proksi kwa kila mtumiaji, au kusanidi printa. Hook ya handaki yenye upendeleo ni mahali pasipofaa kwa hizo, na hakuna kusubiri kunakorekebisha kikao kinachokosekana.
Kazi inaposhindwa kwenye hook, rekodi akaunti, mazingira, na operesheni ya kwanza iliyoshindwa. Hilo hutenganisha muda wa mapema na tatizo la ruhusa au muktadha, na yote mawili yana ukarabati tofauti kabisa. Kukisia kati yao ndio jinsi ukarabati wa dakika tano unakuwa mchana mzima.
Kwa nini kuongeza usingizi si ukaguzi wa utayari
Usingizi huchelewesha script na kuhamisha dirisha la mbio. Siku ya haraka kazi hufanikiwa; siku ya polepole inashindwa tena, na kushindwa huwa vigumu kuzalisha tena kwa sababu ucheleweshaji unaonekana kufanya kazi. Ucheleweshaji unaofanya kazi tu chini ya mzigo mwepesi ni bahati mbaya, si ukarabati.
Ikiwa utegemezi ni njia, tumia hook inayolingana na usanidi wa njia. Ikiwa utegemezi ni huduma nyuma ya handaki, tumia ukaguzi wenye mipaka unaosubiri hali hiyo maalum na kushindwa wazi pale isipofika kamwe.
Weka kushindwa wazi. Hook inayotoka kwa sifuri wakati kazi yake halisi imeshindwa ni mbaya zaidi kuliko hook inayoshindwa, kwa sababu meneja wa huduma hurekodi mafanikio na hakuna anayeangalia tena. Mstari mmoja wa logi kutoka kwenye script yenyewe ndio njia ya bei nafuu ya kuweka hilo kwa uaminifu.
Usafishaji na kuunganishwa upya vinastahili uangalifu sawa
Script inayobadilisha hali ya pamoja inahitaji njia ya kufuta inayolingana. Njia, maingizo ya resolver, na alama za firewall zilizoongezwa na hook zinapaswa kuwa idempotent na zinazoweza kurudishwa, vinginevyo kuunganisha upya kutapanga nakala ya pili juu ya ya kwanza.
Kuunganishwa upya kunaweza pia kuendesha hook mara nyingi zaidi kuliko kuanza huduma kamili. Kiolesura cha kudumu kinachoweka kikao upya kinaweza kuchochea mzunguko wa up na route-up tena, kwa hivyo script inayodhani utekelezaji mmoja kwa kila kuwasha itaishia kufanya vibaya. Hesabu utekelezaji kwenye logi kwa siku moja ya kuyumbayumba kuona ni mara ngapi inaendeshwa kweli. Kisha fanya script kuwa salama kuendeshwa mara hizo.
Jaribu mzunguko wa maisha ulioshindwa, si amri ya baadaye. Zalisha tena kuwasha au kuunganisha upya, tazama hook ikiendeshwa, na uthibitishe kwamba kazi ilifanikiwa wakati ambapo inaendeshwa kweli. Mafanikio kutoka kwenye shell ya mwingiliano baadaye ni ushahidi kuhusu utegemezi, si ushahidi kwamba njia ya kuanza inafanya kazi.
Taja tukio ambalo kila kazi inategemea, kisha unganisha kazi na tukio hilo. Kila kitu kingine ni ucheleweshaji unaojifanya kuwa ukaguzi.