Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

A mund të bashkohen disa kanale interneti në një? Ka shumë keqkuptime dhe mite rreth kësaj teme, madje edhe inxhinierët e rrjetit me përvojë shpesh nuk e dinë që kjo është e mundur. Në shumicën e rasteve, kombinimi i kanaleve gabimisht quhet balancim në nivelin NAT ose failover. Por kombinimi i vërtetë lejon që të fusë një lidhje të vetme TCP në të njëjtën kohë në të gjitha kanalet e internetit, për shembull, një transmetim video në mënyrë që në rast të ndërprerjes së ndonjërit nga kanalet e internetit, transmetimi të mos ndërpritet.

Ekzistojnë zgjidhje komerciale të shtrenjta për transmetimet video, por këto pajisje kushtojnë shumë mijëra dollarë. Ky artikull përshkruan konfigurimin e paketës falas dhe të hapur OpenMPTCPRouter dhe shqyrton mite të njohura rreth kombinimit të kanaleve.

Mitët rreth kombinimit të kanaleve

Ka shumë routerë të zakonshëm që mbështesin funksionin Multi-WAN. Ndonjëherë prodhuesit e quajnë këtë kombinim të kanaleve, që nuk është saktësisht e vërtetë. Shumë specialistë të rrjetit besojnë se përveç LACP dhe kombinimit në nivelin L2, nuk ekziston ndonjë bashkim tjetër i kanaleve. Kam dëgjuar shpesh se kjo është krejtësisht e pamundur nga njerëz që punojnë në telekomunikacione. Prandaj, le të përpiqemi të kuptojmë mitet e njohura.

Balancimi në nivelin e lidhjeve IP

Ky është mënyra më e aksesueshme dhe më të njohur për të shfrytëzuar disa kanale interneti njëkohësisht. Për thjeshtësi, imagjinoni se keni tre ofrues interneti, secili ju jep një adresë IP reale nga rrjeti i tyre. Të gjithë këta ofrues janë të lidhur në një router me funksionin Multi-WAN. Kjo mund të jetë OpenWRT me paketën mwan3, mikrotik, ubiquiti, ose ndonjë router tjetër të zakonshëm, pasi tani një opsion i tillë nuk është më i rrallë.

Për të modeluar situatën, imagjinoni se ofruesit na dhanë adresat e tilla:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Pra, duke u lidhur me një server të largët example.com përmes çdo ofruesi, serveri i largët do të shohë tre IP të pavarur të klientit. Balancimi lejon ndarjen e ngarkesës përmes kanaleve dhe përdorimin e të treve njëkohësisht. Për thjeshtësi, le të imagjinojmë se ne po ndajmë ngarkesën njësoj nëpër të gjitha kanalet. Si rezultat, kur klienti hap një faqe, ku ndryshe janë tre pamje, ai ngarkon secilën pamje përmes një ofruesi të veçantë. Në anën e faqes, kjo duket si lidhje nga tre IP të ndryshme.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Me balancimin në nivelin e lidhjeve, çdo lidhje TCP kalon përmes një ofruesi të veçantë.

Ky mod i balancimit shpesh sjell probleme për përdoruesit. Për shembull, shumë faqe e lidhin ngushtësisht cookie dhe tokenët me IP-në e klientit, dhe nëse papritmas ndryshohet, kërkesa refuzohet ose klienti shkëputet nga faqja. Kjo shpesh ndodh në sistemet e bankës për klientë dhe në faqet e tjera me rregulla të rrepta mbi seancat e përdoruesve. Ja një shembull i thjeshtë ilustrues: skedarët muzikorë në VK.com janë të aksesueshëm vetëm me një çelës të vlefshëm seance, i cili është i lidhur me IP-në, dhe te klientët që përdorin një balancim të tillë, shpesh nuk luajnë audio, për shkak se kërkesa ka shkuar jo përmes atij ofruesi me të cilin është lidhur seanca.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Me ngarkimin e torrentëve, balancimi në nivelin e lidhjeve kombinon kapacitetin e të gjithë kanaleve.

Ky balancim lejon grumbullimin e shpejtësisë së internetit, duke përdorur shumë lidhje. Për shembull, nëse çdo ofrues ka një shpejtësi prej 100 Megabit, atëherë me ngarkimin e torrentëve ne do të marrim 300 Megabit. Sepse torrentet hapin shumë lidhje, të cilat shpërndahen midis të gjithë ofruesve dhe në fund shfrytëzojnë të gjithë kanalin.

