
A është e mundur të bashkohen disa kanale interneti në një? Rreth kësaj teme ekzistojnë shumë keqkuptime dhe mite, madje inxhinierët e rrjetit me përvojë shpesh nuk dinë se kjo është e mundur. Në shumicën e rasteve, grupimi i kanaleve gabimisht quhet balancimi në nivelin NAT ose failover. Por grupimi i vërtetë lejon të dërgojë një lidhje TCP të vetme në të njëjtën kohë për të gjitha kanalet e internetit, për shembull një transmetim video në mënyrë që, në rast të ndërprerjes së ndonjë kanali interneti, transmetimi të mos ndërpritet.
Ekzistojnë zgjidhje komerciale të shtrenjta për transmetime video, por këto pajisje kushtojnë shumë mijëra dollarë. Artikulli përshkruan konfigurimin e paketës falas dhe të hapur OpenMPTCPRouter, duke sqaruar mite të njohura mbi grupimin e kanaleve.
Mitete mbi grupimin e kanaleve
Ka shumë routerë të zakonshëm që mbështesin funksionin Multi-WAN. NdSometimes prodhuesit e quajnë këtë grupim kanalesh, që nuk është plotësisht e saktë. Shumë nga rrjetarët besojnë se përveç dhe përmbledhja në nivelin L2, nuk ka asnjë bashkim tjetër kanalesh. Kam dëgjuar shpesh nga njerëz që punojnë në telekomunikacion se kjo është gjithsesi e pamundur. Prandaj, le të përpiqemi të kuptojmë mite të njohura.
Balancimi në nivelin e lidhjeve IP
Ky është mënyra më e aksesueshme dhe e njohur për të shfrytëzuar disa kanale interneti në të njëjtën kohë. Për ta thjeshtuar, le të imagjinojmë se keni tre ofrues interneti, secili ofron një adresë IP reale nga rrjeti i tij. Të gjithë këta ofrues janë të lidhur në një router që mbështet funksionin Multi-WAN. Kjo mund të jetë OpenWRT me paketën mwan3, mikrotik, ubiquiti ose çfarëdo routeri tjetër shtëpiak, pasi tani kjo mundësi nuk është më e pazakontë.
Për të modeluar situatën, le të imagjinojmë se ofruesit na dhanë këto adresa:
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 provajderi, serveri i largët do të shohë tre IP të pavarura të klientit. Balancimi lejon ndarjen e ngarkesës mes kanaleve dhe përdorimin e treve njëkohësisht. Për thjeshtësi, le të imagjinojmë se po e ndajmë ngarkesën në mënyrë të barabartë mes të gjitha kanaleve. Si rezultat, kur klienti hap një faqe interneti, në të cilën sipas kushteve ka tre imazhe, ai ngarkon çdo imazh përmes një provajderi të veçantë. Nga ana e faqes, kjo duket si lidhje nga tri IP të ndryshme.

Me balancimin në nivelin e lidhjeve, çdo lidhje TCP kalon përmes një provajderi të veçantë.
Kyçi i tillë i balancimit shpesh sjell probleme për përdoruesit. Për shembull, shumë faqe interneti lidhen ngushtë cookies dhe tokene me adresën IP të klientit, dhe nëse ajo ndryshon papritur, kërkesa hidhet poshtë ose klienti shkëputet nga faqja. Kjo shpesh ndodh në sistemet e bankës online dhe në faqet e tjera me rregulla strikte për sesionet e përdoruesve. Ja një shembull i thjeshtë ilustruese: skedarët muzikorë në VK.com janë të aksesueshëm vetëm me një çelës të vlefshëm sesioni, i lidhur me IP, dhe për klientët që përdorin një balancim të tillë, shpesh nuk luhet audio, sepse kërkesa shkoi përmes një ofruesi tjetër nga ai me të cilin është lidhur sesioni.

