Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

Is it mooglik om ferskate ynternetkanalen te kombinearjen yn ien? D'r binne in protte misferstannen en myten om dit ûnderwerp; sels betûfte netwurkingenieurs witte faaks net dat dit mooglik is. Yn 'e measte gefallen wurdt linkaggregaasje fersin neamd balancing op it NAT-nivo of failover. Mar echte gearfetting lit lansearje ien inkele TCP-ferbining tagelyk oer alle ynternetkanalen, bygelyks fideo-útstjoering sadat as ien fan 'e ynternetkanalen ûnderbrutsen wurdt, de útstjoering net ûnderbrutsen wurde.

Der binne djoere kommersjele oplossings foar fideo-útstjoerings, mar sokke apparaten kostje in protte kilobucks. It artikel beskriuwt hoe't jo it fergese, iepen boarne OpenMPTCPRouter-pakket konfigurearje en adressearret populêre myten oer kanaalsumming.

Myten oer kanaalsumming

D'r binne in protte thúsrouters dy't de Multi-WAN-funksje stypje. Soms fabrikanten neame dit kanaal summing, dat is net hielendal wier. In protte netwurkers leauwe dat neist LACP en summation op it L2 nivo, gjin oare kanaal aggregaasje bestiet. Ik haw faak heard dat dit oer it algemien ûnmooglik is fan minsken dy't wurkje yn telekommunikaasje. Dêrom, lit ús besykje te begripen populêre myten.

Balansearje op it IP-ferbiningnivo

Dit is de meast betelbere en populêre manier om ferskate ynternetkanalen tagelyk te brûken. Lit ús foar de ienfâld foarstelle dat jo trije ynternetproviders hawwe, elk dy't jo in echt IP-adres jouwe fan har netwurk. Al dizze providers binne ferbûn mei in router dy't de Multi-WAN-funksje stipet. Dit kin OpenWRT wêze mei it mwan3-pakket, mikrotik, ubiquiti, of elke oare húshâldrouter, om't sa'n opsje net mear ûngewoan is.

Om de situaasje te simulearjen, litte wy ús foarstelle dat de providers ús de folgjende adressen joegen:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Dat is, ferbining mei in tsjinner op ôfstân example.com Troch elk fan 'e oanbieders sil de tsjinner op ôfstân trije ûnôfhinklike boarne IP-kliïnten sjen. Balansearjen kinne jo de lading ferdielen oer kanalen en se alle trije tagelyk brûke. Foar ienfâld, lit ús yntinke dat wy ferdiele de lading gelyk tusken alle kanalen. As gefolch, as in klant in side iepenet mei trije ôfbyldings, downloadt hy elke ôfbylding fia in aparte provider. Op de side side liket it op ferbiningen fan trije ferskillende IP's.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
By it balansearjen op it ferbiningsnivo giet elke TCP-ferbining troch in aparte provider.

Dizze balânsmodus soarget faak foar problemen foar brûkers. Bygelyks, in protte siden bine koekjes en tokens strikt oan it IP-adres fan 'e kliïnt, en as it ynienen feroaret, wurdt it fersyk ôfwiisd of de kliïnt wurdt útlogd fan' e side. Dit wurdt faak reprodusearre yn kliïnt-banksystemen en oare siden mei strikte regels foar brûkerssesje. Hjir is in ienfâldich yllustratyf foarbyld: muzykbestannen op VK.com binne allinich beskikber mei in jildige sesjekaai, dy't ferbûn is oan in IP, en kliïnten dy't sa'n balâns brûke, spylje faaks gjin audio om't it fersyk net troch de provider gie de sesje is bûn.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
By it downloaden fan torrents somt balânsjen fan ferbiningsnivo de bânbreedte fan alle kanalen op

Mei dizze balâns kinne jo de gearfetting fan 'e snelheid fan it ynternetkanaal krije by it brûken fan meardere ferbiningen. Bygelyks, as elk fan 'e trije providers in snelheid hat fan 100 Megabits, dan krije wy by it downloaden fan torrents 300 Megabits. Om't in torrent in protte ferbiningen iepenet, dy't ferdield binne ûnder alle oanbieders en úteinlik it heule kanaal brûke.

It is wichtich om te begripen dat ien inkele TCP-ferbining altyd troch mar ien provider sil gean. Dat is, as wy ien grut bestân downloade fia HTTP, dan sil dizze ferbining makke wurde fia ien fan 'e providers, en as de ferbining mei dizze provider ferbrutsen is, sil de download ek brekke.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
Ien ferbining sil altyd mar ien ynternetkanaal brûke

Dit jildt ek foar fideo-útstjoerings. As jo ​​​​streaming fideo útstjoere nei in soarte fan betingst Twitch, dan sil balânsjen op it nivo fan IP-ferbiningen gjin bepaald foardiel leverje, om't de fideostream binnen ien IP-ferbining sil wurde útstjoerd. Yn dit gefal, as de WAN 3-provider problemen begjint te hawwen mei kommunikaasje, lykas pakketferlies of fermindere snelheid, dan kinne jo net direkt nei in oare provider wikselje. De útstjoering sil stoppe wurde moatte en opnij ferbûn wurde.