ËshtĂ« e rĂ«ndĂ«sishme tĂ« kuptojmĂ« se njĂ« lidhje TCP gjithmonĂ« do tĂ« kalojĂ« vetĂ«m pĂ«rmes njĂ« ofruesi. KĂ«shtu qĂ«, nĂ«se ne po shkarkojmĂ« njĂ« skedar tĂ« madh pĂ«rmes HTTP, kjo lidhje do tĂ« realizohet pĂ«rmes njĂ«rit prej ofruesve, dhe nĂ«se lidhja me atĂ« ofrues ndĂ«rpritet, atĂ«herĂ« shkarkimi do tĂ« dĂ«shtojĂ«.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Një lidhje gjithmonë do të përdorë vetëm një kanal të internetit

Kjo është e vërtetë edhe për transmetimet video. Nëse ju transmetoni video të drejtpërdrejta në një platformë si Twitch, balancimi në nivelin e lidhjeve IP nuk do të ofrojë ndonjë përfitim të veçantë, pasi video-përmbajtja do të transmetohet brenda një lidhjeje IP. Në këtë rast, nëse ofruesi i WAN ka probleme me lidhjen, si humbje paketa ose ulje të shpejtësisë, nuk do të jeni në gjendje të kaloni menjëherë te një ofrues tjetër. Transmetimi do të duhet të ndalet dhe të rikonfigurohet nga e para.

Grupimi aktual i kanaleve

Grupimi real i kanaleve mundëson kalimin e një lidhjeje në platformën Twitch përmes të gjithë ofruesve, në mënyrë që, nëse ndonjëri prej ofruesve dështon, lidhja të mos ndërpritet. Kjo është një detyrë mjaft e komplikuar, e cila ende nuk ka një zgjidhje optimale. Shumë madje nuk e dinë se kjo është e mundur!

Siç e kujtojmë nga ilustrimet e mëparshme, një server hipotetik Twitch mund të pranojë nga ne video-përmbajtje vetëm nga një adresë IP burimore, prandaj ajo duhet të jetë gjithmonë e pandryshuar, pavarësisht se cilët ofrues na janë çaktivizuar dhe cilët funksionojnë. Për ta arritur këtë, do të na nevojitet një server grupues, i cili do të përfundojë të gjitha lidhjet tona dhe t'i bashkojë ato në një të vetme.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Serveri grupues agregon të gjitha kanalet në një tunel. Të gjitha lidhjet ndodhin nga adresa e serverit grupues.

Në këtë skemë përdoren të gjithë ofruesit dhe çaktivizimi i ndonjërit prej tyre nuk do të shkaktojë ndërprerjen e lidhjes me serverin Twitch. Në thelb, kjo është një tunel VPN i veçantë, nën të cilin ka disa kanale interneti. Objektivi kryesor i kësaj skeme është të sigurojë një kanal komunikimi sa më cilësor. Nëse në ndonjë ofrues nisin problemet, humbjet e paketa, rritja e vonesave, kjo nuk duhet të ndikojë fare në cilësinë e lidhjes, pasi ngarkesa automatikisht do të shpërndahet në kanalet e tjera më cilësore që janë në dispozitë.

Zgjidhjet komerciale

Kjo problem i ka shqetësuar prej kohësh ata që organizojnë transmetime të drejtpërdrejta të ngjarjeve dhe nuk kanë qasje në internet të cilësisë së lartë. Për këto detyra ekzistojnë disa zgjidhje komerciale, për shembull, kompania Teradek prodhon routera të tillë monstruozë, në të cilat inserohen grupe modemesh USB:

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Router për transmetimin e videove me funksionin e agregimit të kanaleve

NĂ« kĂ«to pajisje zakonisht Ă«shtĂ« e integruar mundĂ«sia e kapjen e sinjalit video pĂ«rmes HDMI ose SDI. BashkĂ« me routerin shitet njĂ« abonim pĂ«r shĂ«rbimin e agregimit tĂ« kanaleve, si dhe pĂ«r pĂ«rpunimin e videostokut, rikodimin e tij dhe ri-transmetimin mĂ« tej. Çmimi i kĂ«tyre pajisjeve fillon nga 2,000$ me komplekset e modemĂ«ve, plus abonim tĂ« veçantĂ« pĂ«r shĂ«rbimin.

