Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

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 LACP un summÄ“Å”ana L2 lÄ«menÄ«, cita kanālu apkopojuma nepastāv. Es bieži esmu dzirdējis, ka tas parasti nav iespējams no cilvēkiem, kas strādā telekomunikāciju jomā. Tāpēc mēģināsim izprast populāros mÄ«tus.

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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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ā.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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:

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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:

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

OpenMPTCPRuter iestatīŔana

Protokols MP-TCP (MultiPath TCP) tika izgudrots, lai vienlaikus varētu izveidot savienojumu pa vairākiem kanāliem. Piemēram, viņa atbalsta iOS un vienlaikus var izveidot savienojumu ar attālo serveri, izmantojot WiFi un mobilo tÄ«klu. Ir svarÄ«gi saprast, ka tie nav divi atseviŔķi TCP savienojumi, bet gan viens savienojums, kas izveidots pa diviem kanāliem vienlaikus. Lai tas darbotos, attālajam serverim ir jāatbalsta arÄ« MPTCP.

Atveriet MPTCPRuter ir atvērtā pirmkoda programmatÅ«ras marÅ”rutētāja projekts, kas nodroÅ”ina patiesu kanālu kopsavilkumu. Autori norāda, ka projekts ir alfa versijas statusā, taču to jau var izmantot. Tas sastāv no divām daļām ā€“ summÄ“Å”anas servera, kas atrodas internetā un marÅ”rutētāja, kuram ir pieslēgti vairāki interneta pakalpojumu sniedzēji un paÅ”as klienta ierÄ«ces: datori, telefoni. Pielāgotais marÅ”rutētājs var bÅ«t Raspberry Pi, daži WiFi marÅ”rutētāji vai parasts dators. Ir jau gatavi komplekti dažādām platformām, kas ir ļoti ērti.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

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 projekta vietne Dažām platformām ir pieejamas gatavas versijas, piemēram, Raspberry Pi, Banana Pi, Lynksys marÅ”rutētāji un virtuālās maŔīnas.
Šī 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!

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

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ē 192.168.100.1

Piesakoties pirmo reizi, sistēma lÅ«gs iestatÄ«t root paroli; SSH bÅ«s pieejams ar to paÅ”u paroli.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter
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 papildu paketes. ProcedÅ«ra ir identiska modemu iestatÄ«Å”anai parastajā OpenWRT, tāpēc es to Å”eit neaplÅ«koÅ”u.

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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

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:

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

Šajā gadījumā varat izmantot citu darbības režīmu, neizmantojot MPTCP, vairāk par to Ŕeit.

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.

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

Sekojiet mūsu izstrādātājam Instagram

Patiess interneta kanālu apkopojums ā€” OpenMPTCPRuter

Avots: www.habr.com

Pievieno komentāru