Kur shkarkoni torrente, balancimi në nivelin e lidhjeve bashkon kapacitetin e gjithë kanaleve.
Kjo balancim mundëson përmbledhjen e shpejtësisë së internetit duke përdorur shumë lidhje. Për shembull, nëse çdo një nga tre ofruesit ka një shpejtësi prej 100 Megabite, atëherë gjatë shkarkimit të torrentëve ne do të fitojmë 300 Megabite. Kjo sepse torrentët hapin shumë lidhje, të cilat shpërndahen mes të gjithë ofruesve dhe përfundimisht shfrytëzojnë të gjithë kapacitetin e kanaleve.
ĂshtĂ« e rĂ«ndĂ«sishme tĂ« kuptojmĂ« se njĂ« lidhje e vetme TCP gjithmonĂ« do tĂ« kalojĂ« vetĂ«m pĂ«rmes njĂ« ofruesi. KĂ«shtu, nĂ«se po shkarkojmĂ« njĂ« skedar tĂ« madh pĂ«rmes HTTP, atĂ«herĂ« kjo lidhje do tĂ« realizohet pĂ«rmes njĂ«rit nga ofruesit dhe, nĂ«se lidhja me kĂ«tĂ« ofrues pritet, atĂ«herĂ« shkarkimi gjithashtu do tĂ« ndĂ«rpritet.

Një lidhje gjithmonë do të përdorë vetëm një kanal interneti
Kjo është e vërtetë edhe për transmetimet video. Nëse po transmetoni video në ndonjë platformë si Twitch, balancimi në nivelin e lidhjeve IP nuk do të sjellë ndonjë dobi të veçantë, pasi video-stream do të transmetohet brenda një lidhjeje IP. Në këtë rast, nëse ofruesi i WAN 3 fillon të ketë probleme me lidhjen, siç është humbja e paketave ose ulja e 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ë ri-konektiohet përsëri.
Shtimi i kanaleve
Shtimi real i kanaleve ofron mundësinë për të kaluar një lidhje te një platformë si Twitch përmes të gjithë ofruesve, në mënyrë që, nëse ndonjë prej ofruesve dështon, lidhja të mos ndërpritet. Kjo është një detyrë befasuese e komplikuar, e cila ende nuk ka një zgjidhje optimale. Shumë as nuk dinë se një gjë e tillë është e mundur!
Sipas ilustrimeve të mëparshme, ne e dimë se serveri konvencional Twitch mund të pranojë një transmetim video vetëm nga një adresë IP burimore, kështu që ajo duhet të jetë gjithmonë e pandryshueshme për ne, pavarësisht se cilat ofruesit e shërbimeve na bien, dhe cilat funksionojnë. Për ta arritur këtë, na nevojitet një server agregues, i cili do të terminonte të gjitha lidhjet tona dhe t'i bashkonte ato në një.

Serveri agregues kombinon të gjitha kanalet në një tunel. Të gjitha lidhjet ndodhin nga adresa e serverit agregues.
Në këtë skemë përdoren të gjithë ofruesit, dhe çfarëdo çrregullimi nga njëri prej tyre nuk do të shkaktojë ndërprerje në lidhjen me serverin Twitch. Thelbi, kjo është një tunel VPN i veçantë, i cili fsheh brenda vetes disa kanale interneti. Qëllimi kryesor i kësaj skeme është të marrësh një kanal komunikimi sa më cilësor. Nëse ndonjë ofrues ka filluar të ketë probleme, humbje paketa, rritje të vonesave, kjo nuk duhet të ndikojë në cilësinë e lidhjes, pasi ngarkesa do të shpërndahet automatikisht në kanale të tjera më cilësore që janë në dispozicion.
Zgjidhje tregtare
Ky problemi ka shqetësuar prej kohësh ata që transmetojnë drejtpërdrejt ngjarje dhe nuk kanë akses në internet të cilësisë së lartë. Për këto detyra ekzistojnë disa zgjidhje tregtare, për shembull, kompania Teradek prodhon routera masivë, në të cilët futen grumbuj modemash USB:

Router për transmetimin e videove me funksionin e grumbullimit të kanaleve
NĂ« kĂ«to pajisje, zakonisht, Ă«shtĂ« e ndĂ«rtuar mundĂ«sia e kapjes sĂ« sinjalit video pĂ«rmes HDMI ose SDI. BashkĂ« me routerin shitet njĂ« abonim pĂ«r shĂ«rbimin e grumbullimit tĂ« kanaleve, si dhe pĂ«r procesimin e fluxit video, rikodimin e tij dhe retransmetimin mĂ« tej. Ămimi i kĂ«tyre pajisjeve fillon nga 2,000 $ me komplet modemash, plus veç e veç abonimi pĂ«r shĂ«rbimin.
Disa herë, kjo duket mjaft frikësuese:

Konfigurojmë OpenMPTCPRouter
Protokolli (MultiPath TCP) Ă«shtĂ« krijuar pĂ«r tĂ« mundĂ«suar lidhjen pĂ«rmes disa kanaleve njĂ«herĂ«sh. PĂ«r shembull, kjo dhe mund tĂ« lidhet njĂ«kohĂ«sisht me njĂ« server tĂ« largĂ«t pĂ«rmes WiFi dhe rrjetit celular. ĂshtĂ« e rĂ«ndĂ«sishme tĂ« kuptohet se kĂ«to nuk janĂ« dy lidhje TCP tĂ« veçanta, por njĂ« lidhje e vetme, e cila vendoset njĂ«kohĂ«sisht pĂ«rmes dy kanaleve. PĂ«r ta bĂ«rĂ« kĂ«tĂ« tĂ« funksionojĂ«, serveri i largĂ«t duhet tĂ« mbĂ«shtesĂ« gjithashtu MPTCP.
â Ă«shtĂ« njĂ« projekt i hapur i router-it programor, qĂ« lejon tĂ« grumbullohen realisht kanalet. AutorĂ«t shpallin se projekti Ă«shtĂ« nĂ« statusin alpha, por ai mund tĂ« pĂ«rdoret tashmĂ«. Ai pĂ«rbĂ«het nga dy pjesĂ« â njĂ« server grumbullues, i cili vendoset nĂ« internet dhe routeri, tĂ« cilit i lidhen disa ofrues interneti dhe vetĂ« pajisjet klient: kompjuterĂ«t, telefonat. Si router i pĂ«rdoruesit mund tĂ« shĂ«rbejĂ« Raspberry Pi, disa routera WiFi ose njĂ« kompjuter i zakonshĂ«m. Ka ndĂ«rtesa tĂ« gatshme pĂ«r platforma tĂ« ndryshme, gjĂ« qĂ« Ă«shtĂ« shumĂ« e pĂ«rshtatshme.

Principe i punës së OpenMPTCPRouter
Konfigurimi i serverit grumbullues
Serveri grumbullues është vendosur në internet dhe terminon lidhjet nga të gjitha kanalet e router-it të klientit në një të vetme. Adresa IP e këtij serveri do të jetë adresa ekstern 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 e përmbledhjes:
- MPTCP nuk punon në virtualizimin OpenVZ
- Duhet të ketë mundësi për të instaluar bërthamën tuaj Linux
Serveri ngritët duke ekzekutuar një komandë. Skripti do të instaloje bërthamën me mbështetje 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.

Ruani fjalĂ«kalimet, ato do tĂ« na duhĂ«n pĂ«r konfigurimin e routerit tĂ« klientit, dhe rindezemi. ĂshtĂ« e rĂ«ndĂ«sishme tĂ« kemi parasysh se pas instalimit SSH do tĂ« jetĂ« i disponueshĂ«m nĂ« portin 65222. Pasi tĂ« rindezim, duhet tĂ« sigurohemi qĂ« kemi nisur me bĂ«rthamĂ«n e re
uname -a
Linux test-server.local 4.19.67-mptcp
Shohim pranë numrit të versions një shkrim mptcp, që do të thotë që bërthama është instaluar siç duhet.
Konfigurimi i routerit të klientit
Në janë të disponueshme ndërtimet e gatshme për disa platforma, si Raspberry Pi, Banana Pi, routerat Lynksys dhe makinat virtuale.
Kjo pjesë e openmptcprouter është e bazuar në OpenWRT, me LuCI si ndërfaqe, e cila është e njohur për të gjithë ata që janë përballur ndonjëherë me OpenWRT. Distribucioni peshon rreth 50Mb!