Ndonjëherë kjo duket mjaft frikësuese:

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Konfigurojmë OpenMPTCPRouter

Protokolli MP-TCP (MultiPath TCP) u shpik pĂ«r mundĂ«sinĂ« e lidhjes pĂ«rmes shumĂ« kanaleve njĂ«herazi. PĂ«r shembull, ai pĂ«rkrah iOS dhe mund tĂ« lidhĂ« njĂ«kohĂ«sisht me njĂ« server tĂ« largĂ«t pĂ«rmes WiFi dhe pĂ«rmes rrjetit celular. ËshtĂ« e rĂ«ndĂ«sishme tĂ« kuptoni se kjo nuk Ă«shtĂ« dy lidhje TCP tĂ« veçanta, por nĂ« tĂ« vĂ«rtetĂ« njĂ« lidhje e vetme, e vendosur pĂ«rmes dy kanaleve. QĂ« kjo tĂ« funksionojĂ«, serveri i largĂ«t duhet tĂ« mbĂ«shtesĂ« gjithashtu MPTCP.

OpenMPTCPRouter është një projekt i hapur i router-it software, që lejon veritë për të vërtetë për të aggreguar kanale. Autorët thonë se projekti është në statusin e versionit alfa, por tashmë mund të përdoret. Ai përbëhet nga dy pjesë - serveri agregues, i cili vendoset në internet dhe router-i, në të cilin lidhen disa ofrues interneti dhe vetë pajisjet klientike: kompjuterët, telefonat. Si router përdorues mund të shërbejë Raspberry Pi, disa router WiFi ose një kompjuter të zakonshëm. Janë të gatshme ndërtimet për platforma të ndryshme, gjë që është shumë e përshtatshme.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Princi i punës së OpenMPTCPRouter

Konfigurimi i serverit agregues

Serveri agregues është vendosur në internet dhe përfundon lidhjet nga të gjitha kanalet e router-it klient në një. Adresa IP e këtij serveri do të jetë adresa eksternale kur del në internet përmes OpenMPTCPRouter.

Për këtë detyrë do të përdorim një server VPS në Debian 10.

Kërkesat për serverin agregues:

  • MPTCP nuk funksionon nĂ« virtualizimin OpenVZ
  • Duhet tĂ« ketĂ« mundĂ«sinĂ« pĂ«r tĂ« instaluar njĂ« kernel Linux tĂ« vetin

Serveri instalohet duke ekzekutuar një komandë. Skripti do të Instaloje kernel-in me mbështetje për mptcp dhe të gjitha paketat e nevojshme. Skriptet e instalimit janë të disponueshme për Ubuntu dhe Debian.

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

Rezultati i instalimit të suksesshëm të serverit.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

RuajmĂ« passwordet, do tĂ« na duhen pĂ«r konfigurimin e router-it tĂ« klientit dhe riluajmĂ«. ËshtĂ« e rĂ«ndĂ«sishme tĂ« kihet parasysh se pas instalimit, SSH do tĂ« jetĂ« i aksesueshĂ«m nĂ« portin 65222. Pas riluajtjes, duhet tĂ« sigurohemi qĂ« jemi ngarkuar me kernel-in e ri

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

Shohim pranë numrit të versionit mbishkrimin mptcp, që do të thotë se kernel-i u instalua si duhet.

Konfigurimi i router-it të klientit

Në faqen e projektit janë të disponueshme ndërtimet e gatshme për disa plataforma, si Raspberry Pi, Banana Pi, router-at Lynksys dhe makina virtuale.
Kjo pjesë e openmptcprouter bazuar në OpenWRT, përdor LuCI si ndërfaqe, e njohur për këdo që ka hasur ndonjëherë në OpenWRT. Distribucioni peshon rreth 50 MB!

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Si një platformë testimi, do të përdor Raspberry Pi dhe disa modemë USB me operatorë të ndryshëm: MTS dhe MegaFon. Si të regjistrohet imazhi në kartën SD, mendoj se nuk është e nevojshme të shpjegohet.

