Jaribio la failover: mtiririko wa TCP ulioanzishwa unaendelea kuishi?
Njia ya kutoka ya akiba inaweza kupokea kila muunganisho mpya na bado kuvunja uhamishaji unaoendelea. Jaribu matokeo yote mawili, na uweke kisa cha kurudi kwenye mpango.
Matokeo mawili yamefichwa katika sentensi kwamba akiba inafanya kazi. Ombi jipya linafanikiwa, na hiyo ni urejeshaji. Uhamishaji unaoendelea unaendelea, na hiyo ni mwendelezo. Haya ni ahadi tofauti, na miundo mingi ya failover hutoa ya kwanza huku ya pili ikiisha kwa muda kimya kimya. Amua unahitaji ipi kabla ya kuchagua utaratibu, na uandike jaribio ili liweze kuzitofautisha.
Matokeo mawili yanayofanana na mafanikio moja
Fikiria mteja aliye 10.90.0.42 na muunganisho kwa 198.51.100.20:443. Njia ya kutoka ya msingi inautafsiri kuwa anwani moja ya umma na bandari, na njia ya akiba inautafsiri kuwa nyingine. Anwani ya ndani ya mteja haibadiliki kamwe, ndiyo sababu watu wanatarajia muunganisho utaendelea kuishi.
Seva haioni anwani ya ndani. Inaona kituo cha mwisho kilichotafsiriwa, na kituo hicho ni tofauti baada ya kubadilisha.
Kwa hiyo mtiririko wa zamani unaisha kwa muda wakati muunganisho mpya kwa huduma hiyo hiyo unafanya kazi mara moja. Maonjo yote mawili ni kweli kwa wakati mmoja.
Seva inaona nini wakati njia ya kutoka inabadilika
Muunganisho wa TCP unatambulika kwa sehemu zake nne, na kubadilisha anwani au bandari ya chanzo huunda muunganisho tofauti kwa mtazamo wa mwenyeji anayepokea. Pakiti zinazofika kutoka chanzo kipya kwenye muunganisho ambao seva haijui hutupwa au hujibiwa kwa kuweka upya. Hakuna kitu katika anwani ya mteja wa VPN kinachohifadhi uhusiano katika mabadiliko hayo.
Failover yenye hali ipo kwa ajili ya kuepuka hili, na inafanya kazi kwa kubadilishana hali ya utafsiri na hali ya muunganisho kati ya vifaa vya kusambaza. Hiyo ni sifa ya jozi, si ya handaki, na inapaswa kubuniwa na kujaribiwa badala ya kudhaniwa.
Angalia kama jozi kweli inahifadhi hali kabla ya kuahidi mtu yeyote mwendelezo. Amri zilizo hapa chini zinaonyesha hali ya sasa pande zote mbili.
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 10Kwa nini anwani hiyo hiyo ya umma haitoshi
Kuhifadhi anwani moja ya umma kwenye njia zote mbili ni mwanzo mzuri, kwa sababu seva huona kituo kile kile cha chanzo. Hata hivyo peke yake haitoshi. Kifaa cha kusambaza bado kinahitaji hali ya utafsiri, hali ya ukuta wa moto na njia ya kurudi inayoweza kutumika, na hivyo lazima viwepo kwenye kifaa kinachobeba trafiki baada ya kubadilisha.
RFC 3022 inaeleza utafsiri wa anwani na inachukulia ubadilishanaji wa hali kati ya vifaa vinavyotafsiri kama sehemu ya muundo wa akiba. Anwani inayoelea au wasifu ulionakiliwa huhamisha usanidi bila kuhamisha hali.
Ndiyo sababu jaribio linalofanya ping tu kupitia akiba linathibitisha kidogo sana. Ping haina hali ya muunganisho ya kupoteza.
Amua jinsi hitaji lilivyo imara
Ikiwa watumiaji wanaweza kuunganisha tena baada ya hitilafu, muundo ni muundo wa urejeshaji na jaribio la kukubalika ni ombi jipya. Ikiwa uhamishaji wa faili lazima uendelee kuishi, muundo unahitaji ulandanishi wa hali na jaribio la uangalifu zaidi. Ikiwa kikao cha mbali lazima kiendelee kuishi, hitaji ni imara zaidi na linaweza kuhitaji utaratibu wa ngazi ya programu badala ya ngazi ya mtandao.
Andika hitaji kama sentensi yenye matokeo yanayopimika, kwa mfano upakiaji unakamilika bila kuanza upya au mwendeshaji anaunganisha tena ndani ya dakika moja. Kisha chagua utaratibu wa bei ya chini unaokidhi, na mara nyingi huo ni muundo wa urejeshaji.
Sema waziwazi kinachotokea wakati njia ya msingi inarudi, kwa sababu kurudi kiotomatiki kunaweza kukatiza muunganisho ambao ulikuwa umerejea kwenye akiba. Kisa hicho ni cha mpango wa jaribio, si cha tanbihi.
Angalia mtiririko wa zamani na ombi jipya
Anzisha uhamishaji mrefu usio na madhara kupitia njia ya msingi, kisha ombi jipya tofauti kwa huduma hiyo hiyo. Rekodi muktadha wa programu, anwani ya kutoka iliyoonekana na muda. Vunja njia ya msingi kwa njia iliyoidhinishwa na uendelee kuangalia uhamishaji wa awali unapotuma ombi jipya kupitia akiba.
Ripoti thamani tatu: kama mtiririko wa zamani uliendelea, uliwekwa upya au uliisha kwa muda; ni lini operesheni mpya ilifanya kazi mara ya kwanza; na kama kurudi kulikatiza kitu. Mistari hiyo mitatu ndiyo rekodi ya kukubalika.
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 20Ikiwa mzigo wa kazi unaandika data, usirudie operesheni isiyo na uhakika kwa upofu baada ya muda kuisha. Uandishi unaweza kuwa umefika kabla jibu halijapotea. Uliza programu matokeo, au jaribu tena tu pale operesheni ni idempotent. Kisha andika tamko la kukubalika katika sehemu tatu: operesheni mpya zinarejea chini ya sera ya kutoka, mitiririko iliyopo ina tabia ya kukatiza iliyoandikwa, na programu inaendelea kwa usalama. Tamko hilo linaweza kujaribiwa, na ni mkweli kuhusu kile muundo haujaahidi.