Du suprenligoj sed unu tunelo: baskulo, ekvilibrigo aŭ ligado
Baskulo, ekvilibrigo laŭ fluo kaj kunligo de unu fluo estas tri malsamaj promesoj. Du implicitaj vojoj donas al vi la unuan, kaj ne la aliajn du.
Du retaj linioj povas igi VPN pli havebla, kaj povas igi ĝin pli rapida por iuj laborŝarĝoj, sed la mekanismo decidas kiun el la du okazos. Enkursigilo kun du implicitaj vojoj ne estas ligita, kaj tunelo portanta milojn da internaj konektoj restas unu ekstera fluo. Nomadi la promeson unue estas la diferenco inter plano kaj multekosta seniluziiĝo. La tabelo sube apartigas la eblojn laŭ tio, kion ĉiu bezonas ĉe la malproksima fino kaj kion perdo de ligo faras al transigo.
Tri promesoj, kaj nur unu bezonas partneron
Baskulo tenas vojon havebla kiam la preferata ligo malaperas. Ekvilibrigo per hakado de fluoj disigas sendependajn fluojn sur ambaŭ suprenligojn. Kunligo de unu fluo permesas al unu transigo uzi ambaŭ ligojn samtempe. Tiuj estas malsamaj produktoj kun malsamaj postuloj, kaj nur la lasta bezonas kunlaboron de io ekster via enkursigilo.
| Mechanism | Far-end requirement | Effect on one transfer | What breaks under a link loss |
|---|---|---|---|
| Packet-spraying overlay | A cooperating endpoint that reassembles the stream | Packets can spread across both links | Reordering and buffering on the surviving path; its own recovery logic decides what continues |
| MPTCP subflows | A peer or proxy that accepts subflows | Subflows can share one connection | Surviving subflows continue if the peer keeps them alive |
| Flow-hash balancing | Nothing new; the existing tunnel endpoint is enough | One outer flow still follows one link | Flows hashed onto the dead link move; established sessions break |
| Link failover | Nothing new | One path at a time; the second link sits idle | The session stalls or restarts on the other link |
Nenio en tiu tabelo estas kaŭzo aĉeti duan linion. Ĝi faras alian aferon: ĝi malhelpas, ke plano de baskulo estu taksata kvazaŭ ĝi estus ligado.
Kial tunelo aspektas kiel unu fluo al la enkursigilo
Enkursigilo kiu ekvilibrigas ŝarĝon hakas fontajn kaj celajn adresojn kune kun pordoj, poste sendas la tutan fluon tien, kien la hako montras. VPN-tunelo estas unu tia fluo el la perspektivo de la enkursigilo, kion ajn ĝi funkciigas interne. Internaj konektoj neniam atingas la hakan decidon, ĉar la ekstera kaplinio jam decidis la vojon. Tial dua suprenligo povas duobligi la totalan kapaciton por multaj uzantoj kaj ŝanĝi nenion por granda transigo de unu uzanto.
Du apartaj tuneloj povas doni al vi du kandidatojn, sed ili ankoraŭ bezonas intencan politikon kiu atribuas trafikon kaj tenas respondojn sur la vojo kiu portis la peton. Nesimetria enkursigado estas la kutima rezulto de preterlasi tiun paŝon. La minimumo estas politiko kiu nomas la fluon, la preferatan ligon kaj la rezervan ligon.
Ethernet-ligado ne transiras nesociajn provizantojn, ĉar la malproksima fino devas partopreni en la agregacia protokolo. Ligo trans du ISP-oj estas esplora projekto krom se ekzistas kunlabora finpunkto.
Kion plurvoja TCP bezonas ĉe ambaŭ finoj
La dokumentaro de Linux pri Multipath TCP priskribas plurajn subfluojn apartenantajn al unu konekto. Kernapogo ĉe unu fino ŝanĝas nenion per si mem, ĉar ankaŭ la samtavolano devas akcepti tiujn subfluojn. Prokuro ĉe la malproksima flanko estas la alia kutima aranĝo, kaj ĝi fariĝas komponanto kun propra kapacito kaj havebleco por plani. La sama logiko ekskludas facilan respondon por WireGuard, kies transporto estas UDP: MPTCP kreskigas TCP-subfluojn kaj ne povas agregi tiun tunelon sen io alia en la plano.
Kontrolu ĉu la kernfunkcio estas ŝaltita antaŭ ol plani ĉirkaŭ ĝi, ĉar multaj distribuaĵoj liveras ĝin malŝaltita. Tiuj tri komandoj respondas tion en unu minuto.
sysctl net.mptcp.enabled
ss -M | head
ip mptcp limits show
Elektu laŭ la laborŝarĝo, ne laŭ la broŝuro
Se la laborŝarĝo estas multaj sendependaj seancoj, ekvilibrigo per hakado de fluoj povas aldoni kapaciton sen kunlaboro ĉe la malproksima fino. Se ĝi estas unu granda transigo, nur agregacia plano helpos, kaj tiu plano bezonas kunlaboran samtavolanon. Se la postulo estas ke laboro daŭru kiam ligo mortas, baskulo estas la respondo kaj la trafiko de unu transigo estas sensignifa.
Skribu la postulon en unu frazo kun verbo ene: unu rezerva kopio finiĝas duoble pli rapide, aŭ falinta ligo ne finas seancon. Malklaraj celoj produktas planojn kiujn neniu povas akcepti aŭ rifuzi. Poste decidu kio rajtas esti la malproksima fino, ĉar la plej malmultekosta opcio ofte estas tiu kiu postulas nenion novan tie. Tiu limigo forigas la plej multajn broŝurajn asertojn antaŭ la unua kunveno.
Tenu la tri promesojn aparte en la postuldokumento. Plano kiu asertas ĉiujn tri kutime liveras unu kaj kviete supozas la aliajn. La sekva sekcio testas kiun oni vere liveras.
Testu unu transigon kaj multajn, poste tiru ligon
Komparu unu daŭran transigon kun pluraj paralelaj transigoj al la sama celo, kaj registru perdon, malfruon kaj utiligon de ĉiu ligo por ĉiu. Gajno nur kun paralelaj seancoj indikas distribuon de fluoj, ne kunligon de unu fluo. Testu la perdon de unu suprenligo aparte, ĉar kapacito dum ambaŭ ligoj funkcias diras nenion pri baskulo por establita seanco. Registru la vojon, la ingon kaj la rerentransendajn kalkilojn antaŭ kaj post ĉiu testado.
ip route show default
ip route get 10.80.0.5
mtr -n -c 20 -r 10.80.0.5
Kiam la unuopa transigo ankoraŭ uzas unu suprenligon, la plano faras ĝuste tion, kion implicas hako de fluo. Kiam paralelaj transigoj disiĝas sur ambaŭ, ekvilibrigo funkcias kaj agregado ne. Registru kiun el la tri promesoj la plano vere plenumas, kaj la sekva kapacita konversacio komenciĝos de pruvoj anstataŭ de aserto de vendanto.