“Anfon y lawrlwythiadau mawr o amgylch y VPN a chadw'r ymatebion bach arno” swnio fel polisi llwybro, ac nid yw. Mae llwybrydd yn penderfynu â gwybodaeth sydd ar gael ar y foment honno: cyfeiriadau, porthladdoedd, protocol, marciau firewall, llif a adnabyddir. Nid yw maint terfynol ymateb yn y set honno, oherwydd nid yw wedi cyrraedd eto, a phan fyddai'r llwybrydd yn gallu mesur y beitiau mae eisoes yn eu cario. Os ydych am lywio yn ôl tasg, rhaid i'r penderfyniad symud i bwynt sy'n adnabod y dasg, a'r rhestr wirio isod yw sut i ddarganfod a oes gan eich dyluniad y pwynt hwnnw.

Pam na all llwybrydd fesur ymateb

Ar y foment y mae pecyn angen llwybr, mae'r llwybrydd wedi gweld dim mwy na'r ychydig becynnau cyntaf o lif. Gall ddweud pwy sy'n siarad â phwy, dros ba brotocol, gyda pha farc, a faint o feitiau sydd wedi mynd heibio hyd yn hyn. Mae'r beitiau hyd yma yn disgrifio'r gorffennol. Mae maint yr ymateb yn briodwedd ymateb nad yw wedi ei gynhyrchu eto, ac mewn ymatebion pytiog neu ffrydio efallai na fydd byth yn hysbys ymlaen llaw.

Mae hyd yn oed metadata'r protocol ei hun yn wannach nag y mae'n ymddangos. Mae HTTP yn caniatáu ymatebion nad yw eu hyd yn cael ei gyhoeddi cyn y corff, a gall un weithred defnyddiwr gynhyrchu llawer o geisiadau nad yw eu cost gyfun yn debyg i unrhyw un gwerth pennawd. Mae trin pennawd fel maint tasg yn gamgymeriad modelu cyn iddo fod yn gamgymeriad llwybro.

Gwiriad 1: a oes pwynt penderfynu a all ddewis llwybr?

Enwch y gydran a wnaiff y dewis, ac yna enwch yr hyn y mae'n ei wybod ar y foment y mae'n dewis. Mae diweddarwr sy'n nôl o set ddogfennol o westeiwyr yn gwybod ei bwrpas cyn i'r trosglwyddiad ddechrau. Mae gwasanaeth lawrlwytho sy'n ymgynghori â metadata ac yna'n agor y cais yn gwybod y dasg cyn bod y cysylltiad. Gall dirprwy gydweithredol gymhwyso polisi ar lefel cais neu storio'r ymateb yn y cache heb esgus bod yn llwybrydd.

Os mai “y giât” yw'r ateb, mae'r rhestr wirio eisoes wedi methu. Gall giât ddosbarthu llifau hysbys yn ôl cyrchfan, marc neu segment cleient a'u hanfon ar lwybr diffiniedig o'r pecyn cyntaf, sy'n aml yn ddigon ar gyfer diweddarwr cymeradwy ac yn byth yn ddigon ar gyfer maint ymateb anhysbys.

Gwiriad 2: beth mae'r metadata yn ei ddweud wrthych mewn gwirionedd?

Mae llywio sy'n ymwybodol o'r rhaglen ond cystal â'r meysydd y mae'n eu darllen. Mae rheolau hyd ymateb semanteg HTTP yn caniatáu achosion lle nad yw'r hyd ar gael ar y dechrau, ac mae amgodio cynnwys yn gwneud cyfrif y beitiau a drosglwyddir yn wahanol i faint y gynrychiolaeth beth bynnag. Felly bydd polisi sy'n newid llwybr pan fydd pennawd yn croesi trothwy yn ymddwyn yn anghyson, a gan amlaf ar yr union drosglwyddiadau mawr y bwriadwyd eu dal.

