L-iskript up ta’ OpenVPN dam wisq kmieni, jew qatt ma kien lest?
Il-hook up jidħol meta jidher l-apparat tat-tunnel, qabel ir-rotot u l-lestija tal-applikazzjoni. Qabbel l-iskript mal-avveniment li għandu bżonn minflok ma żżid l-irqad.
L-iskript up jidħol, joħroġ b’żero, u l-kompitu fih ma jilħaqx servizz privat li mill-terminal jaħdem perfettament żewġ sekondi wara. L-istint huwa t-timing, u l-isewwija tas-soltu hija l-irqad, li jaħbi t-tlielaq mingħajr ma jifhmu. Il-qari aktar utli huwa li “up” isemmi hook, mhux garanzija tal-lestija. Huwa jaqbad meta l-apparat tat-tunnel ikun ikkonfigurat, li huwa qabel ir-rotot, id-DNS, u żgur qabel kwalunkwe applikazzjoni wara t-tunnel.
It-test tas-shell irnexxielu għax ġie esegwit wara li kollox ikkalma. Il-hook ġie esegwit f’mument wieħed speċifiku.
Fejn joqgħod up fl-ordni tal-bidu
OpenVPN jikkonfigura l-apparat tat-tunnel u mbagħad iħaddem il-hook up. L-installazzjoni tar-rotot hija stadju aktar tard, u għandha l-hook tagħha, u għalhekk kompitu dipendenti fuq ir-rotta mqiegħed fl-up jista’ jara apparat mingħajr mogħdija utli. Qiegħed ix-xogħol tar-rotot fir-route-up u l-problema tat-timing normalment tisparixxi.
Il-manwal jiddokumenta dan l-ordni u l-ambjent li jirċievi kull hook. Dan l-ordni huwa l-ispjegazzjoni kollha għar-rapport klassiku “jaħdem mill-shell tiegħi”, u huwa wkoll ir-raġuni għaliex l-istess skript jista’ jgħaddi fuq magna u jonqos fuq oħra b’stadju tar-rotot aktar bil-mod. L-ebda riżultat ma jgħid xejn dwar il-kwalità tal-iskript.
Id-DNS u l-lestija tal-applikazzjoni jiġu saħansitra aktar tard. Anki r-rotot installati mhumiex prova li l-endpoint fil-bogħod qed jisma’, li isem jiġi riżolt, jew li teżisti sessjoni tad-desktop għal kompitu fl-ambitu tal-utent.
X’jiret il-hook fil-fatt
Hook jidħol taħt il-kont u l-ambjent tal-proċess OpenVPN, li mhuwiex l-istess bħas-shell interattiv tiegħek. Jista’ jkun nieqes minn bus tas-sessjoni tal-utent, ambjent tad-desktop, jew kredenzjali li tinħall biss fil-login. Ikteb liema minn dawn il-kompitu fil-fatt jeħtieġ.
Dan huwa importanti għal kompiti li jidhru tan-netwerk iżda jiddependu fuq kuntest tal-utent: immuntar ta’ sehem b’kredenzjali tal-utent, issettjar ta’ proxy għal kull utent, jew konfigurazzjoni ta’ printer. Hook tat-tunnel privileġġjat huwa l-post ħażin għalihom, u l-ebda stennija ma ssewwi sessjoni nieqsa.
Meta kompitu jonqos f’hook, irreġistra l-kont, l-ambjent, u l-ewwel operazzjoni li naqset. Dan jifred it-timing prematur minn problema ta’ permess jew kuntest, u t-tnejn għandhom tiswijiet kompletament differenti. It-tbassir bejniethom huwa kif tiswija ta’ ħames minuti ssir wara nofsinhar sħiħ.
Għaliex iż-żieda tal-irqad mhijiex verifika tal-lestija
L-irqad idewwem l-iskript u jċaqlaq it-tieqa tat-tlielaq. F’ġurnata mgħaġġla l-kompitu jirnexxi; f’ġurnata bil-mod jonqos mill-ġdid, u l-falliment isir aktar diffiċli biex jiġi riprodott għax id-dewmien jidher li qed jaħdem. Dewmien li jaħdem biss taħt tagħbija ħafifa huwa koinċidenza, mhux tiswija.
Jekk id-dipendenza hija rotta, uża l-hook li jikkorrispondi għall-installazzjoni tar-rotot. Jekk id-dipendenza hija servizz wara t-tunnel, uża verifika limitata li tistenna dik il-kundizzjoni speċifika u tonqos b’mod ċar meta qatt ma tasal.
Żomm il-falliment espliċitu. Hook li joħroġ b’żero waqt li x-xogħol attwali tiegħu naqas huwa agħar minn hook li jonqos, għax il-maniġer tas-servizzi jirreġistra suċċess u ħadd ma jerġa’ jħares. Linja ta’ log mill-iskript stess hija l-irħas mod biex dan jinżamm onest.
It-tindif u r-rikonnessjoni jistħoqqilhom l-istess attenzjoni
Skript li jbiddel stat maqsum jeħtieġ mogħdija ta’ treġġigħ lura li taqbel. Rotot, entrati tar-resolver, u marki tal-firewall miżjuda minn hook għandhom ikunu idempotenti u riversibbli, inkella rikonnessjoni se tistiva t-tieni kopja fuq l-ewwel.
Ir-rikonnessjonijiet jistgħu wkoll iħaddmu l-hooks aktar spiss minn bidu sħiħ tas-servizz. Interfaċċja persistenti li terġa’ tistabbilixxi sessjoni tista’ terġa’ tqanqal iċ-ċiklu up u route-up, u għalhekk skript li jassumi esekuzzjoni waħda għal kull boot eventwalment iġib ruħu ħażin. Għodd l-esekuzzjonijiet fil-log matul ġurnata ta’ tħarħir biex tara kemm tassew jidħol. Imbagħad agħmel l-iskript sigur biex jidħol daqshekk darbiet.
Ittestja ċ-ċiklu tal-ħajja li naqas, mhux kmand aktar tard. Irriproduċi l-boot jew ir-rikonnessjoni, ara l-hook jidħol, u kkonferma li l-kompitu rnexxa fil-mument li tassew jidħol. Suċċess minn shell interattiv wara huwa evidenza dwar id-dipendenza, mhux prova li l-mogħdija tal-bidu taħdem.
Semmi l-avveniment li jiddependi fuqu kull kompitu, imbagħad waħħal il-kompitu ma’ dak l-avveniment. Kull ħaġa oħra hija dewmien li jippretendi li hija verifika.