
Is dit moontlik om verskeie internetkanale in een te kombineer? Daar is baie wanopvattings en mites rondom hierdie onderwerp, selfs ervare netwerkingenieurs weet dikwels nie dat dit moontlik is nie. In die meeste gevalle word daar verkeerdelik na skakelaggregasie verwys as NAT-balansering of failover. Maar ware opsomming laat toe loop een enkele TCP-verbinding gelyktydig oor alle internetkanale, byvoorbeeld, video-uitsending sodat indien enige van die internetkanale onderbreek word, die uitsending nie onderbreek sal word nie.
Daar is duur kommersiële oplossings vir video-uitsaaiery, maar sulke toestelle kos baie kilobokke. Die artikel beskryf die konfigurasie van die gratis, oop pakket OpenMPTCPRouter, en handel oor gewilde mites oor kanaalopsomming.
Mites oor opsomming van kanale
Daar is baie tuisrouters wat die Multi-WAN-funksie ondersteun. Soms noem vervaardigers hierdie kanaal opsomming, wat nie heeltemal waar is nie. Baie netwerkers glo dat bykomend tot en opsomming by die L2-laag, bestaan geen ander kanaalaggregasie nie. Ek het dikwels gehoor dat dit oor die algemeen onmoontlik is van mense wat in telekommunikasie werk. Daarom, laat ons probeer om populêre mites te verstaan.
Balansering op die vlak van IP-verbindings
Dit is die mees bekostigbare en gewildste manier om verskeie internetkanale op dieselfde tyd te gebruik. Kom ons stel ons vir eenvoud voor dat jy drie ISP's het, wat elkeen vir jou 'n regte IP-adres vanaf hul netwerk gee. Al hierdie verskaffers is gekoppel aan 'n roeteerder met ondersteuning vir die Multi-WAN-funksie. Dit kan OpenWRT met die mwan3-pakket, mikrotik, ubiquiti of enige ander huishoudelike router wees, aangesien hierdie opsie nou nie meer ongewoon is nie.
Om die situasie te simuleer, stel jou voor dat die verskaffers vir ons die volgende adresse gegee het:
WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33
Dit wil sê om aan 'n afgeleë bediener te koppel example.com deur elk van die verskaffers, sal die afgeleë bediener drie onafhanklike bron-ip van die kliënt sien. Met balansering kan jy die las oor kanale verdeel en hulle al drie gelyktydig gebruik. Vir eenvoud, kom ons stel ons voor dat ons die las gelykop tussen alle kanale verdeel. As gevolg hiervan, wanneer 'n kliënt 'n webwerf met drie beelde voorwaardelik oopmaak, laai hy elke beeld af deur 'n aparte verskaffer. Aan die werfkant lyk dit soos verbindings vanaf drie verskillende IP's.

Wanneer daar op die verbindingsvlak gebalanseer word, gaan elke TCP-verbinding deur 'n aparte verskaffer.
Hierdie balanseringsmodus veroorsaak dikwels probleme vir gebruikers. Byvoorbeeld, baie werwe koppel koekies en tokens na die kliënt se IP-adres, en as dit skielik verander, word die versoek laat vaar of die kliënt meld by die webwerf af. Dit word dikwels in kliënt-bankstelsels en ander werwe met streng gebruikerssessiereëls gereproduseer. Hier is 'n eenvoudige illustratiewe voorbeeld: musieklêers in VK.com is slegs beskikbaar met 'n geldige sessiesleutel wat aan IP gebind is, en kliënte wat sulke balansering gebruik, speel dikwels nie oudio nie, omdat die versoek nie deur die verskaffer gegaan het aan wie die sessie is gebind.

By die aflaai van torrents, som balansering op die verbindingsvlak die bandwydte van alle kanale op
Sodanige balansering laat jou toe om die opsomming van die spoed van die internetkanaal te kry wanneer jy veelvuldige verbindings gebruik. Byvoorbeeld, as elkeen van die drie verskaffers 'n spoed van 100 megabit het, sal ons 300 megabits kry wanneer ons torrents aflaai. Omdat die torrent baie verbindings oopmaak wat onder alle verskaffers versprei word en uiteindelik die hele kanaal gebruik.
Dit is belangrik om te verstaan dat een enkele TCP-verbinding altyd slegs deur een verskaffer sal gaan. Dit wil sê, as ons een groot lêer via HTTP aflaai, dan sal hierdie verbinding deur een van die verskaffers gemaak word, en as die verbinding met hierdie verskaffer breek, dan sal die aflaai ook breek.

