Mae dau ganlyniad yn cuddio y tu mewn i'r frawddeg bod y gefnffordd yn gweithio. Mae cais newydd yn llwyddo, sef adferiad. Mae trosglwyddiad sydd eisoes ar y gweill yn parhau, sef parhad. Addewidion gwahanol yw'r rhain, ac mae'r rhan fwyaf o gynlluniau failover yn cyflawni'r cyntaf tra bod yr ail yn dod i ben yn dawel. Penderfynwch pa un sydd ei angen arnoch cyn dewis mecanwaith, ac ysgrifennwch y prawf fel y gall eu gwahaniaethu.

Dau ganlyniad sy'n edrych fel un llwyddiant

Dychmygwch gleient yn 10.90.0.42 â chysylltiad i 198.51.100.20:443. Mae'r allanfa gynradd yn cyfieithu hynny i un cyfeiriad a phorth cyhoeddus, ac mae'r allanfa wrth gefn yn ei gyfieithu i un arall. Nid yw cyfeiriad mewnol y cleient byth yn newid, a dyna pam mae pobl yn disgwyl i'r cysylltiad oroesi.

Nid yw'r gweinydd yn gweld cyfeiriad mewnol. Mae'n gweld y pwynt terfyn cyfieithiedig, ac mae'r pwynt terfyn hwnnw'n wahanol ar ôl y newid.

Felly mae'r hen lif yn dod i ben tra bod cysylltiad newydd i'r un gwasanaeth yn gweithio ar unwaith. Mae'r ddau arsylwad yn wir ar yr un pryd.

Beth mae'r gweinydd yn ei weld pan fydd yr allanfa'n newid

Adnabyddir cysylltiad TCP gan ei bedwaredd, ac mae newid y cyfeiriad neu'r porth ffynhonnell yn creu cysylltiad gwahanol i'r gwesteiwr sy'n derbyn. Mae pecynnau sy'n cyrraedd o ffynhonnell newydd ar gysylltiad nad yw'r gweinydd yn ei adnabod yn cael eu gollwng neu eu hateb â reset. Nid oes unrhyw beth yng nghyfeiriad y cleient VPN yn cadw'r cysylltiad dros y newid hwnnw.

Mae failover cyflwr yn bodoli'n union i osgoi hyn, ac mae'n gweithio drwy gyfnewid cyflwr cyfieithu a chyflwr cysylltiad rhwng y dyfeisiau anfon. Nodwedd o'r pâr yw hon, nid o'r tiwnel, a rhaid ei chynllunio a'i phrofi yn hytrach na'i chymryd yn ganiataol.

Gwiriwch a yw'r pâr mewn gwirionedd yn cadw cyflwr cyn addo parhad i unrhyw un. Mae'r gorchmynion isod yn dangos y cyflwr presennol ar y ddwy ochr.

conntrack -L -d 198.51.100.20 2>/dev/null | head
ss -tin dst 198.51.100.20
tcpdump -ni any host 198.51.100.20 -c 10

Pam nad yw'r un cyfeiriad cyhoeddus yn ddigon

Mae cadw un cyfeiriad cyhoeddus ar draws y ddau lwybr yn ddechrau da, oherwydd yna mae'r gweinydd yn gweld yr un pwynt terfyn ffynhonnell. Nid yw'n ddigon ynddo'i hun. Mae'r ddyfais anfon yn dal i fod angen cyflwr cyfieithu, cyflwr mur tân a llwybr dychwelyd defnyddiadwy, a rhaid i'r rhain fodoli ar ba bynnag ddyfais sy'n cario'r traffig ar ôl y newid.

Mae RFC 3022 yn disgrifio cyfieithu cyfeiriadau ac yn trin cyfnewid cyflwr rhwng dyfeisiau cyfieithu fel rhan o gynllun wrth gefn. Mae cyfeiriad arnofiol neu broffil copïedig yn symud y ffurfweddiad heb symud y cyflwr.

Dyna pam mae prawf sy'n pingio drwy'r gefnffordd yn unig yn profi cyn lleied. Nid oes gan ping gyflwr cysylltiad i'w golli.

Penderfynwch pa mor gryf yw'r gofyniad

Os gall defnyddwyr ailgysylltu ar ôl methiant, cynllun adferiad yw'r cynllun a'r prawf derbyn yw cais newydd. Os rhaid i drosglwyddiad ffeil oroesi, mae'r cynllun angen cysoni cyflwr a phrawf llawer mwy gofalus. Os rhaid i sesiwn bell oroesi, mae'r gofyniad yn gryfach fyth ac efallai'n gofyn am fecanwaith ar lefel cymhwysiad yn hytrach nag un ar lefel rhwydwaith.

Ysgrifennwch y gofyniad fel brawddeg ag canlyniad mesuradwy, er enghraifft bod y llwythiad yn gorffen heb ailgychwyn neu fod y gweithredwr yn ailgysylltu o fewn munud. Yna dewiswch y mecanwaith rhataf sy'n ei fodloni, ac yn aml y cynllun adferiad yw hwnnw.

Dywedwch yn blaen beth sy'n digwydd pan ddaw'r cynradd yn ôl, oherwydd gall dychweliad awtomatig dorri cysylltiad oedd newydd wella ar y gefnffordd. Mae'r achos hwnnw'n perthyn i'r cynllun prawf, nid i droednodyn.

Gwiriwch yr hen lif a'r cais newydd

Dechreuwch drosglwyddiad hir diniwed drwy'r cynradd, yna cais newydd ar wahân i'r un gwasanaeth. Cofnodwch gyd-destun y cymhwysiad, y cyfeiriad allan a arsylwyd a'r amser. Torrwch y cynradd mewn ffordd gymeradwy a pharhewch i wylio'r trosglwyddiad gwreiddiol wrth anfon y cais newydd drwy'r gefnffordd.

Rhowch wybod am dri gwerth: a barhaodd yr hen lif, ai ailosodwyd ef neu a ddaeth i ben; pryd y gweithiodd y llawdriniaeth newydd gyntaf; ac a dorrodd y dychweliad unrhyw beth. Y tair llinell hynny yw'r cofnod derbyn.

ss -tin dst 198.51.100.20
curl -sS -o /dev/null -w '%{http_code} %{time_total}\n' https://198.51.100.20/
tcpdump -ni any port 443 -c 20

Os yw'r llwyth gwaith yn ysgrifennu data, peidiwch ag ailadrodd llawdriniaeth ansicr yn ddall ar ôl terfyn amser. Efallai bod yr ysgrif wedi cyrraedd cyn i'r ateb fynd ar goll. Gofynnwch i'r cymhwysiad am y canlyniad, neu ailgynnig dim ond lle mae'r llawdriniaeth yn idempotent. Yna ysgrifennwch y datganiad derbyn mewn tair rhan: mae llawdriniaethau newydd yn adfer o dan y polisi allanfa, mae gan lifau presennol yr ymddygiad torri a ddogfennwyd, ac mae'r cymhwysiad yn ailddechrau'n ddiogel. Mae'r datganiad hwnnw'n brofadwy, ac mae'n onest am yr hyn nad yw'r cynllun yn ei addo.

Erthyglau cysylltiedig