Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

A është e mundur të kombinohen disa kanale interneti në një? Ka shumë keqkuptime dhe mite rreth kësaj teme; madje edhe inxhinierët me përvojë të rrjetit shpesh nuk e dinë se kjo është e mundur. Në shumicën e rasteve, grumbullimi i lidhjeve quhet gabimisht balancim në nivelin NAT ose dështim. Por përmbledhja reale lejon lëshoni një lidhje të vetme TCP njëkohësisht në të gjitha kanalet e internetit, për shembull, transmetimi i videos në mënyrë që nëse ndonjë nga kanalet e internetit ndërpritet, transmetimi nuk do të ndërpritet.

Ekzistojnë zgjidhje të shtrenjta komerciale për transmetimet video, por pajisje të tilla kushtojnë shumë kilobucks. Artikulli përshkruan se si të konfiguroni paketën OpenMPTCPRouter falas, me burim të hapur dhe trajton mitet e njohura rreth përmbledhjes së kanaleve.

Mitet rreth përmbledhjes së kanalit

Ka shumë ruterë shtëpiak që mbështesin funksionin Multi-WAN. Ndonjëherë prodhuesit e quajnë këtë kanal përmbledhje, gjë që nuk është plotësisht e vërtetë. Shumë rrjete besojnë se përveç LACP dhe përmbledhje në nivelin L2, nuk ekziston asnjë grumbullim tjetër i kanaleve. Kam dëgjuar shpesh se kjo është përgjithësisht e pamundur nga njerëzit që punojnë në telekom. Prandaj, le të përpiqemi të kuptojmë mitet popullore.

Balancimi në nivelin e lidhjes IP

Kjo është mënyra më e përballueshme dhe më e popullarizuar për të përdorur disa kanale interneti në të njëjtën kohë. Për thjeshtësi, le të imagjinojmë se keni tre ofrues interneti, ku secili ju jep një adresë IP të vërtetë nga rrjeti i tyre. Të gjithë këta ofrues janë të lidhur me një ruter që mbështet funksionin Multi-WAN. Ky mund të jetë OpenWRT me paketën mwan3, mikrotik, ubiquiti ose ndonjë ruter tjetër shtëpiak, pasi një opsion i tillë nuk është më i pazakontë.

Për të simuluar situatën, le të imagjinojmë që ofruesit na dhanë adresat e mëposhtme:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Kjo është, lidhja me një server të largët example.com Nëpërmjet secilit prej ofruesve, serveri në distancë do të shohë tre klientë të pavarur IP me burim. Balancimi ju lejon të ndani ngarkesën nëpër kanale dhe t'i përdorni të treja në të njëjtën kohë. Për thjeshtësi, le të imagjinojmë se e ndajmë ngarkesën në mënyrë të barabartë midis të gjitha kanaleve. Si rezultat, kur një klient hap një faqe me tre imazhe, ai shkarkon çdo imazh përmes një ofruesi të veçantë. Në anën e faqes duket si lidhje nga tre IP të ndryshme.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Kur balancohet në nivelin e lidhjes, çdo lidhje TCP kalon përmes një ofruesi të veçantë.

Kjo mënyrë balancimi shpesh shkakton probleme për përdoruesit. Për shembull, shumë sajte lidhin rreptësisht cookie-t dhe argumentet me adresën IP të klientit dhe nëse ajo ndryshon papritur, kërkesa refuzohet ose klienti del nga faqja. Kjo shpesh riprodhohet në sistemet klient-bankë dhe faqe të tjera me rregulla strikte të sesioneve të përdoruesit. Këtu është një shembull i thjeshtë ilustrues: skedarët muzikorë në VK.com janë të disponueshëm vetëm me një çelës të vlefshëm sesioni, i cili është i lidhur me një IP, dhe klientët që përdorin një balancim të tillë shpesh nuk luajnë audio sepse kërkesa nuk ka kaluar përmes ofruesit në të cilin seanca është e barabartë.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Kur shkarkoni torrent, balancimi i nivelit të lidhjes përmbledh gjerësinë e brezit të të gjitha kanaleve

Ky balancim ju lejon të merrni përmbledhjen e shpejtësisë së kanalit të internetit kur përdorni lidhje të shumta. Për shembull, nëse secili nga tre ofruesit ka një shpejtësi prej 100 Megabits, atëherë kur shkarkojmë torrent do të marrim 300 Megabit. Sepse një torrent hap shumë lidhje, të cilat shpërndahen midis të gjithë ofruesve dhe në fund shfrytëzojnë të gjithë kanalin.

Është e rëndësishme të kuptohet se një lidhje e vetme TCP do të kalojë gjithmonë vetëm nga një ofrues. Kjo do të thotë, nëse shkarkojmë një skedar të madh përmes HTTP, atëherë kjo lidhje do të bëhet përmes një prej ofruesve, dhe nëse lidhja me këtë ofrues prishet, shkarkimi gjithashtu do të prishet.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Një lidhje do të përdorë gjithmonë vetëm një kanal interneti

Kjo vlen edhe për transmetimet video. Nëse po transmetoni video me transmetim në një lloj Twitch të kushtëzuar, atëherë balancimi në nivelin e lidhjeve IP nuk do të ofrojë ndonjë përfitim të veçantë, pasi transmetimi i videos do të transmetohet brenda një lidhjeje IP. Në këtë rast, nëse ofruesi WAN 3 fillon të ketë probleme me komunikimin, si humbja e paketave ose shpejtësia e reduktuar, atëherë nuk do të mund të kaloni menjëherë te një ofrues tjetër. Transmetimi do të duhet të ndërpritet dhe të rilidhet.

Përmbledhja e vërtetë e kanalit

Përmbledhja reale e kanalit bën të mundur ekzekutimin e një lidhjeje me një Twitch të kushtëzuar përmes të gjithë ofruesve menjëherë në mënyrë të tillë që nëse ndonjë nga ofruesit prishet, lidhja nuk do të ndërpritet. Ky është një problem çuditërisht i vështirë që ende nuk ka një zgjidhje optimale. Shumë njerëz as nuk e dinë se kjo është e mundur!

Nga ilustrimet e mëparshme, kujtojmë se serveri i kushtëzuar Twitch mund të marrë një transmetim video nga ne vetëm nga një adresë IP burimi, që do të thotë se duhet të jetë gjithmonë konstante për ne, pavarësisht se cilët ofrues kanë rënë dhe cilët janë duke punuar. Për ta arritur këtë, ne kemi nevojë për një server përmbledhës që do të përfundojë të gjitha lidhjet tona dhe do t'i kombinojë ato në një.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Serveri përmbledhës i grumbullon të gjitha kanalet në një tunel. Të gjitha lidhjet vijnë nga adresa e serverit përmbledhës

Në këtë skemë, përdoren të gjithë ofruesit dhe çaktivizimi i ndonjërit prej tyre nuk do të shkaktojë humbje të komunikimit me serverin Twitch. Në thelb, ky është një tunel special VPN, nën kapuçin e të cilit ka disa kanale interneti menjëherë. Detyra kryesore e një skeme të tillë është të marrë kanalin e komunikimit me cilësi më të lartë. Nëse njëri nga ofruesit fillon të ketë probleme, humbje të paketave, vonesa të shtuara, atëherë kjo nuk duhet të ndikojë në asnjë mënyrë në cilësinë e komunikimit, pasi ngarkesa do të shpërndahet automatikisht në kanale të tjera më të mira që janë në dispozicion.

Zgjidhje Komerciale

Ky problem ka kohë që shqetëson ata që transmetojnë ngjarje të drejtpërdrejta dhe nuk kanë akses në internet me cilësi të lartë. Për detyra të tilla, ekzistojnë disa zgjidhje komerciale, për shembull, kompania Teradek bën ruterë të tillë monstruozë në të cilët futen paketa modemesh USB:

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Router për transmetimet video me funksion përmbledhje të kanaleve

Pajisjet e tilla zakonisht kanë një aftësi të integruar për të kapur sinjale video përmes HDMI ose SDI. Së bashku me ruterin, shitet një abonim në shërbimin e përmbledhjes së kanalit, si dhe përpunohet transmetimi i videos, transkodimi i tij dhe transmetimi i mëtejshëm. Çmimi i pajisjeve të tilla fillon nga 2 mijë dollarë me një grup modemesh, plus një abonim të veçantë në shërbim.

Ndonjëherë duket mjaft e frikshme:

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Konfigurimi i OpenMPTCPRouter

Protokolli MP-TCP (MultiPath TCP) u shpik për të qenë në gjendje të lidhet përmes disa kanaleve në të njëjtën kohë. Për shembull, e tij mbështet iOS dhe mund të lidhet njëkohësisht me një server në distancë nëpërmjet WiFi dhe nëpërmjet një rrjeti celular. Është e rëndësishme të kuptohet se këto nuk janë dy lidhje të veçanta TCP, por më tepër një lidhje e krijuar në dy kanale njëherësh. Që kjo të funksionojë, serveri në distancë duhet të mbështesë gjithashtu MPTCP.

Hap MPTCPRuter është një projekt ruteri i softuerit me burim të hapur që lejon përmbledhjen e vërtetë të kanalit. Autorët deklarojnë se projekti është në statusin e versionit alfa, por tashmë mund të përdoret. Ai përbëhet nga dy pjesë - një server përmbledhës, i cili ndodhet në internet dhe një ruter, me të cilin janë të lidhur disa ofrues të internetit dhe vetë pajisjet e klientit: kompjuterë, telefona. Ruteri i personalizuar mund të jetë një Raspberry Pi, disa rutera WiFi ose një kompjuter i rregullt. Ka montime të gatshme për platforma të ndryshme, gjë që është shumë e përshtatshme.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Si funksionon OpenMPTCPRouter

Vendosja e një serveri përmbledhës

Serveri përmbledhës ndodhet në internet dhe përfundon lidhjet nga të gjitha kanalet e ruterit të klientit në një. Adresa IP e këtij serveri do të jetë adresa e jashtme kur hyni në internet përmes OpenMPTCPRouter.

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

Kërkesat për serverin përmbledhës:

  • MPTCP nuk funksionon në virtualizimin OpenVZ
  • Duhet të jetë e mundur të instaloni kernelin tuaj Linux

Serveri vendoset duke ekzekutuar një komandë. Skripti do të instalojë një kernel 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 një instalimi të suksesshëm të serverit.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Ne i ruajmë fjalëkalimet, do të na duhen për të konfiguruar ruterin e klientit dhe për të rindezur. Është e rëndësishme të kihet parasysh se pas instalimit, SSH do të jetë i disponueshëm në portin 65222. Pas rindezjes, duhet të sigurohemi që kemi nisur me kernelin e ri

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

Ne shohim mbishkrimin mptcp pranë numrit të versionit, që do të thotë se kerneli është instaluar saktë.

Vendosja e një ruteri klienti

Mbi uebsajti i projektit Ndërtimet e gatshme janë të disponueshme për disa platforma, të tilla si Raspberry Pi, Banana Pi, ruterat Lynksys dhe makinat virtuale.
Kjo pjesë e openmptcprouter bazohet në OpenWRT, duke përdorur LuCI si një ndërfaqe, e njohur për këdo që ka hasur ndonjëherë OpenWRT. Shpërndarja peshon rreth 50 MB!

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Si një stol provë, unë do të përdor një Raspberry Pi dhe disa modemë USB me operatorë të ndryshëm: MTS dhe Megafon. Nuk mendoj se duhet t'ju tregoj se si të shkruani një imazh në një kartë SD.

Fillimisht, porta Ethernet në Raspberry Pi është konfiguruar si lan me një adresë IP statike 192.168.100.1. Për të shmangur ngatërresat me telat në tavolinë, lidha Raspberry Pi me një pikë aksesi WiFi dhe vendosa përshtatësin WiFi të kompjuterit në një adresë statike 192.168.100.2. Serveri DHCP nuk është i aktivizuar si parazgjedhje, kështu që duhet të përdorni adresa statike.

Tani mund të hyni në ndërfaqen e internetit 192.168.100.1

Kur hyni për herë të parë, sistemi do t'ju kërkojë të vendosni një fjalëkalim rrënjësor; SSH do të jetë i disponueshëm me të njëjtin fjalëkalim.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter
Në cilësimet LAN, mund të vendosni nënrrjetin e dëshiruar dhe të aktivizoni serverin DHCP.

Unë përdor modem që përcaktohen si ndërfaqe USB Ethernet me një server të veçantë DHCP, kështu që kjo kërkon instalim pako shtesë. Procedura është identike me konfigurimin e modemeve në OpenWRT të rregullt, kështu që nuk do ta mbuloj këtu.

Më pas ju duhet të konfiguroni ndërfaqet WAN. Fillimisht, sistemi krijoi dy ndërfaqe virtuale WAN1 dhe WAN2. Atyre duhet t'u caktohet një pajisje fizike, në rastin tim këta janë emrat e ndërfaqeve të modemit USB.

Për të shmangur konfuzionin me emrat e ndërfaqes, unë rekomandoj shikimin e mesazheve dmesg gjatë lidhjes përmes SSH.

Meqenëse vetë modemet e mi veprojnë si ruter, dhe vetë kanë një server DHCP, më duhej të ndryshoja cilësimet e gamës së tyre të rrjetit të brendshëm dhe të çaktivizoja serverin DHCP, sepse fillimisht të dy modemet lëshojnë adresa nga i njëjti rrjet dhe kjo shkakton një konflikt.

OpenMPTCPRouter kërkon që adresat e ndërfaqes WAN të jenë statike, kështu që ne dalim me nënrrjeta për modemët dhe i konfigurojmë ato në menunë e sistemit → openmptcprouter → cilësimet e ndërfaqes. Këtu duhet të specifikoni adresën IP dhe çelësin e serverit të marrë gjatë instalimit të serverit përmbledhës.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Nëse konfigurimi është i suksesshëm, një fotografi e ngjashme duhet të shfaqet në faqen e statusit. Mund të shihet se ruteri ishte në gjendje të arrinte serverin përmbledhës dhe të dy kanalet po punojnë normalisht.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Modaliteti i parazgjedhur është shadowsocks + mptcp. Ky është një përfaqësues që mbështjell të gjitha lidhjet brenda vetes. Fillimisht është konfiguruar për të përpunuar vetëm TCP, por UDP gjithashtu mund të aktivizohet.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Nëse nuk ka gabime në faqen e statusit, konfigurimi mund të konsiderohet i përfunduar.
Me disa ofrues, mund të lindë një situatë kur flamuri mptcp ndërpritet përgjatë rrugës së trafikut, atëherë do të shfaqet gabimi i mëposhtëm:

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Në këtë rast, mund të përdorni një mënyrë tjetër funksionimi, pa përdorur MPTCP, më shumë rreth kësaj këtu.

Përfundim

Projekti OpenMPTCPRouter është shumë interesant dhe i rëndësishëm, pasi është ndoshta e vetmja zgjidhje e hapur gjithëpërfshirëse për problemin e përmbledhjes së kanaleve. Çdo gjë tjetër është ose e mbyllur fort dhe e pronarit, ose thjesht module të veçanta që një person i zakonshëm nuk mund t'i kuptojë. Në fazën aktuale të zhvillimit, projekti është ende mjaft i papërpunuar, dokumentacioni është jashtëzakonisht i dobët, shumë gjëra thjesht nuk përshkruhen. Por në të njëjtën kohë ajo ende funksionon. Shpresoj se do të vazhdojë të zhvillohet dhe ne do të marrim ruterë shtëpiake që do të jenë në gjendje të kombinojnë siç duhet kanalet jashtë kutisë.

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Ndiqni zhvilluesin tonë në Instagram

Përmbledhja e vërtetë e kanaleve në internet - OpenMPTCPRouter

Burimi: www.habr.com

Shto një koment