Pridėkite antrą WAN jungtį ir tuneliai pakyla, bet failo kopijavimas vis tiek sustoja, kai vienas kelias svyruoja. Jungtys sveikos, VPN procesai veikia; trūksta sutarties tarp operatoriaus ir tunelio. Keli socketai automatiškai nesielgia kaip viena jungtis, o virš jų esanti programa nepastebi skirtumo, kol nenutrūksta pristatymas. Kiekviena sutarties dalis atitinka gedimą, kurį galite išbandyti, ir tai daro ją naudingą.

Parašykite šią sutartį prieš rinkdamiesi produktą. Ji turi keturias dalis: srautas, kurį gauna VPN, kaip operatorius atkuria trūkstamus duomenis, kokia galinio taško tapatybė išlieka pasikeitus keliui ir kaip visa sistema elgiasi, kai kelias sugenda.

Simptomas: jungtys veikia, sesija vis tiek nutrūksta

Stebėjimo grafikas, rodantis abi jungtis veikiančias, įrodo tik tai, kad kiekvienas kelias gali perduoti srautą. Jis neįrodo, kad VPN mato vieną tvarkingą srautą, kad viename kelyje prarastas paketas atkuriamas kitame, ar kad partneris dar žino, su kuria sesija kalbasi. Likusi sutarties dalis apima tai, ko grafikas negali parodyti.

Kai perdavimas sustoja, išsiaiškinkite, ar operatorius toliau pristatė likusiu keliu. Jei sesija miršta, kai antra jungtis neveikia, operatorius jos niekada nenaudojo. Jei sesija išlieka, bet duomenys atkeliauja netvarkingai arba dubliuoti, operatorius judina paketus be ryšio lygio sutarties. Laiko žymos abiejose pusėse paprastai tai paaiškina.

Šis skirtumas lemia sprendimą. Maršrutizavimo ar politikos problema reikalauja kito kelio pasirinkimo; trūkstamas tvarkos ir atkūrimo sluoksnis reikalauja kito transporto, o ne didesnio buferio.

Pirmoji garantija: baitų srautas ryšio lygiu

Jei VPN reikia patikimo tvarkingo srauto, operatorius turi identifikuoti baitų intervalus virš atskiro kelio. Kiekviena pagrindinė TCP jungtis numeruoja tik savo segmentus, todėl gavėjas negali perskaičiuoti tvarkos tarp kelių naudodamas vien tuos numerius.

Multipath TCP yra standartizuotas pavyzdys. Jis pateikia vieną patikimą baitų srautą, derindamas kelis TCP posrautus, su duomenų lygio sekos atvaizdavimu ir patvirtinimu. Programa skaito srautą, o ne posrautį, kuris atsitiktinai pirmas pristatė gabalą.

Linux sistemoje MPTCP yra opt-in kiekvienam socketui per IPPROTO_MPTCP. Kai derybos negali naudoti kelių kelių elgsenos, dokumentuota atsarginė parinktis yra įprastas TCP, o tai reiškia, kad programa gali toliau veikti vienu keliu niekada nenaudodama antrojo. Patikrinkite, kokią elgseną iš tikrųjų suderino įdiegtas socketas, užuot darę prielaidą, kad branduolio nustatymas įsigaliojo.

Antroji garantija: tvarka, dubliavimas ir atkūrimas

Keliai su skirtingu vėlavimu ir nuostolių rodikliais verčia operatorių buferizuoti, pertvarkyti ir persiųsti. Sutartis turi nurodyti, kiek buferio leidžiama, kokį priešslėgį mato programa ir kuris kelias neša persiuntimą.

Kelias, kuris lieka prijungtas, bet nustoja pristatyti, yra sunkesnis nei švarus uždarymas. Operatorius turi jį aptikti, perkelti laukiančius duomenis ir vengti amžinai laukti segmento, kuris niekada neatvyks. Paprastas patikrinimas, ar abi jungtys veikia, šios būsenos neapima.

