Două uplinkuri dar un singur tunel: comutare, echilibrare sau agregare
Comutarea la defect, echilibrarea pe flux și agregarea unui singur flux sunt trei promisiuni diferite. Două rute implicite vă dau prima, și nu celelalte două.
Două linii de internet pot face un VPN mai disponibil, și îl pot face mai rapid pentru unele sarcini de lucru, dar mecanismul decide care dintre cele două se întâmplă. Un router cu două rute implicite nu este agregat, iar un tunel care transportă mii de conexiuni interne rămâne un singur flux extern. A numi promisiunea prima este diferența dintre un proiect și o dezamăgire costisitoare. Tabelul de mai jos separă opțiunile după ce cere fiecare la capătul îndepărtat și ce face pierderea unei legături unui transfer.
Trei promisiuni, și doar una are nevoie de un partener
Comutarea la defect menține o cale disponibilă când legătura preferată dispare. Echilibrarea după hash-ul fluxurilor împrăștie fluxuri independente pe ambele uplinkuri. Agregarea unui singur flux permite unui transfer să folosească ambele legături simultan. Sunt produse diferite cu cerințe diferite, și doar ultimul are nevoie de cooperarea a ceva din afara routerului dumneavoastră.
| 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 |
Nimic din acel tabel nu este un motiv să cumpărați o a doua linie. Ce face este să împiedice evaluarea unui proiect de comutare ca și cum ar fi agregare.
De ce un tunel arată ca un singur flux pentru router
Un router care echilibrează încărcarea aplică un hash adreselor sursă și destinație împreună cu porturile, apoi trimite întregul flux acolo unde indică hash-ul. Un tunel VPN este un astfel de flux din perspectiva routerului, orice ar rula în interiorul lui. Conexiunile interne nu ajung niciodată la decizia hash-ului, pentru că antetul exterior a decis deja calea. De aceea un al doilea uplink poate dubla capacitatea totală pentru mulți utilizatori și nu schimbă nimic la transferul mare al unui singur utilizator.
Două tuneluri separate vă pot da doi candidați, dar au în continuare nevoie de o politică deliberată care să aloce traficul și să țină răspunsurile pe calea care a dus cererea. Rutarea asimetrică este rezultatul obișnuit al săririi peste acel pas. Minimul este o politică ce numește fluxul, legătura preferată și legătura de rezervă.
Agregarea Ethernet nu traversează furnizori neînruditi, pentru că capătul îndepărtat trebuie să participe la protocolul de agregare. O agregare peste doi furnizori de internet este un proiect de cercetare dacă nu există un punct final care cooperează.
Ce cere TCP cu mai multe căi la ambele capete
Documentația Linux despre Multipath TCP descrie mai multe subfluxuri care aparțin unei singure conexiuni. Suportul kernelului la un capăt nu schimbă nimic de unul singur, fiindcă și partenerul trebuie să accepte acele subfluxuri. Un proxy la capătul îndepărtat este cealaltă aranjare obișnuită, și devine o componentă cu capacitatea și disponibilitatea ei, care trebuie planificate. Aceeași logică exclude un răspuns simplu pentru WireGuard, al cărui transport este UDP: MPTCP crește subfluxuri TCP și nu poate agrega acel tunel fără altceva în proiect.
Verificați dacă funcția kernelului este activată înainte de a proiecta în jurul ei, fiindcă multe distribuții o livreză dezactivată. Aceste trei comenzi răspund în un minut.
sysctl net.mptcp.enabled
ss -M | head
ip mptcp limits show
Alegeți după sarcina de lucru, nu după broșură
Dacă sarcina de lucru este formată din multe sesiuni independente, echilibrarea după hash poate adăuga capacitate fără cooperare la capătul îndepărtat. Dacă este un singur transfer mare, doar un proiect de agregare va ajuta, iar acel proiect are nevoie de un partener care cooperează. Dacă cerința este ca lucrul să continue când o legătură moare, răspunsul este comutarea, iar debitul unui singur transfer este irelevant.
Scrieți cerința într-o propoziție cu un verb în ea: o copie de siguranță se termină de două ori mai repede, sau o legătură căzută nu încheie o sesiune. Obiectivele vagi produc proiecte pe care nimeni nu le poate accepta sau respinge. Apoi decideți ce poate fi capătul îndepărtat, fiindcă opțiunea cea mai ieftină este adesea cea care nu cere nimic nou acolo. Această constrângere elimină majoritatea afirmațiilor din broșură înainte de prima întâlnire.
Țineți cele trei promisiuni separate în documentul de cerințe. Un proiect care le revendică pe toate trei livrează de obicei una și presupune în liniște celelalte. Secțiunea următoare testează care este livrată de fapt.
Testați un transfer și multe, apoi scoateți o legătură
Comparați un transfer susținut cu mai multe transferuri paralele către aceeași destinație, și înregistrați pierderea, întârzierea și utilizarea pe legătură pentru fiecare. Un câștig doar cu sesiuni paralele indică distribuția fluxurilor, nu agregarea unui singur flux. Testați separat pierderea unui uplink, fiindcă capacitatea cât timp ambele legături funcționează nu spune nimic despre comutarea pentru o sesiune deja stabilită. Înregistrați ruta, socketul și contoarele de retransmisie înainte și după fiecare test.
ip route show default
ip route get 10.80.0.5
mtr -n -c 20 -r 10.80.0.5
Când transferul unic folosește în continuare un singur uplink, proiectul face exact ce implică un hash de flux. Când transferurile paralele se împart pe ambele, echilibrarea funcționează și agregarea nu. Înregistrați care dintre cele trei promisiuni este respectată cu adevărat, iar următoarea discuție despre capacitate începe cu dovezi, nu cu o afirmație a furnizorului.