Kwota li tiġi rrisettjata kull darba li t-tunnel jerġa' jikkonnettja mhix limitu, u dan huwa eżattament dak li tikseb meta counter tal-bytes jiġi mmuntat fuq server VPN mingħajr post fejn tinżamm stat dejjiema. Il-counter jappartjeni għal sessjoni; il-kwota tappartjeni għal persuna jew għal kuntratt ta' apparat. Id-diffikultà kollha tal-karatteristika ġejja minn dan in-nuqqas ta' qbil, għalhekk il-verifiki hawn taħt jittrattaw fejn jgħix l-istat u liema saff huwa permess jiddeċiedi.

Irrifissa l-kwota ma' kont, mhux ma' tunnel

Ibda billi ssemmi s-suġġett tal-kwota. Persuna waħda tista' żżomm tliet ċertifikati tal-apparat, u ħadd minnhom m'għandu jieħu baġit ta' kull xahar indipendenti biss għax jawtentikaw ruħhom separatament. Identifikatur tal-kont stabbli li jiflaħ għal konnessjonijiet mill-ġdid, indirizzi ġodda tat-tunnel u ċaqliq għal gateway ieħor huwa l-unika ankra li kwota tista' tuża. L-isem komuni ta' ċertifikat jaħdem bħala dik iċ-ċavetta biss meta l-politika tal-ħruġ tiegħek tiggarantixxi kont wieħed għal kull isem.

Indirizz tat-tunnel assenjat qatt mhuwa t-tweġiba. L-indirizzi jiġu riċiklati, il-pools jiġu kondiviżi, u l-istess kont jista' jidher darbtejn fuq żewġ gateways fl-istess minuta. Jekk il-ktieb jissejjes fuq indirizz, id-diskonnessjoni u l-konnessjoni mill-ġdid huma biżżejjed biex it-tank jerġa' jimtela.

Irreġistra biżżejjed għal kull sessjoni biex l-aritmetika tkun verifikabbli: il-kont, il-perjodu tal-fatturazzjoni, l-istanza tal-gateway, l-identità tas-sessjoni, l-aħħar counters osservati u t-total impenjat. Inkludi ġenerazzjoni tal-bidu tad-daemon fl-identità tas-sessjoni, għax server li jerġa' jinbeda jerġa' juża l-ID tal-klijenti u tqabbil naive jiret il-linja bażi preċedenti.

Iffissa l-unità, id-direzzjoni u l-limitu tar-risettjar

Erba' definizzjonijiet iridu jiġu stabbiliti bil-miktub qabel ma jibda kwalunkwe ġbir. Il-kwota tgħodd il-bytes li jibgħat il-klijent, dawk li jirċievi, jew is-somma tat-tnejn? Gigabyte huwa 10^9 bytes jew 2^30? F'liema siegħa lokali u f'liema żona tal-ħin idur il-perjodu? U x'inhu eżattament ikejjel il-counter, meta l-overhead tat-tunnel u t-trasmissjonijiet mill-ġdid huma inklużi filwaqt li d-daqs tal-fajl tal-applikazzjoni u l-fattura tal-fornitur mhumiex?

L-ebda waħda minn dawn l-għażliet mhijiex ħażina, iżda l-implimentazzjoni u n-numru li jara l-klijent iridu jaqblu. Żewġ nofsijiet tal-istess sistema li ma jaqblux dwar GiB, jew dwar tidwir li jsir f'nofsillejl UTC minflok ħin lokali, jipproduċu eżattament it-tip ta' ticket li jnaqqar il-fiduċja fil-kwota kollha.

Biddel it-totali tal-bytes f'differenza waħda mitluba

L-interfaċċa tal-amministrazzjoni tirrapporta linji BYTECOUNT_CLI perjodiċi li jġorru ID tal-klijent flimkien ma' totali akkumulati tal-bytes f'kull direzzjoni, u l-kmand bytecount jistabbilixxi kemm-il darba jaslu. Mill-perspettiva tas-server, iċ-ċifra li tirċievi tgħodd il-bytes li bagħat il-klijent u ċ-ċifra li tibgħat tgħodd il-bytes li ngħataw lilu. Issettja l-intervall għal xi ħaġa li l-ktieb jista' jassorbi; intervall qasir ħafna jixtri preċiżjoni li fil-fatt ma tikxibhiex.

Restrizzjoni waħda tifforma d-disinn kollu: is-sokit tal-amministrazzjoni jaċċetta konnessjoni waħda ta' kontroll. Esportatur tal-monitoraġġ, GUI u l-kontrollur tiegħek ma jistgħux kull wieħed jiftaħ tiegħu. Iddeċiedi liema proċess jippossjedi l-kanal u ħalli l-oħrajn jaqraw l-istat minnu, għax din l-interfaċċa tagħti azzjonijiet amministrattivi u xorta waħda m'għandhiex tiġi esposta barra mill-host.

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

