Mahali ambapo kikomo cha data cha mwezi kwa kila akaunti ya OpenVPN kinapaswa kuwa
Kikomo kinachowekwa upya kila unganisho jipya si kikomo. Fuatilia matumizi kwa akaunti, toza kila tofauti ya baiti mara moja, na ufanye ukomo kuzuia kuingia.
Kikomo kinachowekwa upya kila mara handaki linapounganisha tena si kikomo, na hiyo ndiyo hasa unayopata pale kikokotoo cha baiti kinapofungwa kwenye seva ya VPN bila mahali pa kuhifadhi hali ya kudumu. Kikokotoo ni cha kipindi kimoja; kikomo ni cha mtu au cha mkataba wa kifaa. Ugumu wote wa kipengele hiki unatoka kwenye kutolingana huko, kwa hiyo ukaguzi ulio hapa chini unahusu mahali hali inapoishi na tabaka gani linaloruhusiwa kuamua.
Funga kikomo kwenye akaunti, si kwenye handaki
Anza kwa kutaja somo la kikomo. Mtu mmoja anaweza kuwa na vyeti vitatu vya vifaa, na hakuna kimoja kati yao kinachopaswa kupata bajeti ya mwezi ya kujitegemea kwa sababu tu vinathibitisha kivyake. Kitambulisho thabiti cha akaunti kinachostahimili unganisho jipya, anwani mpya za handaki na kuhamia lango la pili ndicho nanga pekee ambacho kikomo kinaweza kutumia. Jina la kawaida la cheti hufanya kazi kama ufunguo huo pale tu sera yako ya utoaji inapohakikisha akaunti moja kwa kila jina.
Anwani ya handaki iliyotengwa si jibu kamwe. Anwani hutumika tena, madimbwi hushirikiwa, na akaunti hiyo hiyo inaweza kuonekana mara mbili kwenye lango mbili katika dakika moja. Ikiwa leja inategemea anwani, kutenganisha na kuunganisha tena kunatosha kujaza tanki tena.
Andika vya kutosha kwa kila kipindi ili hesabu iweze kukaguliwa: akaunti, kipindi cha bili, nakala ya lango, utambulisho wa kipindi, vikokotoo vya mwisho vilivyozingatiwa na jumla iliyoidhinishwa. Jumuisha kizazi cha kuanza kwa daemon katika utambulisho wa kipindi, kwa sababu seva iliyoanzishwa upya hutumia tena vitambulisho vya wateja na ulinganishaji usio wa kina ungerithi mstari wa msingi uliopita.
Weka kitengo, mwelekeo na mpaka wa kuweka upya
Ufafanuzi nne lazima uwekwe kwa maandishi kabla ya ukusanyaji wowote kuanza. Je, kikomo kinahesabu baiti ambazo mteja hutuma, anazopokea, au jumla ya zote mbili? Je, gigabaiti ni baiti 10^9 au 2^30? Saa gani ya kienyeji na katika eneo gani la saa kipindi hugeuka? Na kikokotoo kinapima nini hasa, ikizingatiwa kuwa gharama za ziada za handaki na usafirishaji upya zimejumuishwa wakati ukubwa wa faili ya programu na ankara ya mtoa huduma haujajumuishwa?
Hakuna chaguo lolote kati ya haya lililo kosa, lakini utekelezaji na nambari ambayo mteja anaiona lazima zikubaliane. Nusu mbili za mfumo mmoja zisizokubaliana kuhusu GiB, au kuhusu mgeuko unaotokea saa sita usiku UTC badala ya saa za kienyeji, huzalisha aina hiyo hiyo ya tiketi inayodhoofisha imani katika kikomo chote.
Geuza jumla za baiti kuwa tofauti moja inayotozwa
Kiolesura cha usimamizi huripoti mistari ya BYTECOUNT_CLI ya mara kwa mara inayobeba kitambulisho cha mteja pamoja na jumla limbikizi za baiti katika kila mwelekeo, na amri ya bytecount huweka ni mara ngapi hufika. Kwa mtazamo wa seva, nambari iliyopokelewa huhesabu baiti ambazo mteja alituma na nambari iliyotumwa huhesabu baiti zilizofikishwa kwake. Weka muda kwa kitu ambacho leja inaweza kuchukua; muda mfupi sana hununua usahihi ambao kwa kweli haupati.
Kizuizi kimoja huunda muundo wote: soketi ya usimamizi inakubali muunganisho mmoja wa udhibiti. Kitoa cha ufuatiliaji, GUI na kidhibiti chako haviwezi kila kimoja kufungua chake. Amua mchakato gani unamiliki kituo na uwaache wengine kusoma hali kutoka kwacho, kwa sababu kiolesura hiki kinatoa vitendo vya kiutawala na kwa vyovyote hakipaswi kufichuliwa nje ya mwenyeji.
rx_delta = sample.rx_now - session.prev_rx
tx_delta = sample.tx_now - session.prev_tx
charge = rx_delta + tx_delta
# same transaction:
ledger.total += charge
session.prev_rx, session.prev_tx = sample.rx_now, sample.tx_now
Idhinisha mistari mipya ya msingi na ongezeko la matumizi pamoja, ili kucheza tena sampuli kusitoze chochote badala ya kutoza mara mbili. Kikokotoo kinachosonga nyuma ni ishara, si deni: inamaanisha kipindi kilibadilishwa au daemon ilianzishwa upya, na jibu sahihi ni kupatanisha utambulisho wa kipindi badala ya kuweka salio hasi.
Njia ya kutenganisha inahitaji uangalifu sawa. Ikiwa tukio la mwisho linabeba jumla za mwisho wa kipindi, toza tu tofauti na sampuli ya mwisho iliyoidhinishwa. Kuongeza jumla kamili baada ya sampuli za mara kwa mara kuwa zimetozwa tayari ni hesabu mbili inayojulikana zaidi katika mifumo ya kikomo iliyotengenezwa nyumbani. Vipindi vinavyovuka mpaka wa kipindi pia vinahitaji kanuni, kwa kuwa jumla moja ya mwisho haibebi taarifa kuhusu baiti zilipovuka saa sita usiku.
Ukomo unapaswa kukataa kuingia, si kuvunja handaki tu
Akaunti inapofikia kikomo chake, mambo mawili lazima yatokee: vipindi vilivyopo vinaisha na vipya vinakataliwa. Itifaki ya usimamizi hutoa client-kill kwa kitambulisho cha mteja, ambayo hushughulikia nusu ya kwanza mradi tu uorodheshe kila kipindi kilicho hai cha akaunti badala ya kuvunja anwani moja uliyoiona kwa bahati.
Nusu ya pili ndipo miundo ya kikomo inaposhindwa. Kuua peke yake ni mashindano na mzunguko wa kuunganisha upya wa mteja, ambao utarudi kwa furaha sekunde chache baadaye. Kuingia lazima kishauriane na leja iliyoshirikiwa, na katika usambazaji wa malango mengi ukaguzi huo hauwezi kuwa faili kwa kila mashine. Kila nakala inayoweza kukubali kuingia lazima iona hali hiyo hiyo iliyokwisha.
Muunganisho upya unaotegemea tokeni unastahili jaribio lake. OpenVPN 2.6 inaweza kuthibitisha tokeni ya kipindi ndani kwa auth-gen-token, ikiruka wito wa uthibitishaji wa nje ambao kidhibiti chako kilitumia kulazimisha kikomo. Kwa hiyo tokeni iliyo halali bado inathibitisha utambulisho, si kikomo kilichobaki, na kila nakala mpya ya mteja lazima bado ishauriane na leja. Ikiwa badala yake utawasha management-client-auth, kidhibiti kinakuwa kithibitishaji na hurithi wajibu wa kuchambua hali ya kipindi yenyewe na kukataa tokeni zilizokwisha muda au zisizo halali.
Kubali upitaji unaosababishwa na sampuli
Uangalizi wa mara kwa mara pamoja na kutenganisha hukupa kikomo cha sampuli chenye ustahimilivu unaojulikana. Mteja anaweza kupita kwa takriban muda mmoja wa kuripoti pamoja na muda ambao kidhibiti kinahitaji kuchukua hatua, na vipindi vya wakati mmoja kwenye akaunti moja huzidisha dirisha hilo. Sema hivyo kwenye kiolesura badala ya kutangaza ukata kamili kwenye baiti ya mwisho ambao hauwezi kuutoa.
Kingo gumu la kweli ni tatizo lingine la uhandisi: utekelezaji ndani ya njia ya upelekaji, likiwa limefungwa kwenye akaunti hiyo hiyo katika vipindi. Kusoma vikokotoo kwa haraka zaidi si kitu kimoja, na hakistahimili mteja anayefungua handaki zaidi tu.
Kabla ya usambazaji, endesha kesi za ukubalifu zinazovunja utekelezaji usio wa kina: muunganisho upya unaorudiwa, vifaa viwili kwa wakati mmoja, kuanzishwa upya kwa kidhibiti na lango, tukio la kutenganisha lililopotea, mgeuko katikati ya kipindi, na jaribio la kuunganisha upya kwa tokeni mara moja baada ya ukomo. Kisha amua hali ya kushindwa kwa usumbufu wa uhasibu. Leja ya kudumu inalinda matumizi uliyorekodi; haiwezi kufufua uchunguzi ambao haukufika kamwe, na mteja anastahili kujua yuko katika hali ipi kati ya hizo mbili.