Echte kanaal gearfetting

Echte kanaalsumming makket it mooglik om ien ferbining te rinnen nei in betingst Twitch troch alle oanbieders tagelyk op sa'n manier dat as ien fan 'e oanbieders brekt, de ferbining net ûnderbrutsen wurde. Dit is in ferrassend lestich probleem dat noch altyd gjin optimale oplossing hat. In protte minsken witte net iens dat dit mooglik is!

Fan 'e foarige yllustraasjes betinke wy dat de betingsten Twitch-tsjinner in fideostream fan ús kin ûntfange fan mar ien boarne IP-adres, wat betsjut dat it altyd konstant wêze moat foar ús, nettsjinsteande hokker providers fallen binne en hokker wurkje. Om dit te berikken hawwe wy in optelserver nedich dy't al ús ferbiningen sil beëinigje en se yn ien kombinearje.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
De optelserver sammelet alle kanalen yn ien tunnel. Alle ferbiningen komme fanút it gearfette tsjinneradres

Yn dit skema wurde alle providers brûkt, en it útskeakeljen fan ien fan har sil gjin ferlies fan kommunikaasje mei de Twitch-tsjinner feroarsaakje. Yn essinsje is dit in spesjale VPN-tunnel, ûnder de kap wêrfan d'r ferskate ynternetkanalen tagelyk binne. De wichtichste taak fan sa'n skema is te krijen it heechste kwaliteit kommunikaasje kanaal. As ien fan 'e providers begjint te hawwen problemen, ferlies fan pakketten, ferhege fertragingen, dan soe dit gjin ynfloed hawwe op de kwaliteit fan kommunikaasje op ien of oare manier, om't de lading automatysk ferdield wurdt oer oare, bettere kanalen dy't beskikber binne.

Kommersjele oplossings

Dit probleem hat lang dejingen dy't live-eveneminten útstjoere en gjin tagong hawwe ta ynternet fan hege kwaliteit. Foar sokke taken binne d'r ferskate kommersjele oplossingen, bygelyks it bedriuw Teradek makket sokke meunsterlike routers wêryn pakken fan USB-modems wurde ynfoege:

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
Router foar fideo-útstjoerings mei kanaal optelfunksje

Sokke apparaten hawwe normaal in ynboude mooglikheid om fideosinjalen fia HDMI of SDI te fangen. Tegearre mei de router wurdt in abonnemint ferkocht op 'e tsjinst foar it opsomjen fan kanalen, lykas it ferwurkjen fan de fideostream, it transkodearjen en it fierder trochjaan. De priis fan sokke apparaten begjint fan $ 2k mei in set modems, plus in apart abonnemint op 'e tsjinst.

Soms liket it nochal eng:

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

OpenMPTCPRouter ynstelle

Protokol MP-TCP (MultiPath TCP) waard útfûn om te ferbinen fia ferskate kanalen tagelyk. Bygelyks syn stipet iOS en kin tagelyk ferbine mei in tsjinner op ôfstân fia WiFi en fia in sellulêr netwurk. It is wichtich om te begripen dat dit net twa aparte TCP-ferbiningen binne, mar ien ferbining dy't tagelyk oer twa kanalen oprjochte is. Om dit te wurkjen moat de tsjinner op ôfstân ek MPTCP stypje.

OpenMPTCPRouter is in iepen boarne software-routerprojekt dat wirklike gearfetting fan kanalen mooglik makket. De skriuwers stelle dat it projekt is yn alfa ferzje status, mar it kin al brûkt wurde. It bestiet út twa dielen - in opsommingsserver, dy't op it ynternet leit en in router, wêrmei ferskate ynternetproviders en de kliïntapparaten sels binne ferbûn: kompjûters, tillefoans. De oanpaste router kin in Raspberry Pi wêze, guon WiFi-routers, of in gewoane kompjûter. D'r binne klearmakke gearkomsten foar ferskate platfoarms, wat heul handich is.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
Hoe OpenMPTCPRouter wurket

It opsetten fan in gearfetting tsjinner

De gearfetting tsjinner leit op it ynternet en beëiniget ferbinings fan alle kanalen fan de client router yn ien. It IP-adres fan dizze tsjinner sil it eksterne adres wêze as jo tagong krije ta it ynternet fia OpenMPTCPRouter.

Foar dizze taak sille wy in VPS-tsjinner brûke op Debian 10.

Easken foar de optelserver:

  • MPTCP wurket net op OpenVZ-virtualisaasje
  • It soe mooglik wêze moatte om jo eigen Linux kernel te ynstallearjen

De tsjinner wurdt ynset troch ien kommando út te fieren. It skript sil in kernel ynstallearje mei mptcp-stipe en alle nedige pakketten. Ynstallaasjeskripts binne beskikber foar Ubuntu en Debian.

wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh

It resultaat fan in suksesfolle serverynstallaasje.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