Impenja l-linji bażi l-ġodda u ż-żieda fl-użu flimkien, sabiex it-tidwir mill-ġdid ta' kampjun ma jiċċarġjax xejn minflok ma jiċċarġja darbtejn. Counter li jmur lura huwa sinjal, mhux dejn: ifisser li s-sessjoni ġiet sostitwita jew id-daemon reġa' nbda, u t-tweġiba korretta hija li tirkonċilja l-identità tas-sessjoni minflok ma tikkredita ammont negattiv.

It-triq tad-diskonnessjoni teħtieġ l-istess attenzjoni. Jekk avveniment finali jġorr totali tat-tmiem tas-sessjoni, iċċarġja biss id-differenza mill-aħħar kampjun impenjat. Żżid it-total sħiħ wara li l-kampjunar perjodiku jkun diġà ġie ċċarġjat huwa l-aktar għadd doppju komuni fis-sistemi tal-kwota magħmula d-dar. Is-sessjonijiet li jaqsmu limitu tal-perjodu jeħtieġu wkoll regola, għax total finali wieħed ma jġorr ebda informazzjoni dwar meta l-bytes qasmu nofsillejl.

It-tlestija tiċħad id-dħul, mhux biss toqtol it-tunnel

Meta kont jilħaq il-limitu tiegħu, żewġ affarijiet iridu jiġru: is-sessjonijiet eżistenti jispiċċaw, u dawk ġodda jiġu rrifjutati. Il-protokoll tal-amministrazzjoni jipprovdi client-kill bl-ID tal-klijent, li jittratta l-ewwel nofs sakemm telenka kull sessjoni ħajja għall-kont minflok ma toqtol l-uniku indirizz li ċċajt li tinduna bih.

It-tieni nofs huwa fejn id-disinni tal-kwota jfallu. Qtil waħdu huwa tellieqa kontra l-linja tal-konnessjoni mill-ġdid tal-klijent, li se jerġa' lura bil-qalb ftit sekondi wara. Id-dħul irid jikkonsulta l-ktieb kondiviż, u fi tħaddim b'ħafna gateways dik il-verifika ma tistax tkun fajl għal kull magna. Kull istanza li tista' taċċetta login trid tara l-istess stat eżawrit.

Konnessjonijiet mill-ġdid ibbażati fuq token jistħoqqilhom test tagħhom. OpenVPN 2.6 jista' jivvalida token tas-sessjoni internament bl-auth-gen-token, u jaqbeż is-sejħa tal-awtentikazzjoni esterna li l-kontrollur tiegħek kien juża biex jinforza l-limitu. Għalhekk token li għadu validu jipprova l-identità, mhux il-kwota li fadal, u kull istanza ġdida tal-klijent xorta trid tikkonsulta l-ktieb. Jekk minflok tattiva l-management-client-auth, il-kontrollur isir l-awtentikatur u jiret l-obbligu li janalizza hu stess l-istat tas-sessjoni u jirrifjuta tokens skaduti jew mhux validi.

Aċċetta l-qbiż li joħloq il-kampjunar

L-osservazzjoni perjodika flimkien mad-diskonnessjoni tagħtik kwota kampjunata b'tolleranza magħrufa. Klijent jista' jaqbeż b'madwar intervall wieħed ta' rappurtar flimkien maż-żmien li l-kontrollur jeħtieġ biex jaġixxi, u s-sessjonijiet konkorrenti fuq kont wieħed jimmultiplikaw dik it-tieqa. Għidha fl-interfaċċa minflok ma tirreklama qtugħ eżatt fl-aħħar byte li ma tistax tipprovdi.

Saqaf iebes veru huwa problema oħra tal-inġinerija: infurzar ġewwa t-triq tal-ġarr, marbut mal-istess kont madwar is-sessjonijiet. Li taqra l-counters aktar malajr mhuwiex l-istess ħaġa, u ma jiflahx għal klijent li sempliċement jiftaħ aktar tunnels.

Qabel it-tnedija, ħaddem il-każijiet tal-aċċettazzjoni li jiksru implimentazzjonijiet naive: konnessjonijiet mill-ġdid ripetuti, żewġ apparati flimkien, tibdil mill-ġdid tal-kontrollur u tal-gateway, avveniment tad-diskonnessjoni mitluf, tidwir fil-perjodu f'nofs is-sessjoni u tentattiv ta' konnessjoni mill-ġdid b'token eżatt wara t-tlestija. Imbagħad iddeċiedi l-mod tal-falliment għal waqfiet fil-kontabilità. Ktieb dejjiemi jipproteġi l-użu li rreġistrajt; ma jistax iqajjem osservazzjonijiet li qatt ma waslu, u l-klijent jistħoqqlu jkun jaf f'liema mill-żewġ sitwazzjonijiet jinsab.

Artikli relatati