Failover-test: oerlibbet in fêstige TCP-stream?
In reserve-útgong kin elke nije ferbining akseptearje en dochs de oerdracht dy't al rint ferbrekke. Test beide resultaten en hâld it gefal fan weromsette yn it plan.
Twa útkomsten ferskûlje har yn 'e sin dat de reserve wurket. In nij fersyk slagget, dat is werstel. In oerdracht dy't al oan 'e gong is, giet troch, dat is kontinuïteit. Dat binne ferskillende beloften, en de measte failover-ûntwerpen leverje de earste wylst de twadde stil útrint. Bepale hokker jo nedich hawwe foardat jo in meganisme kieze, en skriuw de test sa dat er se útinoar hâlde kin.
Twa resultaten dy't op ien súkses lykje
Tink oan in klant op 10.90.0.42 mei in ferbining nei 198.51.100.20:443. De primêre útgong ferbout dat nei ien iepenbier adres en poarte, en de reserve-útgong nei in oare. It ynderlike adres fan 'e klant feroaret nea, en dêrom ferwachtsje minsken dat de ferbining oerlibbet.
De tsjinner sjocht gjin ynderlik adres. Hy sjocht it ferboude einpunt, en dat einpunt is nei de omskeakeling oars.
Sa rint de âlde stream út wylst in nije ferbining nei deselde tsjinst daliks wurket. Beide waarnimmings binne tagelyk wier.
Wat de tsjinner sjocht as de útgong feroaret
In TCP-ferbining wurdt identifisearre troch syn fjouwerling, en it feroarjen fan it boarne-adres of de poarte makket foar de ûntfangende host in oare ferbining. Pakketten dy't fan in nije boarne komme op in ferbining dy't de tsjinner net ken, wurde weilitten of mei in reset beantwurde. Neat yn it adres fan 'e VPN-klant bewarret de keppeling troch dy feroaring.
Failover mei steat bestiet krekt om dat te foarkommen, en it wurket troch ferbout- en ferbiningssteat út te wikseljen tusken de troerstjoerapparaten. Dat is in eigenskip fan it pear, net fan 'e tunnel, en it moat ûntwurpen en test wurde ynstee fan oannommen.
Kontrolearje oft it pear wier steat hâldt foardat jo immen kontinuïteit tasizze. De opdrachten hjirûnder litte de hjoeddeiske steat oan beide kanten sjen.
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 10Wêrom itselde iepenbiere adres net genôch is
Ien iepenbier adres oer beide paden hâlde is in goed begjin, want dan sjocht de tsjinner itselde boarne-einpunt. Op himsels is it net genôch. It troerstjoerapparaat hat noch de ferboutsteat, de brânmuersteat en in brûkber weromwei nedich, en dy moatte bestean op it apparaat dat it ferkear nei de omskeakeling draacht.
RFC 3022 beskriuwt adresferbouting en behannelt steatwikseling tusken ferbouwende apparaten as part fan in reserve-ûntwerp. In driuwend adres of in kopy profile ferpleatst de konfiguraasje sûnder de steat te ferpleatsen.
Dêrom bewiist in test dy't allinnich troch de reserve pinget hiel lyts. Ping hat gjin ferbiningssteat om te ferliezen.
Bepale hoe sterk de eask is
As brûkers nei in steuring wer ferbine kinne, is it ûntwerp in werstelûntwerp en is de akseptaasjetest in nij fersyk. As in bestânoerdracht oerlibje moat, hat it ûntwerp steatsynchronisaasje en in folle soarchfâldiger test nedich. As in ôfstâns-sesje oerlibje moat, is de eask wer sterker en kin it in meganisme op applikaasjenivo nedich wêze ynstee fan op netwurkniivo.
Skriuw de eask as in sin mei in mjitber resultaat, bygelyks de upload einiget sûnder opnij te starten of de operator ferbynt binnen in minút. Kies dan it goedkeapste meganisme dat dêrfoar soarget, en dat is faak it werstelûntwerp.
Sis eksplisyt wat der bart as de primêre weromkomt, want in automatyske weromset kin in ferbining ferbrekke dy't krekt op 'e reserve wersteld wie. Dat gefal heart yn it testplan, net yn in fuotnoat.
Kontrolearje de âlde stream en it nije fersyk
Start in ûnskealike langduorjende oerdracht troch de primêre, dan in apart nij fersyk nei deselde tsjinst. Skriuw de applikaasjekontekst, it waarnommen útgongsadres en de tiid op. Brek de primêre op in goedkarde wize en bliuw de oarspronklike oerdracht besjen wylst jo it nije fersyk troch de reserve stjoere.
Rapportearje trije wearden: oft de âlde stream trochgie, weromset waard of útrûn; wannear't de nije operaasje foar it earst wurke; en oft de weromset eat ferbruts. Dy trije rigels binne it akseptaasjerekord.
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 20As de wurklast data skriuwt, werhelje dan nei in timeout net blind in ûnwis operaasje. De skriuwing kin oankommen wêze foardat it antwurd ferdwûn. Freegje de applikaasje om it resultaat, of besykje it allinnich opnij wêr't de operaasje idempotint is. Skriuw dan de akseptaasjeferklearring yn trije dielen: nije operaasjes werstelle har ûnder it útgongsbelied, besteande streams hawwe it dokumintearre ûnderbrekkingsgedrach, en de applikaasje giet feilich fierder. Dy ferklearring is testber en is earlik oer wat it ûntwerp net belooft.