Si testim, un do të përdor Raspberry Pi dhe disa modeme USB me operatorë të ndryshëm: MTS dhe Megafon. Nuk besoj se është e nevojshme të tregoj si të shkruhet imazhi në kartën SD.
Fillimisht, porta Ethernet në Raspberry Pi është e konfigurur si lan me një adresë IP statike. 192.168.100.1. Për të mos u marrë me kabllot në tryezë, e kam lidhur Raspberry Pi me pikën e qasjes WiFi dhe përcaktova një adresë statike në adapterin WiFi të kompjuterit. 192.168.100.2. Serveri DHCP i paraprakisht nuk është aktivizuar, kështu që duhet të përdoren adresat statike.
Tani mund të hyjmë në ndërfaqen e internetit.
Në hyrjen e parë, sistemi do të kërkojë të vendosë fjalëkalimin root, me të cilin do të jetë i aksesueshëm SSH.

Në konfigurimet LAN, mund të specifikoni masivin e nevojshëm dhe të aktivizoni serverin DHCP.
Po përdor modeme që identifikohen si interfese USB Ethernet me një server DHCP të veçantë, prandaj kjo kërkoi instalimin . Procedura është identike me konfigurimin e modemeve në OpenWRT të zakonshëm, prandaj nuk do ta shqyrtoj këtu.
Pastaj duhet të konfigurohen interfesat WAN. Fillimisht, në sistem janë krijuar dy interfesa virtuale WAN1 dhe WAN2. Ata duhet të caktohen me pajisjet fizike, në rastin tim këto janë emrat e interfesave të modemeve 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 veprojnë si routera dhe kanë vetë një server DHCP, më duhej të ndryshoja cilësimet e grupeve të tyre të brendshme të rrjetit dhe të çaktivizoja serverin DHCP, sepse në fillim të dy modemët jepnin adresa nga e njëjta rrjet, çka shkaktonte konflikt.
OpenMPTCPRouter kĂ«rkon qĂ« adresat e ndĂ«rfaqeve WAN tĂ« jenĂ« statike, prandaj shpikim nĂ«nshtesa pĂ«r modemĂ«t dhe i konfiguroni nĂ« menunĂ« system â openmptcprouter â interface settings. KĂ«tu gjithashtu duhet tĂ« tregoni IP-nĂ« dhe çelĂ«sin e serverit, tĂ« marrĂ« gjatĂ« fazĂ«s sĂ« instalimit tĂ« serverit pĂ«rmbledhĂ«s.

NĂ«se konfigurimi Ă«shtĂ« i suksesshĂ«m, nĂ« faqen e statusit duhet tĂ« shfaqet njĂ« pamje e tillĂ«. ĂshtĂ« e dukshme se router-i ka mundur tĂ« lidhet me serverin pĂ«rmbledhĂ«s dhe tĂ« dy kanalet punojnĂ« siç duhet.

Për default përdoret moda shadowsocks + mptcp. Ky është një proxy që mbështjell të gjitha lidhjet. Fillimisht është i konfiguruar të përpunojë vetëm TCP, por mund të aktivizohet gjithashtu edhe UDP.

Nëse në faqen e statusit nuk ka gabime, mund të konsiderohet se konfigurimi ka përfunduar.
Me disa ofruesve mund të ndodhë që flamuri mptcp të pritet në rrugën e trafikut, në këtë rast do të shfaqet një gabim:

Në këtë rast, mund të përdorni një mod të ndryshëm pa përdorimin e MPTCP, më shumë informacion rreth kësaj .
Përfundimi
Projekti OpenMPTCPRouter është shumë interesant dhe i rëndësishëm, pasi është ndoshta zgjidhja e vetme hapur dhe e plotë për problemin e përmbledhjes së kanaleve. Të gjitha zgjidhjet e tjera janë ose të mbyllura dhe pronësore, ose thjesht module të veçanta që janë të vështira për t'u menaxhuar nga një person i zakonshëm. Në këtë fazë të zhvillimit, projekti është ende mjaft i papjekur, me dokumentacion shumë të varfër dhe shumë gjëra që nuk janë thjesht të përshkruara. Por megjithatë, ai funksionon. Shpresoj që të vazhdojë të zhvillohet dhe të kemi router të zakonshëm që do të dinë të bashkojnë kanale nga kutia.
Ndjekni zhvilluesin tonë në Instagram
Burimi: habr.com
