Prawf kill switch: mesurwch y bwlch, nid dim ond yr ailgysylltu
Mae ailgysylltu cyflym yn profi bod y cleient yn gyflym. Cofnodwch beth a adawodd y peiriant yn ystod y bwlch, gyda’r sbardun a ddefnyddiwyd gennych, neu dim ond hanner y peth a fesurwyd gan y prawf.
Mae ailgysylltu sy’n gorffen mewn eiliad yn dweud bod y cleient yn gyflym. Nid yw’n dweud a ddihangodd unrhyw beth tra oedd y twnnel i lawr. Mae ailgysylltu sy’n cymryd munud yn dweud bod y cleient yn araf, ac yn dal i beidio â dweud a ganiatawyd traffig uniongyrchol yn y bwlch. Dau fesuriad yw’r rhain, ac nid yw prawf kill switch sy’n adrodd y cyntaf yn unig wedi profi’r switsh.
Dau arsylwad, dau farn ar wahân
Mae’r cwestiwn argaeledd yn syml: pryd y daeth y twnnel yn ddefnyddiadwy eto, ac a oedd angen cysylltiad newydd ar y rhaglen warchodedig i gyrraedd yno. Mae’r cwestiwn gorfodi yn wahanol: pa becynnau a adawodd y peiriant rhwng y funud y syrthiodd y gwarcheidwad a’r funud y dychwelodd.
Atebwch y rhain gyda chofnodion ar wahân. Mae un llinell yn dweud bod y bwlch wedi para nifer penodol o eiliadau. Mae llinell arall yn dweud a lwyddodd cais diamddiffyn yn ystod y bwlch hwnnw. Mae eu cyfuno’n un pas neu fethiant yn cuddio’r achos sydd bwysicaf: ailgysylltu cyflym gyda gollyngiad.
Adeiladwch brofwr y gallwch ei amseru
Defnyddiwch gais sy’n ddiniwed, rhad ac annibynnol ar sianel reoli’r twnnel ei hun. Mae’r ddolen isod yn argraffu stamp amser, statws HTTP a’r amser a dreuliodd unwaith yr eiliad, ac mae’n methu’n uchel yn lle hongian:
while true; do
printf '%s ' "$(date +%H:%M:%S)"
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' --max-time 2 https://example.com || echo "curl-exit-$?"
sleep 1
done
Darllenwch godau gadael curl, nid y statws yn unig. Mae 28 yn golygu bod y cais wedi rhedeg allan o amser, sef sut mae llwybr wedi’i rwystro yn edrych. Mae 6 yn golygu bod datrys enwau wedi methu, sy’n ganfyddiad gwahanol ac yn aml y mwyaf diddorol. Mae 200 ag ychydig o amser wedi mynd yn ystod y bwlch yn golygu bod traffig wedi cael mynd allan.
Ysgrifennwch yr allbwn i ffeil a’i chadw. Nid yw hanes y terfynell yn dystiolaeth, a’r rhan ddiddorol yw tair llinell yn y canol fel arfer.
Achosi methiant go iawn, nid un taclus
Mae datgysylltu o fwydlen y cleient ei hun yn profi’r llwybr cydweithredol, lle mae gan y cleient amser i osod ei reolau rhwystro. Lladdwch y broses yn lle hynny, neu ollwng y cyswllt sylfaenol, ac rydych yn profi’r llwybr y mae methiant gwirioneddol yn ei gymryd.
Mae pob sbardun yn ymarfer llwybr cod gwahanol. Gall methiant ar ochr y gweinydd, colled cyswllt lleol a chwymp y cleient adael gwahanol gyflwr ar ôl, ac mae un ohonynt yn debygol o fod yr achos y byddwch yn dod ar ei draws yn y pen draw. Rheswch y profwr ar draws o leiaf dau sbardun a labelwch y canlyniadau yn ôl sbardun.
Darllenwch y log i weld sut mae traffig a ganiateir yn edrych
Mae 200 neu fethiant cysylltiad cyflym yn ystod y bwlch yn ollyngiad, i ba gyfeiriad bynnag y mae’n pwyntio. Amseroedd allan trwy gydol y bwlch yw siâp disgwyliedig polisi rhwystro. Mae datrys enwau sy’n llwyddo tra bod cysylltiadau’n methu yn awgrymu bod y datryswr yn dal yn gyrraeddadwy, sef ollyngiad o fath arall.
Mae angen gofal ar socedi presennol. Gall rhaglen barhau i ddefnyddio cysylltiad a agorodd cyn y datgysylltu, felly efallai na fydd traffig sy’n edrych yn fyw yn profi bod llwybr newydd wedi’i ganiatáu. Mae’r rhestr socedi’n dangos a yw cysylltiad yn rhagflaenu’r digwyddiad:
ss -tunp | grep -E 'ESTAB|SYN-SENT' ip route get 198.51.100.7 resolvectl status | sed -n '1,20p'
Cymharwch amser cychwyn y soced â stamp amser y datgysylltu. Mae cysylltiad yn hŷn na’r methiant yn dystiolaeth o ailddefnyddio soced, nid o ollyngiad, ac mae ei adrodd fel methiant yn anfon y person nesaf i hela byg nad yw’n bodoli.
Cofnodwch y canlyniad ar ffurf sy’n goroesi diweddariad
Ysgrifennwch y sbardun, y bwlch mewn eiliadau, a lwyddodd unrhyw gais heb ei rwystro, a lwyddodd datrys enwau, a fersiynau’r cleient a’r system weithredu. Gellir cymharu’r set hon o bump ffaith ar draws rhyddhadau, rhywbeth na all paragraff o ryddiaith ei wneud.
Ailredegwch yr un prawf ar ôl diweddariad cleient neu newid proffil, oherwydd manylyn gweithredu yw ymddygiad rhwystro ac mae’n symud. Pwrpas y cofnod yw sylwi ar y symudiad cyn iddo ddod yn ddigwyddiad, nid ardystio’r cleient unwaith.