Wy bewarje de wachtwurden, wy sille se nedich hawwe om de client-router te konfigurearjen, en opnij opstarte. It is wichtich om te hâlden dat nei ynstallaasje SSH beskikber sil wêze op poarte 65222. Nei it opnij opstarten moatte wy derfoar soargje dat wy mei de nije kernel booten

uname -a 
Linux test-server.local 4.19.67-mptcp

Wy sjogge de ynskripsje mptcp neist it ferzjenûmer, wat betsjut dat de kernel goed ynstalleare is.

It ynstellen fan in client router

op projekt webside ready-made builds binne beskikber foar guon platfoarms, lykas Raspberry Pi, Banana Pi, Lynksys routers en firtuele masines.
Dit diel fan openmptcprouter is basearre op OpenWRT, mei LuCI as ynterface, bekend foar elkenien dy't oait OpenWRT tsjinkaam. De distribúsje waacht sawat 50MB!

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

As testbank sil ik in Raspberry Pi brûke en ferskate USB-modems mei ferskate operators: MTS en Megafon. Ik tink net dat ik hoech te fertellen hoe't jo in ôfbylding skriuwe nei in SD-kaart.

Yn it earstoan is de Ethernet-poarte yn 'e Raspberry Pi konfigureare as lan mei in statysk IP-adres 192.168.100.1. Om foar te kommen dat ik mei draden op it buro krûpe, ferbûn ik de Raspberry Pi oan in WiFi-tagongspunt en set de WiFi-adapter fan 'e kompjûter op in statysk adres 192.168.100.2. De DHCP-tsjinner is standert net ynskeakele, dus jo moatte statyske adressen brûke.

No kinne jo oanmelde by de webynterface 192.168.100.1

As jo ​​​​de earste kear ynlogge, sil it systeem jo freegje om in root-wachtwurd yn te stellen; SSH sil beskikber wêze mei itselde wachtwurd.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter
Yn 'e LAN-ynstellingen kinne jo it winske subnet ynstelle en de DHCP-tsjinner ynskeakelje.

Ik brûk modems dy't wurde definiearre as USB Ethernet Schnittstellen mei in aparte DHCP tsjinner, dus dit fereaske ynstallaasje ekstra pakketten. De proseduere is identyk oan it ynstellen fan modems yn gewoane OpenWRT, dus ik sil it hjir net dekke.

Folgjende moatte jo de WAN-ynterfaces konfigurearje. Yn it earstoan makke it systeem twa firtuele ynterfaces WAN1 en WAN2. Se moatte in fysyk apparaat wurde tawiisd, yn myn gefal binne dit de nammen fan 'e USB-modem-ynterfaces.

Om betizing mei ynterface-nammen te foarkommen, advisearje ik dmesg-berjochten te besjen by it ferbinen fia SSH.

Sûnt myn modems sels fungearje as routers, en sels hawwe in DHCP tsjinner, Ik moast feroarje de ynstellings fan harren ynterne netwurk berik en útskeakelje de DHCP tsjinner, want yn earste ynstânsje beide modems útjaan adressen fan itselde netwurk, en dit soarget foar in konflikt.

OpenMPTCPRouter fereasket dat de WAN-ynterface-adressen statysk binne, dus wy komme mei subnets foar de modems en konfigurearje se yn it systeem → openmptcprouter → ynterface-ynstellingsmenu. Hjir moatte jo it IP-adres en de serverkaai opjaan dy't krigen binne tidens de ynstallaasje fan 'e gearfettingtsjinner.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

As de opset suksesfol is, moat in ferlykbere foto ferskine op 'e statusside. It kin sjoen wurde dat de router de optelserver koe berikke en beide kanalen wurkje normaal.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

De standert modus is shadowsocks + mptcp. Dit is in proxy dy't alle ferbiningen yn himsels wraps. It is yn earste ynstânsje konfigureare om allinich TCP te ferwurkjen, mar UDP kin ek ynskeakele wurde.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

As d'r gjin flaters binne op 'e statusside, kin de opset as folslein beskôge wurde.
By guon providers kin in situaasje ûntstean as de mptcp-flagge by it ferkearspaad ôfsnien wurdt, dan sil de folgjende flater ferskine:

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

Yn dit gefal kinne jo in oare bestjoeringsmodus brûke, sûnder MPTCP te brûken, mear oer dit hjir.

konklúzje

It OpenMPTCPRouter-projekt is heul ynteressant en wichtich, om't it miskien de ienige iepen wiidweidige oplossing is foar it probleem fan 'e kanaalsummearring. Al it oare is of strak sletten en proprietêr, of gewoan aparte modules dy't in gewoane persoan net kin begripe. Op it hjoeddeiske stadium fan ûntwikkeling is it projekt noch altyd frij rûch, de dokumintaasje is ekstreem min, in protte dingen binne gewoan net beskreaun. Mar tagelyk wurket it noch. Ik hoopje dat it sil trochgean te ûntwikkeljen, en wy sille krije húshâldlike routers dat sil by steat wêze om goed kombinearje kanalen út it fak.

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

Folgje ús ûntwikkelder op Instagram

Echte gearfetting fan ynternetkanalen - OpenMPTCPRouter

Boarne: www.habr.com

Add a comment