Tilføj et ekstra WAN-link, og tunnelerne kommer op, men en filkopiering går stadig i stå, når en sti vakler. Linkene er sunde, og VPN-processerne kører; det, der mangler, er en kontrakt mellem carrieren og tunnelen. Flere sockets opfører sig ikke automatisk som én forbindelse, og applikationen ovenover kan ikke se forskellen, før leveringen bryder sammen. Hver del af kontrakten svarer til en fejl, du kan teste, og det er det, der gør den nyttig.

Skriv den kontrakt, før du vælger et produkt. Den har fire dele: den strøm, VPN’en modtager, hvordan carrieren genopretter manglende data, hvilken endepunktsidentitet der overlever et stiskift, og hvordan det hele opfører sig, når en sti fejler.

Symptomet: linkene er oppe, sessionen bryder stadig

En overvågningsgraf, der viser begge links oppe, beviser kun, at hver sti kan bære trafik. Den beviser ikke, at VPN’en ser én ordnet strøm, at en pakke tabt på én sti genoprettes på en anden, eller at peer’en stadig ved, hvilken session den taler med. Resten af kontrakten dækker det, grafen ikke kan vise.

Når en overførsel går i stå, find ud af, om carrieren fortsatte med at levere på den overlevende sti. Dør sessionen, mens det andet link er ledigt, har carrieren aldrig brugt det. Overlever sessionen, men ankommer data i uorden eller duplikeret, flytter carrieren pakker uden en kontrakt på forbindelsesniveau. Tidsstempler på begge sider gør det som regel klart.

Den forskel afgør løsningen. Et routing- eller politikproblem kræver et andet stivalg; et manglende lag for orden og genopretning kræver en anden transport, ikke en større buffer.

Garanti et: en bytestrøm på forbindelsesniveau

Hvis VPN’en har brug for en pålidelig ordnet strøm, skal carrieren identificere byteintervaller over den enkelte sti. Hver underliggende TCP-forbindelse nummererer kun sine egne segmenter, så en modtager kan ikke omarrangere på tværs af stier ved hjælp af disse numre alene.

Multipath TCP er det standardiserede eksempel. Det præsenterer én pålidelig bytestrøm, mens det koordinerer flere TCP-subflows med sekvensmapping og kvittering på dataniveau. Applikationen læser en strøm, ikke den subflow, der tilfældigvis leverede et stykke først.

På Linux er MPTCP opt-in pr. socket via IPPROTO_MPTCP. Når forhandlingen ikke kan bruge multipath-adfærd, er det dokumenterede fald tilbage almindelig TCP, hvilket betyder, at applikationen kan fortsætte over én sti uden nogensinde at bruge den anden. Kontroller, hvilken adfærd den udrullede socket faktisk forhandlede, i stedet for at antage, at kernelindstillingen blev anvendt.

Garanti to: orden, duplikering og genopretning

Stier med forskellige forsinkelser og tabstal tvinger carrieren til at buffer, omarrangere og gensende. Kontrakten skal angive, hvor meget buffering der er tilladt, hvilket modtryk applikationen ser, og hvilken sti der bærer en gensendelse.

En sti, der forbliver forbundet, men holder op med at levere, er sværere end en ren lukning. Carrieren skal opdage den, flytte udestående data og undgå at vente evigt på et segment, der aldrig ankommer. En simpel kontrol af, at begge links er oppe, dækker ikke denne tilstand.

Duplikering kræver sin egen regel. At sende samme nyttelast på begge stier kan forbedre latenstiden, men modtageren skal undertrykke kopien, før den når VPN’en. IPsec-anti-replay er valgfrit pr. sikkerhedsassociation og kontrollerer sekvensnumre; et duplikeringslag, der omarrangerer eller gentager pakker, kan udløse det eller skjule problemet, indtil tunnelen falder.

Garanti tre: endepunktsidentitet og stitilslutning

Peer’en har brug for en stabil måde at genkende sessionen på, når en ny sti dukker op. Hvis hver sti godkendes som en separat tunnel, kan VPN’en se to sessioner i stedet for én. Hvis carrieren forener stier under én session, skal den definere, hvordan den nye sti godkendes, og hvad der sker med den gamle.

Noter, hvilke adresser og identifikatorer der forbliver stabile: tunnelendepunktet, carrierens sessionsidentifikator og en eventuel proxy imellem. En proxy tilføjer endnu en tilgængeligheds- og tillidsgrænse, selv når den aldrig ser den beskyttede nyttelast.

Det er også her, politikken bor. En sti, der tilslutter sig fra et uventet netværk, kan være teknisk gyldig og stadig krænke den tilsigtede tillidsmodel. Beslut, om nye stier accepteres automatisk, kræver godkendelse eller afvises.

Garanti fire: afgrænset adfærd under fejl

Test en fuldstændig stifejl, ikke kun en langsom. Den overlevende sti bør bære sessionen uden ubegrænset hukommelsesvækst, og genopretning bør ikke afhænge af en timer, der er længere, end applikationen kan tolerere. Når den fejlede sti vender tilbage, skal carrieren beslutte, om den vil rebalancere eller lade flowet blive, hvor det er.

Sæt grænser for buffering, gensendelse og antal stier, og verificer dem under tab, omarrangering, duplikering og forsinkelsesubalance. Samlet båndbredde er det mindst interessante tal her; leveringskontinuitet og hukommelsesgrænser er kontrakten.

Hold carrierens genopretningstilstand adskilt fra VPN’ens kryptografiske tilstand. Et eget pålidelighedslag, der erstatter etableret godkendelse eller kryptering, er ikke en genvej, og genbrug af sekvensnumre på tværs af lag gør replay-beskyttelse og diagnostik upålidelig.

Acceptér carrieren med en testplan

Skriv de fire garantier som bestået-eller-fejlet-kontroller: én ordnet strøm, defineret genopretning, stabil sessionsidentitet, afgrænset fejladfærd. Kør hver kontrol med én sti forringet og derefter med én sti fjernet.

En enkelt vellykket filoverførsel gennem et stiskift beviser ikke kontinuerlig drift. Gentag overførslen, mens du skifter den foretrukne sti, og undersøg både carrierens billede og VPN’ens egne tællere. Hvis de to er uenige om, hvilken sti der bar dataene, er kontrakten endnu ikke observerbar.

Opbevar den godkendte matrix sammen med udrulningen. Den fortæller den næste ingeniør, hvilken adfærd der blev lovet, hvilke stikombinationer der blev testet, og hvilken fejltilstand der stadig ikke understøttes, uden endnu en runde gætteri ud fra linkstatuslys.

Relaterede artikler