Lle mae lwfans data misol yn perthyn fesul cyfrif OpenVPN
Nid yw lwfans sy’n ailosod ar bob ailgysylltiad yn derfyn. Dilynwch ddefnydd fesul cyfrif, codwch bob delta beit unwaith, a gwnewch i ddiffyg gwario rwystro mynediad.
Nid yw lwfans sy’n ailosod pryd bynnag y bydd y twnnel yn ailgysylltu yn derfyn, a dyna’n union a gewch pan gaiff cyfrifydd beit ei bolltio ar weinydd VPN heb le i roi cyflwr parhaol. Mae’r cyfrifydd yn perthyn i sesiwn; mae’r lwfans yn perthyn i berson neu i gontract dyfais. Daw holl anhawster y nodwedd o’r camgymhariad hwnnw, felly mae’r gwiriadau isod yn ymwneud â lle mae cyflwr yn byw a pha haen sy’n cael penderfynu.
Pinwch y lwfans i gyfrif, nid i dwnnel
Dechreuwch drwy enwi gwrthrych y cwota. Gall un person fod â thri thystysgrif dyfais, ac ni ddylai’r un ohonynt gael cyllideb fisol annibynnol dim ond am eu bod yn dilysu ar wahân. Cyflwynydd cyfrif sefydlog sy’n goroesi ailgysylltiadau, cyfeiriadau twnnel newydd a symud i ail borth yw’r unig angor y gall lwfans ei ddefnyddio. Mae enw cyffredin tystysgrif yn gweithio fel yr allwedd honno dim ond pan fo eich polisi cyhoeddi’n gwarantu un cyfrif fesul enw.
Nid cyfeiriad twnnel a neilltuwyd yw’r ateb byth. Mae cyfeiriadau’n cael eu hailgylchu, mae pyllau’n cael eu rhannu, a gall yr un cyfrif ymddangos ddwywaith ar ddau borth yn yr un munud. Os yw’r llyfr yn dibynnu ar gyfeiriad, mae digysylltu ac ailgysylltu’n ddigon i ail-lenwi’r tanc.
Cofnodwch ddigon fesul sesiwn i wneud y rhifyddeg yn archwiladwy: y cyfrif, y cyfnod bilio, enghraifft y porth, hunaniaeth y sesiwn, y cyfrifwyr a welwyd ddiwethaf a’r cyfanswm a gymeradwywyd. Cynhwyswch genhedlaeth cychwyn daemon yn hunaniaeth y sesiwn, oherwydd mae gweinydd sy’n cael ei ailgychwyn yn ailddefnyddio IDau cleientiaid, a byddai cyfatebiaeth naïf yn etifeddu’r llinell sylfaen flaenorol.
Sefydlwch yr uned, y cyfeiriad a’r ffin ailosod
Rhaid setlo pedair diffiniad yn ysgrifenedig cyn i unrhyw gasglu ddechrau. A yw’r lwfans yn cyfrif beit y mae’r cleient yn eu hanfon, beit y mae’n eu derbyn, neu swm y ddau? A yw gigabeit yn 10^9 beit neu’n 2^30? Ar ba awr leol ac ym mha gylchfa amser mae’r cyfnod yn troi? A beth yn union mae’r cyfrifydd yn ei fesur, o gofio bod gorbenion twnnel ac ail-drosglwyddiadau wedi’u cynnwys tra nad yw maint ffeil yr ap a bil darparwr yn gymwys?
Nid oes yr un o’r dewisiadau hynny’n anghywir, ond rhaid i’r gweithrediad a’r rhif y mae’r cwsmer yn ei weld gytuno. Mae dwy hanner yr un system yn anghytuno am GiB, neu am dro sy’n digwydd am hanner nos UTC yn lle amser lleol, yn cynhyrchu’n union y math hwnnw o docyn sy’n erydu ymddiriedaeth yn y cwota cyfan.
Trowch gyfansymiau beit yn un delta a godir
Mae’r rhyngwyneb rheoli yn adrodd llinellau BYTECOUNT_CLI cyfnodol sy’n cario ID cleient ynghyd â chyfansymiau beit cronnus ym mhob cyfeiriad, ac mae’r gorchymyn bytecount yn gosod pa mor aml y byddant yn cyrraedd. O safbwynt y gweinydd, mae’r ffigur a dderbyniwyd yn cyfrif y beit a anfonodd y cleient ac mae’r ffigur a anfonwyd yn cyfrif y beit a draddodwyd iddo. Gosodwch yr ysbaid i rywbeth y gall y llyfr ei amsugno; mae ysbaid fer iawn yn prynu manwl gywirdeb nad ydych yn ei gael mewn gwirionedd.
Mae un cyfyngiad yn llunio’r dyluniad cyfan: mae’r soced rheoli’n derbyn un cysylltiad rheoli yn unig. Ni all allforiwr monitro, GUI a’ch rheolydd agor eu un eu hunain. Penderfynwch pa broses sy’n berchen ar y sianel a gadewch i’r lleill ddarllen cyflwr ohoni, oherwydd mae’r rhyngwyneb hwn yn rhoi gweithredoedd gweinyddol ac ni ddylid ei amlygu y tu allan i’r gwesteiwr beth bynnag.
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
Cymeradwywch y llinellau sylfaen newydd a’r cynnydd defnydd gyda’i gilydd, fel nad yw ailchwarae sampl yn codi dim yn lle codi ddwywaith. Mae cyfrifydd sy’n symud yn ôl yn arwydd, nid yn ddyled: mae’n golygu bod y sesiwn wedi’i disodli neu fod y daemon wedi ailgychwyn, a’r ymateb cywir yw cysoni hunaniaeth y sesiwn yn hytrach na chredydu swm negyddol.
Mae llwybr datgysylltu angen yr un gofal. Os yw digwyddiad terfynol yn cario cyfansymiau diwedd sesiwn, codwch y gwahaniaeth o’r sampl cymeradwy olaf yn unig. Mae ychwanegu’r cyfanswm llawn ar ôl i samplu cyfnodol gael ei godi eisoes yw’r cyfrif dwbl mwyaf cyffredin mewn systemau cwota cartref. Mae sesiynau sy’n rhychwantu ffin cyfnod hefyd angen rheol, gan nad yw un cyfanswm terfynol yn cario unrhyw wybodaeth am bryd y croesodd y beit hanner nos.
Gadewch i ddiffyg gwario wrthod mynediad, nid lladd y twnnel yn unig
Pan fydd cyfrif yn cyrraedd ei derfyn, rhaid i ddau beth ddigwydd: daw sesiynau presennol i ben, a gwrthodir rhai newydd. Mae’r protocol rheoli’n darparu client-kill yn ôl ID cleient, sy’n trin yr hanner cyntaf cyn belled ag y byddwch yn rhifo pob sesiwn fyw ar gyfer y cyfrif yn lle lladd yr un cyfeiriad y digwyddodd i chi sylwi arno.
Yr ail hanner yw lle mae dyluniadau cwota yn methu. Mae lladd yn unig yn ras yn erbyn dolen ailgysylltu’r cleient, a ddaw’n ôl yn fodlon eiliadau’n ddiweddarach. Rhaid i fynediad ymgynghori â’r llyfr a rennir, ac mewn defnyddiad aml-borth ni all y gwiriad hwnnw fod yn ffeil fesul peiriant. Rhaid i bob enghraifft sy’n gallu derbyn mewngofnodiad weld yr un cyflwr diffyg.
Mae ailgysylltiadau sy’n seiliedig ar docyn yn haeddu eu prawf eu hunain. Gall OpenVPN 2.6 ddilysu tocyn sesiwn yn fewnol gydag auth-gen-token, gan hepgor yr alwad dilysu allanol yr oedd eich rheolydd yn ei defnyddio i orfodi’r cap. Felly mae tocyn sy’n dal yn ddilys yn profi hunaniaeth, nid lwfans sy’n weddill, a rhaid i bob enghraifft cleient newydd ymgynghori â’r llyfr o hyd. Os byddwch yn galluogi management-client-auth yn lle hynny, y rheolydd sy’n dod yn ddilysydd ac yn etifeddu’r rhwymedigaeth i ddadansoddi cyflwr sesiwn a gwrthod tocynnau wedi dod i ben neu annilys ar ei ben ei hun.
Derbyniwch y gormodedd y mae samplu’n ei greu
Mae arsylwi cyfnodol ynghyd â datgysylltu yn rhoi lwfans samplu i chi gyda goddefgarwch hysbys. Gall cleient fynd dros ben tua un ysbaid adrodd ynghyd â’r amser y mae’r rheolydd yn ei gymryd i weithredu, ac mae sesiynau cydredol ar un cyfrif yn lluosi’r ffenestr honno. Dywedwch hynny yn y rhyngwyneb yn lle hysbysebu toriad union ar y beit olaf na allwch ei ddarparu.
Mae nenfwd galed go iawn yn broblem beirianneg wahanol: gorfodi o fewn y llwybr anfon, wedi’i rwymo i’r un cyfrif ar draws sesiynau. Nid yw darllen cyfrifwyr yn gyflymach yr un peth, ac nid yw’n goroesi cleient sy’n syml yn agor mwy o dwneli.
Cyn lansio, rhedwch yr achosion derbyn sy’n torri gweithrediadau naïf: ailgysylltiadau mynych, dwy ddyfais ar unwaith, ailgychwyn y rheolydd a’r porth, digwyddiad datgysylltu coll, tro yng nghanol sesiwn, ac ymgais i ailgysylltu â thocyn yn syth ar ôl diffyg. Yna penderfynwch y modd methu ar gyfer ymyriadau cyfrifyddu. Mae llyfr parhaol yn amddiffyn y defnydd a gofnodwyd gennych; ni all atgyfodi arsylwadau na chyrhaeddodd erioed, ac mae’r cwsmer yn haeddu gwybod ym mha un o’r ddau sefyllfa y mae.