Vai ir iespÄjams apvienot vairÄkus interneta kanÄlus vienÄ? Par Å”o tÄmu ir daudz nepareizu priekÅ”statu un mÄ«tu; pat pieredzÄjuÅ”i tÄ«kla inženieri bieži nezina, ka tas ir iespÄjams. VairumÄ gadÄ«jumu saiÅ”u apkopoÅ”anu kļūdaini sauc par balansÄÅ”anu NAT lÄ«menÄ« vai kļūmjpÄrlÄci. Bet reÄla summÄÅ”ana ļauj vienÄ TCP savienojumÄ vienlaikus pa visiem interneta kanÄliem, piemÄram, video apraide, lai, ja kÄds no interneta kanÄliem tiktu pÄrtraukts, apraide netiktu pÄrtraukta.
Ir dÄrgi komerciÄli risinÄjumi video pÄrraidÄm, taÄu Å”Ädas ierÄ«ces maksÄ daudzus kilobakus. RakstÄ ir aprakstÄ«ts, kÄ konfigurÄt bezmaksas atvÄrtÄ koda OpenMPTCPRuter pakotni, un apskatÄ«ti populÄri mÄ«ti par kanÄlu summÄÅ”anu.
MÄ«ti par kanÄlu summÄÅ”anu
Ir daudzi mÄjas marÅ”rutÄtÄji, kas atbalsta Multi-WAN funkciju. Dažreiz ražotÄji Å”o kanÄlu sauc par summÄÅ”anu, kas nav pilnÄ«gi taisnÄ«ba. Daudzi tÄ«klu veidotÄji uzskata, ka papildus
BalansÄÅ”ana IP savienojuma lÄ«menÄ«
Å is ir vispieejamÄkais un populÄrÄkais veids, kÄ vienlaikus izmantot vairÄkus interneta kanÄlus. VienkÄrŔības labad iedomÄsimies, ka jums ir trÄ«s interneta pakalpojumu sniedzÄji, no kuriem katrs sniedz reÄlu IP adresi no sava tÄ«kla. Visi Å”ie pakalpojumu sniedzÄji ir savienoti ar marÅ”rutÄtÄju, kas atbalsta funkciju Multi-WAN. Tas varÄtu bÅ«t OpenWRT ar mwan3 pakotni, mikrotik, ubiquiti vai jebkuru citu mÄjsaimniecÄ«bas marÅ”rutÄtÄju, jo Å”Äda iespÄja vairs nav nekas neparasts.
Lai simulÄtu situÄciju, iedomÄsimies, ka pakalpojumu sniedzÄji mums deva Å”Ädas adreses:
WAN1 ā 11.11.11.11
WAN2 ā 22.22.22.22
WAN2 ā 33.33.33.33
Tas ir, savienojuma izveide ar attÄlo serveri example.com Izmantojot katru pakalpojumu sniedzÄju, attÄlais serveris redzÄs trÄ«s neatkarÄ«gus avota IP klientus. BalansÄÅ”ana ļauj sadalÄ«t slodzi pa kanÄliem un izmantot visus trÄ«s vienlaikus. VienkÄrŔības labad iedomÄsimies, ka mÄs sadalÄm slodzi vienÄdi starp visiem kanÄliem. TÄ rezultÄtÄ, kad klients atver vietni ar trim attÄliem, viÅÅ” katru attÄlu lejupielÄdÄ, izmantojot atseviŔķu pakalpojumu sniedzÄju. Vietnes pusÄ tas izskatÄs kÄ savienojumi no trim dažÄdiem IP.
BalansÄjot savienojuma lÄ«menÄ«, katrs TCP savienojums iet caur atseviŔķu pakalpojumu sniedzÄju.
Å is balansÄÅ”anas režīms lietotÄjiem bieži rada problÄmas. PiemÄram, daudzas vietnes sÄ«kfailus un marÄ·ierus stingri saista ar klienta IP adresi, un, ja tÄ pÄkÅ”Åi mainÄs, pieprasÄ«jums tiek noraidÄ«ts vai klients tiek izrakstÄ«ts no vietnes. To bieži atkÄrto klientu bankas sistÄmÄs un citÄs vietnÄs ar stingriem lietotÄja sesijas noteikumiem. Å eit ir vienkÄrÅ”s ilustratÄ«vs piemÄrs: mÅ«zikas faili vietnÄ VK.com ir pieejami tikai ar derÄ«gu sesijas atslÄgu, kas ir saistÄ«ta ar IP, un klienti, kuri izmanto Å”Ädu balansÄÅ”anu, bieži neatskaÅo audio, jo pieprasÄ«jums netika nosÅ«tÄ«ts caur pakalpojumu sniedzÄju, kuram sesija ir neizŔķirta.
LejupielÄdÄjot torrentus, savienojuma lÄ«meÅa balansÄÅ”ana summÄ visu kanÄlu joslas platumu
Å Ä« balansÄÅ”ana ļauj iegÅ«t interneta kanÄla Ätruma summÄÅ”anu, izmantojot vairÄkus savienojumus. PiemÄram, ja katram no trim pakalpojumu sniedzÄjiem ir 100 megabitu Ätrums, tad, lejupielÄdÄjot torrentus, mÄs iegÅ«sim 300 megabitus. TÄ kÄ torrents atver daudzus savienojumus, kas tiek izplatÄ«ti starp visiem pakalpojumu sniedzÄjiem un galu galÄ izmanto visu kanÄlu.
Ir svarÄ«gi saprast, ka viens TCP savienojums vienmÄr darbosies tikai caur vienu pakalpojumu sniedzÄju. Tas ir, ja mÄs lejupielÄdÄjam vienu lielu failu, izmantojot HTTP, tad Å”is savienojums tiks izveidots caur vienu no pakalpojumu sniedzÄjiem, un, ja savienojums ar Å”o pakalpojumu sniedzÄju tiek pÄrtraukts, lejupielÄde arÄ« pÄrtrÅ«ks.
Viens savienojums vienmÄr izmantos tikai vienu interneta kanÄlu
Tas attiecas arÄ« uz video pÄrraidÄm. Ja straumÄjat video uz kÄdu nosacÄ«tu Twitch, tad balansÄÅ”ana IP savienojumu lÄ«menÄ« nekÄdu Ä«paÅ”u labumu nedos, jo video straume tiks pÄrraidÄ«ta viena IP savienojuma ietvaros. Å ÄdÄ gadÄ«jumÄ, ja WAN 3 nodroÅ”inÄtÄjam sÄk rasties problÄmas ar komunikÄciju, piemÄram, pakeÅ”u zudums vai samazinÄts Ätrums, jÅ«s nevarÄsit uzreiz pÄrslÄgties uz citu pakalpojumu sniedzÄju. PÄrraide bÅ«s jÄpÄrtrauc un atkal jÄpievieno.
Patiesa kanÄlu summÄÅ”ana
ReÄla kanÄlu summÄÅ”ana ļauj palaist vienu savienojumu ar nosacÄ«to Twitch caur visiem pakalpojumu sniedzÄjiem uzreiz tÄ, ka, ja kÄds no pakalpojumu sniedzÄjiem sabojÄjas, savienojums netiks pÄrtraukts. Å Ä« ir pÄrsteidzoÅ”i sarežģīta problÄma, kurai joprojÄm nav optimÄla risinÄjuma. Daudzi cilvÄki pat nezina, ka tas ir iespÄjams!
No iepriekÅ”ÄjÄm ilustrÄcijÄm mÄs atceramies, ka nosacÄ«tais Twitch serveris var saÅemt video straumi no mums tikai no vienas avota IP adreses, kas nozÄ«mÄ, ka tai mums vienmÄr ir jÄbÅ«t nemainÄ«gai neatkarÄ«gi no tÄ, kuri pakalpojumu sniedzÄji ir atkrituÅ”i un kuri darbojas. Lai to panÄktu, mums ir nepiecieÅ”ams summÄÅ”anas serveris, kas pÄrtrauks visus mÅ«su savienojumus un apvienos tos vienÄ.
SummÄÅ”anas serveris visus kanÄlus apkopo vienÄ tunelÄ«. Visi savienojumi rodas no summÄÅ”anas servera adreses
Å ajÄ shÄmÄ tiek izmantoti visi pakalpojumu sniedzÄji, un jebkura no tiem atspÄjoÅ”ana neizraisÄ«s sakaru zudumu ar Twitch serveri. BÅ«tÄ«bÄ Å”is ir Ä«paÅ”s VPN tunelis, zem kura pÄrsega vienlaikus atrodas vairÄki interneta kanÄli. Å Ädas shÄmas galvenais uzdevums ir iegÅ«t visaugstÄkÄs kvalitÄtes sakaru kanÄlu. Ja kÄdam no pakalpojumu sniedzÄjiem sÄkas problÄmas, pakeÅ”u zudumi, palielinÄti kavÄjumi, tad tas nekÄdÄ veidÄ nedrÄ«kst ietekmÄt sakaru kvalitÄti, jo slodze automÄtiski tiks sadalÄ«ta pa citiem, labÄkiem pieejamajiem kanÄliem.
KomerciÄlie risinÄjumi
Å Ä« problÄma jau sen satrauc tos, kuri pÄrraida notikumus tieÅ”raidÄ un kuriem nav piekļuves augstas kvalitÄtes internetam. Å Ädiem uzdevumiem ir vairÄki komerciÄli risinÄjumi, piemÄram, uzÅÄmums Teradek izgatavo tÄdus briesmÄ«gus marÅ”rutÄtÄjus, kuros tiek ievietoti USB modemu pakotnes:
MarÅ”rutÄtÄjs video pÄrraidÄm ar kanÄlu summÄÅ”anas funkciju
Å ÄdÄm ierÄ«cÄm parasti ir iebÅ«vÄta iespÄja uztvert video signÄlus, izmantojot HDMI vai SDI. KopÄ ar marÅ”rutÄtÄju tiek pÄrdots kanÄlu summÄÅ”anas pakalpojuma abonements, kÄ arÄ« video straumes apstrÄde, pÄrkodÄÅ”ana un tÄlÄka pÄrraide. Å Ädu ierÄ«Äu cena sÄkas no USD 2k ar modemu komplektu, kÄ arÄ« atseviŔķu pakalpojuma abonementu.
Dažreiz tas izskatÄs diezgan biedÄjoÅ”i:
OpenMPTCPRuter iestatīŔana
Protokols
KÄ darbojas OpenMPTCPRuter
Kopsavilkuma servera iestatīŔana
SummÄÅ”anas serveris atrodas internetÄ un pÄrtrauc savienojumus no visiem klienta marÅ”rutÄtÄja kanÄliem vienÄ. Å Ä« servera IP adrese bÅ«s ÄrÄjÄ adrese, piekļūstot internetam, izmantojot OpenMPTCPRuter.
Å im uzdevumam mÄs izmantosim VPS serveri operÄtÄjsistÄmÄ Debian 10.
PrasÄ«bas summÄÅ”anas serverim:
- MPTCP nedarbojas OpenVZ virtualizÄcijÄ
- JÄbÅ«t iespÄjai instalÄt savu Linux kodolu
Serveris tiek izvietots, izpildot vienu komandu. Skripts instalÄs kodolu ar mptcp atbalstu un visas nepiecieÅ”amÄs pakotnes. InstalÄcijas skripti ir pieejami Ubuntu un Debian.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
VeiksmÄ«gas servera instalÄÅ”anas rezultÄts.
MÄs saglabÄjam paroles, mums tÄs bÅ«s nepiecieÅ”amas, lai konfigurÄtu klienta marÅ”rutÄtÄju un atsÄknÄtu. Ir svarÄ«gi paturÄt prÄtÄ, ka pÄc instalÄÅ”anas SSH bÅ«s pieejams portÄ 65222. PÄc pÄrstartÄÅ”anas mums ir jÄpÄrliecinÄs, ka mÄs sÄknÄjÄm ar jauno kodolu.
uname -a
Linux test-server.local 4.19.67-mptcp
MÄs redzam uzrakstu mptcp blakus versijas numuram, kas nozÄ«mÄ, ka kodols tika instalÄts pareizi.
Klienta marÅ”rutÄtÄja iestatÄ«Å”ana
uz
Å Ä« openmptcprouter daļa ir balstÄ«ta uz OpenWRT, izmantojot LuCI kÄ interfeisu, kas ir pazÄ«stams ikvienam, kurÅ” kÄdreiz ir saskÄries ar OpenWRT. IzplatÄ«jums sver aptuveni 50 MB!
KÄ testa stendu izmantoÅ”u Raspberry Pi un vairÄkus USB modemus ar dažÄdiem operatoriem: MTS un Megafon. Es nedomÄju, ka man jums jÄsaka, kÄ ierakstÄ«t attÄlu SD kartÄ.
SÄkotnÄji Raspberry Pi Ethernet ports ir konfigurÄts kÄ LAN ar statisku IP adresi 192.168.100.1. Lai nekratÄ«tos ar vadiem uz galda, Raspberry Pi pievienoju WiFi piekļuves punktam un iestatÄ«ju datora WiFi adapteri uz statisku adresi. 192.168.100.2. DHCP serveris pÄc noklusÄjuma nav iespÄjots, tÄpÄc ir jÄizmanto statiskas adreses.
Tagad varat pieteikties tÄ«mekļa saskarnÄ
Piesakoties pirmo reizi, sistÄma lÅ«gs iestatÄ«t root paroli; SSH bÅ«s pieejams ar to paÅ”u paroli.
LAN iestatÄ«jumos varat iestatÄ«t vajadzÄ«go apakÅ”tÄ«klu un iespÄjot DHCP serveri.
Es izmantoju modemus, kas ir definÄti kÄ USB Ethernet saskarnes ar atseviŔķu DHCP serveri, tÄpÄc Ŕī instalÄÅ”ana bija nepiecieÅ”ama
TÄlÄk jums jÄkonfigurÄ WAN saskarnes. SÄkotnÄji sistÄma izveidoja divas virtuÄlÄs saskarnes WAN1 un WAN2. ViÅiem ir jÄpieŔķir fiziska ierÄ«ce, manÄ gadÄ«jumÄ tie ir USB modema saskarÅu nosaukumi.
Lai izvairÄ«tos no sajaukÅ”anas ar saskarÅu nosaukumiem, iesaku skatÄ«t dmesg ziÅojumus, kad tiek izveidots savienojums, izmantojot SSH.
TÄ kÄ mani modemi paÅ”i darbojas kÄ marÅ”rutÄtÄji un paÅ”iem ir DHCP serveris, nÄcÄs mainÄ«t to iekÅ”Äjo tÄ«klu diapazonu iestatÄ«jumus un atspÄjot DHCP serveri, jo sÄkotnÄji abi modemi izdod adreses no viena tÄ«kla un tas rada konfliktu.
OpenMPTCPRuter pieprasa, lai WAN interfeisa adreses bÅ«tu statiskas, tÄpÄc mÄs izstrÄdÄjam modemu apakÅ”tÄ«klus un konfigurÄjam tos sistÄmas ā openmptcprouter ā interfeisa iestatÄ«jumu izvÄlnÄ. Å eit jÄnorÄda summÄÅ”anas servera instalÄÅ”anas laikÄ iegÅ«tÄ IP adrese un servera atslÄga.
Ja iestatÄ«Å”ana ir veiksmÄ«ga, statusa lapÄ jÄparÄdÄs lÄ«dzÄ«gam attÄlam. Redzams, ka rÅ«teris spÄjis sasniegt summÄÅ”anas serveri un abi kanÄli strÄdÄ normÄli.
NoklusÄjuma režīms ir shadowsocks + mptcp. Å is ir starpniekserveris, kas sevÄ« ietver visus savienojumus. SÄkotnÄji tas ir konfigurÄts, lai apstrÄdÄtu tikai TCP, taÄu var iespÄjot arÄ« UDP.
Ja statusa lapÄ nav kļūdu, iestatÄ«Å”anu var uzskatÄ«t par pabeigtu.
Ar dažiem pakalpojumu sniedzÄjiem var rasties situÄcija, kad satiksmes ceÄ¼Ä tiek nogriezts mptcp karogs, tad parÄdÄ«sies Å”Äda kļūda:
Å ajÄ gadÄ«jumÄ varat izmantot citu darbÄ«bas režīmu, neizmantojot MPTCP, vairÄk par to
SecinÄjums
OpenMPTCPRuter projekts ir ļoti interesants un svarÄ«gs, jo tas, iespÄjams, ir vienÄ«gais atvÄrtais visaptveroÅ”ais risinÄjums kanÄlu summÄÅ”anas problÄmai. Viss pÄrÄjais ir vai nu cieÅ”i noslÄgts un patentÄts, vai vienkÄrÅ”i atseviŔķi moduļi, ko parasts cilvÄks nevar saprast. PaÅ”reizÄjÄ izstrÄdes stadijÄ projekts vÄl ir diezgan jÄls, dokumentÄcija ir ÄrkÄrtÄ«gi slikta, daudzas lietas vienkÄrÅ”i nav aprakstÄ«tas. Bet tajÄ paÅ”Ä laikÄ tas joprojÄm darbojas. Ceru, ka tas turpinÄs attÄ«stÄ«ties, un mÄs iegÅ«sim mÄjsaimniecÄ«bas marÅ”rutÄtÄjus, kas spÄs pareizi apvienot kanÄlus no kastes.
Sekojiet mÅ«su izstrÄdÄtÄjam Instagram
Avots: www.habr.com