Kaksi internetlinjaa voi tehdä VPN:stä käytettävämmän ja joillekin työkuormille nopeamman, mutta mekanismi päättää, kumpi tapahtuu. Reititin, jossa on kaksi oletusreittiä, ei ole niputettu, ja tuhansia sisäisiä yhteyksiä kuljettava tunneli on yhä yksi ulkoinen virtaus. Lupauksen nimeäminen ensin on ero suunnitelman ja kalliin pettymyksen välillä. Alla oleva taulukko erottaa vaihtoehdot sen mukaan, mitä kukin tarvitsee kaukoillussa ja mitä linkin menetys tekee siirrolle.

Kolme lupausta, ja vain yksi tarvitsee kumppanin

Vikasieto pitää polun käytettävänä, kun suosittu linkki katoaa. Virtausten hajautus kuormanjako jakaa riippumattomat virtaukset molemmille ylälinkeille. Yhden virtauksen niputus antaa yhden siirron käyttää molempia linkkejä yhtä aikaa. Ne ovat eri tuotteita eri vaatimuksilla, ja vain viimeinen tarvitsee yhteistyötä joltakin reitittimesi ulkopuolelta.

MechanismFar-end requirementEffect on one transferWhat breaks under a link loss
Packet-spraying overlayA cooperating endpoint that reassembles the streamPackets can spread across both linksReordering and buffering on the surviving path; its own recovery logic decides what continues
MPTCP subflowsA peer or proxy that accepts subflowsSubflows can share one connectionSurviving subflows continue if the peer keeps them alive
Flow-hash balancingNothing new; the existing tunnel endpoint is enoughOne outer flow still follows one linkFlows hashed onto the dead link move; established sessions break
Link failoverNothing newOne path at a time; the second link sits idleThe session stalls or restarts on the other link

Mikään tuossa taulukossa ei ole syy ostaa toista linjaa. Se tekee jotain muuta: estää vikasietoratkaisun arvioimisen ikään kuin se olisi niputusta.

Miksi tunneli näyttää reitittimelle yhdeltä virtaukselta

Kuormaa tasapainottava reititin hajauttaa lähde- ja kohdeosoitteet yhdessä porttien kanssa ja lähettää sitten koko virtauksen sinne, mihin hajautus osoittaa. VPN-tunneli on reitittimen näkökulmasta yksi tällainen virtaus, mitä ikinä sen sisällä ajetaan. Sisäiset yhteydet eivät koskaan saavuta hajautuspäätöstä, koska ulompi otsake on jo päättänyt polun. Siksi toinen ylälinkki voi kaksinkertaistaa kokonaiskapasiteetin monille käyttäjille eikä muuta mitään yhden käyttäjän suuressa siirrossa.

Kaksi erillistä tunnelia voi antaa kaksi ehdokasta, mutta ne tarvitsevat silti tarkoituksellisen käytännön, joka jakaa liikenteen ja pitää vastaukset polulla, joka kuljetti pyynnön. Epäsymmetrinen reititys on tavallinen seuraus tämän vaiheen ohittamisesta. Vähimmäisvaatimus on käytäntö, joka nimeää virtauksen, suositun linkin ja varalinkin.

Ethernet-niputus ei ylitä toisiinsa liittymättömiä operaattoreita, koska kaukoillun on osallistuttava niputusprotokollaan. Niputus kahden operaattorin yli on tutkimushanke, ellei yhteistyöhön suostuvaa päätepistettä ole.

Mitä monipolkuinen TCP tarvitsee molemmissa päissä

Linuxin Multipath TCP -dokumentaatio kuvaa useita alavirtauksia, jotka kuuluvat yhteen yhteyteen. Ytimen tuki yhdessä päässä ei yksinään muuta mitään, koska myös vastapuolen on hyväksyttävä ne alavirtaukset. Välityspalvelin kaukoillussa on toinen tavallinen järjestely, ja siitä tulee komponentti, jolla on oma kapasiteettinsa ja käytettävyytensä suunniteltavaksi. Sama logiikka sulkee pois helpon vastauksen WireGuardille, jonka kuljetus on UDP: MPTCP kasvattaa TCP-alavirtauksia eikä voi niputtaa tuota tunnelia ilman jotain muuta suunnitelmassa.

Tarkista, onko ytimen ominaisuus käytössä, ennen kuin suunnittelet sen varaan, sillä monet jakelut toimittavat sen pois päältä. Nämä kolme komentoa vastaavat siihen minuutissa.

sysctl net.mptcp.enabled
ss -M | head
ip mptcp limits show

Valitse työkuorman, älä esitteen mukaan

Jos työkuorma on monta riippumatonta istuntoa, virtausten hajautus voi lisätä kapasiteettia ilman kaukoillun yhteistyötä. Jos se on yksi suuri siirto, vain niputusratkaisu auttaa, ja se ratkaisu tarvitsee yhteistyöhön suostuvan vastapuolen. Jos vaatimus on, että työ jatkuu linkin kuollessa, vastaus on vikasieto ja yhden siirron läpäisy on merkityksetön.

Kirjoita vaatimus yhteen lauseeseen, jossa on verbi: yksi varmuuskopio valmistuu kaksi kertaa nopeammin, tai pudonnut linkki ei lopeta istuntoa. Epämääräiset tavoitteet tuottavat ratkaisuja, joita kukaan ei voi hyväksyä tai hylätä. Päätä sitten, mitä kaukoilku saa olla, sillä halvin vaihtoehto on usein se, joka ei vaadi siellä mitään uutta. Tämä rajoitus poistaa useimmat esitteen väitteet ennen ensimmäistä kokousta.

Pidä kolme lupausta erillään vaatimusasiakirjassa. Ratkaisu, joka väittää kaikkia kolmea, toimittaa yleensä yhden ja olettaa hiljaa muut. Seuraava osa testaa, mikä niistä tosiasiassa toimitetaan.

Testaa yhtä siirtoa ja monta, vedä sitten linkki irti

Vertaa yhtä yhtäjaksoista siirtoa useisiin rinnakkaisiin siirtoihin samaan kohteeseen ja kirjaa jokaisen häviö, viive ja linkkikohtainen käyttöaste. Hyöty vain rinnakkaisilla istunnoilla viittaa virtausten jakautumiseen, ei yhden virtauksen niputukseen. Testaa yhden ylälinkin menetys erikseen, sillä kapasiteetti molempien linkkien toimiessa ei kerro mitään vikasietosta vakiintuneelle istunnolle. Tallenna reitti, socket ja uudelleenlähetyslaskurit ennen jokaista testiä ja sen jälkeen.

ip route show default
ip route get 10.80.0.5
mtr -n -c 20 -r 10.80.0.5

Kun yksittäinen siirto käyttää yhä yhtä ylälinkkiä, ratkaisu tekee täsmälleen sen, mitä virtauksen hajautus merkitsee. Kun rinnakkaiset siirrot jakautuvat molemmille, kuormanjako toimii eikä niputus. Kirjaa, minkä kolmesta lupauksesta ratkaisu todella pitää, ja seuraava kapasiteettikeskustelu alkaa todisteista eikä toimittajan väitteestä.

Aiheeseen liittyvät artikkelit