Een verbinding sal altyd net een internetkanaal gebruik
Dit geld ook vir video-uitsendings. As jy stromende video op een of ander voorwaardelike Twitch uitsaai, sal balansering op die vlak van IP-verbindings geen spesifieke voordeel gee nie, aangesien die videostroom binne een IP-verbinding uitgesaai sal word. In hierdie geval, as die WAN 3-verskaffer kommunikasieprobleme begin ondervind, soos pakkieverlies of verlangsaming, dan sal jy nie dadelik na 'n ander verskaffer kan oorskakel nie. Die uitsending sal gestop en weer gekoppel moet word.
Ware kanaalopsomming
Die werklike opsomming van kanale maak dit moontlik om een verbinding met die voorwaardelike Twitch deur alle verskaffers tegelyk te begin op so 'n manier dat indien enige van die verskaffers breek, die verbinding nie onderbreek sal word nie. Dit is 'n verbasend moeilike probleem, wat steeds nie 'n optimale oplossing het nie. Baie weet nie eers dat dit moontlik is nie!
Uit die vorige illustrasies onthou ons dat die voorwaardelike Twitch-bediener 'n videostroom van ons kan ontvang vanaf slegs een bron-IP-adres, wat beteken dit moet altyd konstant by ons wees, ongeag watter verskaffers afgeval het en watter werk. Om dit te bereik, het ons 'n opsommingbediener nodig wat al ons verbindings sal beëindig en in een saamsmelt.

Die opsommingbediener versamel alle kanale in een tonnel. Alle verbindings kom van die adres van die opsommingbediener af
Hierdie skema gebruik alle verskaffers, en die deaktivering van enige van hulle sal nie 'n verlies van kommunikasie met die Twitch-bediener veroorsaak nie. Trouens, dit is 'n spesiale VPN-tonnel, onder die enjinkap waarvan daar verskeie internetkanale gelyktydig is. Die hooftaak van so 'n skema is om die hoogste gehalte kommunikasiekanaal te verkry. As probleme by een van die verskaffers begin, pakkieverlies, toename in vertragings, behoort dit op geen manier die kwaliteit van kommunikasie te beïnvloed nie, aangesien die vrag outomaties oor ander, beter kanale wat beskikbaar is, versprei sal word.
Kommersiële oplossings
Hierdie probleem is lank reeds 'n bekommernis vir diegene wat geleenthede regstreeks uitsaai en nie toegang tot hoëgehalte-internet het nie. Vir sulke take is daar verskeie kommersiële oplossings, byvoorbeeld, Teradek maak sulke monsteragtige routers waarin pakke USB-modems geplaas word:

Uitsaai video-roeteerder met kanaaloptelfunksie
Sulke toestelle het gewoonlik die vermoë om video via HDMI of SDI vas te vang. Saam met die roeteerder word 'n intekening op die kanaalopsommingsdiens verkoop, asook die verwerking van die videostroom, transkodeer dit en versend dit verder. Die prys van sulke toestelle begin vanaf $ 2k met 'n stel modems, plus 'n aparte intekening op die diens.
Soms lyk dit nogal intimiderend:

Die opstel van OpenMPTCPRouter
protokol (MultiPath TCP) is uitgevind vir die vermoë om op verskeie kanale gelyktydig te koppel. Byvoorbeeld, syne en kan gelyktydig aan 'n afgeleë bediener koppel via WiFi en via 'n sellulêre netwerk. Dit is belangrik om te verstaan dat dit nie twee afsonderlike TCP-verbindings is nie, maar een verbinding wat gelyktydig oor twee kanale gevestig is. Vir dit om te werk, moet die afgeleë bediener ook MPTCP ondersteun.
is 'n oopbronsagteware-roeteerderprojek waarmee u kanale werklik kan optel. Die skrywers meld dat die projek in alfa weergawe status is, maar dit kan reeds gebruik word. Dit bestaan uit twee dele - 'n opsommende bediener, wat op die internet geleë is en 'n router, waaraan verskeie internetverskaffers en kliënttoestelle self gekoppel is: rekenaars, telefone. 'n Pasgemaakte roeteerder kan 'n Raspberry Pi, sommige WiFi-roeteerders of 'n gewone rekenaar wees. Daar is klaargemaakte samestellings vir verskeie platforms, wat baie gerieflik is.

Hoe OpenMPTCPRouter werk
Opsomming bediener opstelling
Die opsommingbediener is op die internet geleë en beëindig verbindings vanaf alle kanale van die kliëntroeteerder in een. Die IP-adres van hierdie bediener sal die eksterne adres wees wanneer toegang tot die internet verkry word deur OpenMPTCPRouter.
Vir hierdie taak sal ons 'n VPS-bediener gebruik Debian 10.
Opsomming bediener vereistes:
- MPTCP werk nie op OpenVZ-virtualisering nie
- Dit behoort moontlik te wees om jou eie kernel te installeer Linux
Die bediener word ontplooi deur 'n enkele opdrag uit te voer. Die skrip sal 'n kern met mptcp-ondersteuning en alle nodige pakkette installeer. Installasieskripte is beskikbaar vir Ubuntu и Debian.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
Die resultaat van 'n suksesvolle bedienerinstallasie.