Dubliavimui reikia savo taisyklės. To paties turinio siuntimas abiem keliais gali pagerinti vėlavimą, tačiau gavėjas turi nuslopinti kopiją prieš jai pasiekiant VPN. IPsec anti-replay yra pasirenkamas kiekvienai saugos asociacijai ir tikrina sekos numerius; dubliavimo sluoksnis, kuris pertvarko arba kartoja paketus, gali jį suaktyvinti arba paslėpti problemą, kol tunelis nukris.

Trečioji garantija: galinio taško tapatybė ir kelio prisijungimas

Partneriui reikia stabilaus būdo atpažinti sesiją, kai atsiranda naujas kelias. Jei kiekvienas kelias autentifikuojamas kaip atskiras tunelis, VPN gali matyti dvi sesijas vietoj vienos. Jei operatorius sujungia kelius pagal vieną sesiją, jis turi apibrėžti, kaip autentifikuojamas naujasis kelias ir kas nutinka senajam.

Užrašykite, kurie adresai ir identifikatoriai išlieka stabilūs: tunelio galinis taškas, operatoriaus sesijos identifikatorius ir bet koks tarpinis tarpininkas. Tarpininkas prideda dar vieną prieinamumo ir pasitikėjimo ribą, net kai niekada nemato apsaugoto turinio.

Čia taip pat gyvena politika. Kelias, prisijungiantis iš netikėto tinklo, gali būti techniškai galiojantis ir vis tiek pažeisti numatytą pasitikėjimo modelį. Nuspręskite, ar nauji keliai priimami automatiškai, ar reikalauja autentifikavimo, ar atmetami.

Ketvirtoji garantija: ribota elgsena gedimo metu

Išbandykite visišką kelio gedimą, o ne tik lėtą kelią. Likęs kelias turėtų nešti sesiją be neriboto atminties augimo, o atkūrimas neturėtų priklausyti nuo laikmačio, ilgesnio nei programa gali toleruoti. Kai sugedęs kelias grįžta, operatorius turi nuspręsti, ar subalansuoti iš naujo, ar palikti srautą vietoje.

Nustatykite buferizavimo, persiuntimo ir kelių skaičiaus ribas, tada patikrinkite jas esant nuostoliams, pertvarkymui, dubliavimui ir vėlavimo disbalansui. Bendra pralaida čia yra mažiausiai įdomus skaičius; pristatymo tęstinumas ir atminties ribos yra sutartis.

Laikykite operatoriaus atkūrimo būseną atskirai nuo VPN kriptografinės būsenos. Pasirinktinis patikimumo sluoksnis, pakeičiantis nusistovėjusį autentifikavimą ar šifravimą, nėra trumpasis kelias, o sekos numerių naudojimas pakartotinai tarp sluoksnių daro apsaugą nuo pakartojimų ir diagnostiką nepatikimą.

Priimkite operatorių su bandymų planu

Parašykite keturias garantijas kaip praėjo-ar-nepraėjo patikras: vienas tvarkingas srautas, apibrėžtas atkūrimas, stabili sesijos tapatybė, ribota gedimo elgsena. Vykdykite kiekvieną patikrą su vienu pablogintu keliu, o paskui su vienu pašalintu.

Vienas sėkmingas failo perdavimas per kelio pasikeitimą neįrodo nepertraukiamo veikimo. Pakartokite perdavimą perjungdami pageidaujamą kelią ir patikrinkite tiek operatoriaus vaizdą, tiek pačios VPN skaitiklius. Jei abu nesutaria, kuris kelias nešė duomenis, sutartis dar nepastebima.

Laikykite patvirtintą matricą kartu su diegimu. Ji pasako kitam inžinieriui, kokia elgsena buvo pažadėta, kokie kelių deriniai buvo išbandyti ir koks gedimo režimas vis dar nepalaikomas, be dar vieno spėliojimo etapo pagal jungčių būsenos lemputes.

Susiję straipsniai