Yr hyn y gall metadata'r rhaglen ei gefnogi yw penderfyniad am dasg: mae'r llif gwaith hwn yn gydamseriad swmp, mae hwn yn rhyngweithiol, mae hwn yn ddiweddariad meddalwedd o darddiad hysbys. Mae hynny'n bolisi wedi'i ysgrifennu yn nhermau bwriad, ac mae'n ddigon sefydlog i'w brofi. Nid yw “bydd yr ymateb hwn yn fwy na deugain megabeit” yn bolisi o'r math hwnnw.

Gwiriad 3: a yw'r llif yn bodoli eisoes?

Gall llwybro newid i lif heb newid hunaniaeth y cysylltiad, ac mae hynny'n wahaniaeth sy'n werth ei gadw'n syth. Mae cysylltiad TCP yn cael ei adnabod gan gyfeiriadau a phorthladdoedd ei bennau, a gall y pecynnau fynd ar lwybr gwahanol os yw'r tabl llwybro yn newid oddi tanynt. Yr hyn na all newid yn anweledig yw cyflwr cyfieithu cyfeiriadau rhwydwaith: mae symud traffig i allanfa wahanol fel arfer yn newid y tuple ffynhonnell cyhoeddus, a bydd y pen pell yn gweld cymar gwahanol heb gyflwr cyfatebol.

conntrack -L -p tcp --dport 443 | head -5
ip route get 203.0.113.10
ss -tn state established dst 203.0.113.10

Felly'r rheol ymarferol yw bod symud yng nghanol cysylltiad o un allanfa i un arall yn berthynas newydd, nid yn ymfudo. Os yw'r dyluniad yn gofyn bod yr un cysylltiad yn parhau, roedd yn rhaid gwneud y penderfyniad cyn yr SYN cyntaf, ac ni all unrhyw reol pecyn a ychwanegir yn ddiweddarach ei hail-adfeilio'n lân.

Gwiriad 4: ai hydred yw'r gwir ofyniad, nid allanfa?

Mae llawer iawn o geisiadau i “anfon traffig swmp i rywle arall” mewn gwirionedd yn gwynion bod trosglwyddiad mawr yn gwneud gwaith rhyngweithiol yn teimlo'n araf. Mae hynny'n broblem amserlennu, ac mae ganddi ateb amserlennu: mae ciwio teg neu bolisi band eang a gefnogir ar y llwybr presennol yn cadw llif swmp rhag newynu neges sgwrs heb symud y naill na'r llall.

tc qdisc replace dev eth0 root cake bandwidth 100mbit

Mae mynd i'r afael â'r symptom fel hyn yn cadw'r penderfyniad allanfa lle y gosododd y polisi diogelwch ef, ac mae'n wrthdroi mewn un gorchymyn. Mae newid yr allanfa ar gyfer dosbarth cyfan o draffig yn newid polisi â chanlyniadau dilysu, cofnodi a rheolau mynediad, felly ni ddylai fod yr offeryn cyntaf y cyrraedd ato ar gyfer cwyn am hydred.

Os yw'r gofyniad mewn gwirionedd yn allanfa rhyngrwyd wahanol, dywedwch hynny yn y geiriau hynny a'i weithredu ar ffin a gefnogir: cysylltiad newydd o lif gwaith cymeradwy, neu raglen sy'n agor ei chais ei hun trwy allanfa a ddewiswyd. Yna cofnodwch pa dasgau sy'n defnyddio pa allanfa, fel nad oes rhaid i'r person nesaf ei gasglu o dabl llwybro.

Cadwch y rhestr wirio yn y cofnod newid: y pwynt penderfynu, y maes neu'r dasg sy'n ei yrru, a yw'r llif yn bodoli eisoes, ac a oedd y symptom a fesurwyd yn hydred neu'n allanfa. Pedair cwestiwn, ac mae polisi sy'n ateb pob un o'r pedair yn un y gallwch ei weithredu yn hytrach na'i amddiffyn.

Erthyglau cysylltiedig