Ons stoor die wagwoorde, ons sal dit nodig hê om die kliëntrouter te konfigureer, en herlaai. Dit is belangrik om in gedagte te hou dat na installasie, SSH beskikbaar sal wees op poort 65222. Na herselflaai, moet ons seker maak dat ons selflaai met die nuwe kern
uname -a
Linux test-server.local 4.19.67-mptcp
Ons sien die inskripsie mptcp langs die weergawenommer, wat beteken dat die kern korrek geïnstalleer is.
Die opstel van 'n kliënt router
Op Klaargemaakte bouwerk is beskikbaar vir sommige platforms, soos Raspberry Pi, Banana Pi, Lynksys-routers en virtuele masjiene.
Hierdie deel van openmptcprouter is gebaseer op OpenWRT, wat LuCI as 'n koppelvlak gebruik, bekend aan enigiemand wat al ooit OpenWRT teëgekom het. Die verspreidingskit weeg ongeveer 50Mb!

As 'n toetsbank sal ek Raspberry Pi en verskeie USB-modems met verskillende operateurs gebruik: MTS en Megafon. Hoe om 'n prent na 'n SD-kaart te skryf, dink ek, hoef nie te vertel nie.
Aanvanklik is die Ethernet-poort in die Raspberry Pi gekonfigureer as lan met 'n statiese IP-adres. 192.168.100.1. Om nie met die drade op die tafel te mors nie, het ek die Raspberry Pi aan 'n WiFi-toegangspunt gekoppel en 'n statiese adres op die rekenaar se WiFi-adapter gestel 192.168.100.2. Die DHCP-bediener is nie by verstek geaktiveer nie, dus moet statiese adresse gebruik word.
Nou kan jy na die webkoppelvlak gaan
Wanneer jy die eerste keer aanmeld, sal die stelsel jou vra om die wortelwagwoord in te stel, SSH sal beskikbaar wees met dieselfde wagwoord.

In die LAN-instellings kan u die gewenste subnet stel en die DHCP-bediener aktiveer.
Ek gebruik modems wat gedefinieer word as USB ethernet-koppelvlakke met 'n aparte DHCP-bediener, so dit vereis installasie . Die prosedure is identies aan die opstel van modems in gewone OpenWRT, so ek sal dit nie hier dek nie.
Vervolgens moet u die WAN-koppelvlakke opstel. Aanvanklik is twee virtuele koppelvlakke WAN1 en WAN2 in die stelsel geskep. Hulle moet 'n fisiese toestel toewys, in my geval is dit die name van USB-modem-koppelvlakke.
Om nie verward te raak in die koppelvlakname nie, raai ek u aan om dmesg-boodskappe te kyk terwyl u via SSH gekoppel is.
Aangesien my modems self as routers optree en self 'n DHCP-bediener het, moes ek die instellings van hul interne netwerkreekse verander en die DHCP-bediener deaktiveer, want aanvanklik reik albei modems adresse vanaf dieselfde netwerk uit, en dit veroorsaak 'n konflik.
OpenMPTCPRouter vereis dat WAN-koppelvlakadresse staties moet wees, daarom kom ons met subnette vir modems en stel dit op in die stelsel → openmptcprouter → koppelvlakinstellings-kieslys. Hier moet jy ook die IP-adres en bedienersleutel spesifiseer wat verkry is tydens die installering van die opsommingbediener.

In die geval van suksesvolle opstelling, moet 'n soortgelyke prentjie op die statusbladsy verskyn. Daar kan gesien word dat die roeteerder die optelbediener kon bereik en beide kanale werk behoorlik.

Die verstekmodus is shadowsocks + mptcp. Dit is so 'n instaanbediener wat alle verbindings op sigself toevou. Aanvanklik is dit opgestel om slegs TCP te hanteer, maar jy kan ook UDP aktiveer.

As daar geen foute op die statusbladsy is nie, kan die opstelling as voltooi beskou word.
By sommige verskaffers kan 'n situasie ontstaan wanneer die mptcp-vlag langs die verkeerspad afgekap word, dan sal daar so 'n fout wees:

In hierdie geval kan u 'n ander modus van werking gebruik, sonder om MPTCP te gebruik, meer hieroor .
Gevolgtrekking
Die OpenMPTCPRouter-projek is baie interessant en belangrik, aangesien dit miskien die enigste oop komplekse oplossing vir die kanaalopsommingsprobleem is. Alles anders is óf dig toegesluit en eie, óf net aparte modules waarmee 'n gewone mens nie kan omgaan nie. Op die huidige stadium van ontwikkeling is die projek nog redelik rou, uiters swak dokumentasie, baie dinge word eenvoudig nie beskryf nie. Maar terselfdertyd werk dit steeds. Ek hoop dat dit sal voortgaan om te ontwikkel, en ons sal huishoudelike routers kry wat kanale normaalweg uit die boks kan kombineer.
Volg ons ontwikkelaar op Instagram
Bron: will.com
