OpenVPN-krókaatburðir: hvers vegna nafn og tímastimplar eru ekki lykill
Aftengikrókur greinir frá tengitímanum, ekki aftengingartímanum. Með notandanafninu getur hann lokað röngu lotunni; eigið frekar auðkenni.
Aftengingarfærsla berst eftir að önnur tenging undir sama nafni er þegar hafin, og sá handfangsmeðferð sem uppfærir nýjustu röðina fyrir þann notanda lokar röngu lotunni. Mistakið er ekki tímastimplasamanburðurinn sjálfur. Það er forsendan um að nafn auk heillar sekúndu auðkenni eina lotu. Krókaatburðir lýsa tengingum, og tenging þarf lykil sem tilheyrir henni einni.
Byrjið á því hvað aftengingarbreyturnar þýða í raun. Aðeins þá er val auðkennisins skynsamlegt.
Hvað aftengikrókurinn ber í raun
Í Community OpenVPN 2.6 skilgreinir krókaleiðarvísirinn time_unix sem þá stund er biðlarinn tengdist; hann er stilltur áður en tengikrókurinn keyrir og er ekki endurskilgreindur þegar aftengikrókurinn kviknar síðar. time_duration gefur lengd þeirrar lotu í sekúndum, svo endirinn er um það bil tengitíminn plús lengdin. Bæði eru heilar sekúndur, og hvorugt er stundin þegar gagnagrunnurinn þinn vann atburðinn. Það að halda þessum þremur tímum aðskildum er það sem lætur fylgni halda, í stað þess að líta bara rétt út í prófunum.
Þessi reikningur á skilið að vera skrifaður niður, því hann er eini endatíminn sem krókurinn býður sjálfur. Vinnslutöf og klukkumunur milli hýsla liggja enn utan hans.
Hvers vegna hið augljósa par er ekki einkvæmt
Að para nafnið við tengitímann þrengir leitina og auðkennir samt ekki lotu. Biðlari getur tengst aftur innan sömu sekúndu, svo tvær lotur geta deilt báðum gildunum. Tvö dæmonseintök, eða skipti á þjóni sem heldur sömu stillingum, geta framleitt það par úr mismunandi ferlum. Tunnelfangar eru endurnýttir af sömu ástæðu, sem gerir þá að eiginleikum lotu frekar en auðkennum fyrir hana.
Bilunarhátturinn er hljóðlátur. Seint aftenging fyrstu lotunnar passar við nýjustu röðina og lýkur úthlutun sem önnur lotan er enn að nota, svo notandinn verður fyrir tilviljunarkenndu aðgangstapi sem hann olli ekki. Fjöldi raða sem lítur rétt út á eftir gerir vandamálið erfiðara að koma auga á.
Hvaðan kemur stöðugt auðkenni
Stjórnviðmótið úthlutar hverjum biðlara biðlaratilviksauðkenni, og það auðkenni er afmarkað við dæmonsins sem gaf það út. Nothæfur ytri lykill sameinar stöðugt þjónauðkenni, tímabil sem breytist þegar dæmoninn ræsist, og það biðlara-ID. Tímabilið skiptir máli því auðkenni byrja upp á nýtt með ferlinu, og bert ferlis-ID getur síðar verið endurnýtt af einhverju ótengdu.
Umhverfisbreytur sem settar eru inni í tengiskrift barnsins berast ekki til síðari aftengingarskriftar foreldradæmonsins, því þær skriftir keyra sem aðskilin ferli með eigin umhverfi. Því er myndun UUID við tengingu hálf lausn. Aftengingarhliðin verður að geta nefnt sama UUID, sem þýðir að auðkennið verður að lifa einhvers staðar þar sem báðir atburðir komast.
Gerðu lokun skilyrta og idempotenta
Lokið eftir eiganda lotu, ekki eftir notanda. Handfangsmeðferð sem eyðir hvaða úthlutun sem nú tilheyrir nafni mun að lokum eyða þeirri röngu, og eina vörnin er að athuga að færslan sem er fjarlægð sé færslan sem þessi atburður lýsir.
Stjórnviðmótið tekur við einum tengdum stjórnbiðlara í einu, svo samþættið við þann sem þegar á það frekar en að hengja annan áhorfanda sem keppir um sama samband.
Meðhöndlið endurteknar atburði án þess að breyta niðurstöðunni tvisvar, og varðveitið ópöruðu atburðina fyrir samræmingu í stað þess að henda þeim. Aftengingarhrísing hefur skjalfestar lífsferilsskilyrði og kemur kannski aldrei eftir hrun eða harða stöðvun, svo hönnunin þarf leið til að tákna lotu sem endatburður hennar vantar.
Prófið vandræðalegu tilfellin viljandi: tvær endurtengingar innan einnar sekúndu, tvö dæmonseintök, tenging sem vinnsla hennar mistókst, og endurræsing dæmons í miðri lotu. Lykill sem stendur af sér allar fjórar er lykill sem er treystandi.