Fillimisht, porta Ethernet në Raspberry Pi është e konfiguruar si lan me një adresë IP statike 192.168.100.1. Për të mos u marrë me kabllot mbi tavolinë, e kam lidhur Raspberry Pi me një pikë qasjeje WiFi dhe kam caktuar një adresë statike në adaptorin WiFi të kompjuterit 192.168.100.2. Serveri DHCP nuk është aktivizuar automatikisht, prandaj duhet të përdoren adresat statike.

Tani mund të hyjmë në ndërfaqen web 192.168.100.1

Në hyrjen e parë, sistemi do të kërkojë të vendosni fjalëkalimin root, me këtë fjalëkalim do të jetë e aksesueshme SSH.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter
Në konfigurimet LAN mund të caktoni nënrrjetin e nevojshëm dhe të aktivizoni serverin DHCP.

Po përdor modemë që identifikohen si ndërfaqe USB Ethernet me një server DHCP të veçantë, prandaj kjo kërkonte instalimin e paketave shtesë. Procedura është identike me konfigurimin e modemëve në OpenWRT të zakonshëm, prandaj nuk do ta shqyrtoj këtu.

Më pas duhet të konfigurohen ndërfaqet WAN. Fillimisht në sistem janë krijuar dy ndërfaqe virtuale WAN1 dhe WAN2. Atëherë duhet t'u caktohet pajisja fizike, në rastin tim, janë emrat e ndërfaqeve të modemëve USB.

Për të mos u ngatërruar me emrat e ndërfaqeve, rekomandoj të shikoni mesazhet dmesg, duke u lidhur përmes SSH.

Duke qenë se modemët e mi vetë veprojnë si router-a dhe kanë një server DHCP të vetin, më duhej të ndryshoja cilësimet e grupeve të brendshme të rrjetit dhe të çaktivizoja serverin DHCP, sepse fillimisht të dy modemët jepnin adresa nga një rrjet i vetëm, dhe kjo shkaktonte konflikt.

OpenMPTCPRouter kĂ«rkon qĂ« adresat e ndĂ«rfaqeve WAN tĂ« jenĂ« statike, prandaj do t'i caktojmĂ« modemet nĂ« nĂ«nrrjeta dhe do t'i konfigurojmĂ« nĂ« menunĂ« system → openmptcprouter → interface settings. KĂ«tu duhet tĂ« jepen gjithashtu adresa IP dhe çelĂ«si i serverit, i marrĂ« nĂ« fazĂ«n e instalimit tĂ« serverit pĂ«rmbledhĂ«s.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Nëse konfigurimi është i suksesshëm, në faqen e statusit duhet të shfaqet një pamje e ngjashme. Dukshëm, rrjeti arriti të lidhet me serverin përmbledhës dhe të dy kanalet funksionojnë siç duhet.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Në mënyrë standarde, përdoret moda shadowsocks + mptcp. Ky është një proxy që mbulon të gjitha lidhjet. Fillimisht është i konfiguruar për të përpunuar vetëm TCP, por mund të aktivizoni gjithashtu UDP.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Nëse në faqen e statusit nuk ka gabime, atëherë mund të konsideroni se konfigurimi është përfunduar.
Me disa ofrues mund të lindë një situatë ku flamuri mptcp pritet gjatë rrugës së trafikut, atëherë do të shfaqet një gabim i tillë:

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Në këtë rast, mund të përdorni një mod të ndryshëm operimi, pa përdorimin e MPTCP, më shumë rreth kësaj. këtu.

Përfundim

Projekti OpenMPTCPRouter është shumë interesant dhe i rëndësishëm, pasi është ndoshta zgjidhja e vetme e hapur dhe komplekse për problemin e përmbledhjes së kanaleve. E gjithë e tjera është ose tërësisht e mbyllur dhe pronarake, ose thjesht module të veçanta, të cilat është e vështirë të kuptohen për një person të zakonshëm. Në këtë fazë të zhvillimit, projekti është ende mjaft i paqëndrueshëm, dokumentacioni është shumë i varfër, shumë gjëra thjesht nuk janë përshkruar. Por megjithatë funksionon. Shpresoj që ai të vazhdojë të zhvillohet dhe të marrim routerë të zakonshëm që do të dinë të përmbledhin kanalet nga fabrika.

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Ndjeki zhvilluesin tonë në Instagram

Kombinimi aktual i kanaleve tĂ« internetit – OpenMPTCPRouter

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster