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ç
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.
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ë.
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.
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ë.
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:
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:
Konfigurimi i OpenMPTCPRouter
Protokolli
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.
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
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!
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
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.
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
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.
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.
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.
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:
Në këtë rast, mund të përdorni një mënyrë tjetër funksionimi, pa përdorur MPTCP, më shumë rreth kësaj
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ë.
Ndiqni zhvilluesin tonë në Instagram
Burimi: www.habr.com