True Internet Channel Summation - OpenMPTCPRuter

True Internet Channel Summation - OpenMPTCPRuter

Posible al da Interneteko hainbat kanal bakar batean konbinatzea? Gai honen inguruan uste oker eta mito asko daude; sareko ingeniariek ere askotan ez dakite hori posible denik. Kasu gehienetan, esteken agregazioari oker deritzo orekatzea NAT mailan edo hutsegitea. Baina benetako batuketak ahalbidetzen du TCP konexio bakarra abiarazi aldi berean Interneteko kanal guztietan, adibidez, bideo-emisioa, Interneteko kateren bat eteten bada, emisioa eten ez dadin.

Bideo-emisioetarako irtenbide komertzial garestiak daude, baina horrelako gailuek kilobuck asko kostatzen dute. Artikuluak OpenMPTCPRuter pakete doako eta irekia nola konfiguratu deskribatzen du eta kanalen batuketaren inguruko mito ezagunak jorratzen ditu.

Kanalen batuketari buruzko mitoak

Multi-WAN funtzioa onartzen duten etxeko bideratzaile asko daude. Batzuetan, fabrikatzaileek kanal horri batuketa deitzen diote, eta hori ez da guztiz egia. Saregile askok uste dute hori gainera LACP eta batuketa L2 mailan, ez dago beste kanal-agregaziorik. Askotan entzun izan diet hori orokorrean ezinezkoa dela telekomunikazioetan lan egiten duten pertsonei. Horregatik, saia gaitezen herri-mitoak ulertzen.

IP konexio mailan orekatzea

Hau da Interneteko hainbat kanal aldi berean erabiltzeko modurik merkeena eta ezagunena. Sinpletasunerako, pentsa dezagun hiru Internet hornitzaile dituzula, bakoitzak bere sareko benetako IP helbide bat ematen dizula. Hornitzaile hauek guztiak Multi-WAN funtzioa onartzen duen bideratzaile batera konektatuta daude. Hau OpenWRT izan daiteke mwan3 paketearekin, mikrotik, ubiquiti edo etxeko beste edozein bideratzailerekin, aukera hori ez baita ohikoa.

Egoera simulatzeko, pentsa dezagun hornitzaileek helbide hauek eman dizkigutela:

WAN1 β€” 11.11.11.11
WAN2 β€” 22.22.22.22
WAN2 β€” 33.33.33.33

Hau da, urruneko zerbitzari batera konektatzea example.com Hornitzaile bakoitzaren bitartez, urruneko zerbitzariak hiru iturri IP bezero independente ikusiko ditu. Balantzeak karga kanaletan banatu eta hirurak aldi berean erabiltzeko aukera ematen du. Sinpletasunerako, pentsa dezagun karga berdin banatzen dugula kanal guztien artean. Ondorioz, bezero batek hiru irudi dituen gune bat irekitzen duenean, irudi bakoitza hornitzaile ezberdin baten bidez deskargatzen du. Gunearen aldean hiru IP ezberdinetako konexioak dirudite.

True Internet Channel Summation - OpenMPTCPRuter
Konexio mailan orekatzean, TCP konexio bakoitza hornitzaile ezberdin batetik pasatzen da.

Orekatze modu honek askotan arazoak sortzen dizkie erabiltzaileei. Adibidez, gune askok zorrozki lotzen dituzte cookieak eta tokenak bezeroaren IP helbidearekin, eta bat-batean aldatzen bada, eskaera baztertzen da edo bezeroa gunetik amaitzen da. Hau maiz erreproduzitzen da bezero-banku sistemetan eta erabiltzaileen saio-arau zorrotzak dituzten beste gune batzuetan. Hona hemen adibide argigarri sinple bat: VK.com-eko musika-fitxategiak baliozko saio-gako batekin soilik daude erabilgarri, IP bati lotuta dagoena, eta oreka hori erabiltzen duten bezeroek sarritan ez dute audioa erreproduzitzen, eskaera hornitzailetik pasatu ez delako. saioa lotuta dago.

True Internet Channel Summation - OpenMPTCPRuter
Torrent-ak deskargatzean, konexio-mailaren orekatzeak kanal guztien banda-zabalera biltzen du

Orekatze honek Interneteko kanalaren abiaduraren batuketa lortzeko aukera ematen du hainbat konexio erabiltzean. Adibidez, hiru hornitzaileetako bakoitzak 100 Megabit-eko abiadura badu, torrenteak deskargatzean 300 Megabit lortuko ditugu. Torrent batek konexio asko irekitzen dituelako, hornitzaile guztien artean banatzen direnak eta azken finean kanal osoa erabiltzen dutenak.

Garrantzitsua da ulertzea TCP konexio bakarra hornitzaile bakarretik igaroko dela beti. Hau da, HTTP bidez fitxategi handi bat deskargatzen badugu, hornitzaileetako baten bidez egingo da konexio hori, eta hornitzaile honekin konexioa hautsita, deskarga ere hautsi egingo da.

True Internet Channel Summation - OpenMPTCPRuter
Konexio batek Interneteko kanal bakarra erabiliko du beti

Bideo-emisioetarako ere egia da. Baldintzapeko Twitch mota batera emititzen ari bazara bideoak, IP konexioen mailan orekatzeak ez du onura berezirik emango, bideo-korrontea IP konexio bakarrean emitituko baita. Kasu honetan, WAN 3 hornitzailea komunikazioarekin arazoak izaten hasten bada, hala nola paketeak galtzea edo abiadura murriztua, ezin izango zara berehala beste hornitzaile batera aldatu. Emisioa gelditu eta berriro konektatu beharko da.

Benetako kanalen batuketa

Benetako kanalen batuketak aukera ematen du baldintzapeko Twitch baterako konexio bat hornitzaile guztien bidez aldi berean exekutatzeko, horrela hornitzaileren bat apurtzen bada, konexioa eten ez den. Harrigarriki zaila den arazoa da, oraindik irtenbide optimorik ez duena. Jende askok ez daki hori posible denik!

Aurreko ilustrazioetatik, gogoan dugu baldintzapeko Twitch zerbitzariak guregandik bideo-korronte bat jaso dezakeela iturriko IP helbide bakar batetik, eta horrek esan nahi du beti etengabea izan behar duela guretzat, edozein hornitzaile erori diren eta zeintzuk lanean ari diren kontuan hartu gabe. Hori lortzeko, gure konexio guztiak amaitu eta bakar batean konbinatuko dituen batuketa zerbitzari bat behar dugu.

True Internet Channel Summation - OpenMPTCPRuter
Batuketa zerbitzariak kanal guztiak tunel batean biltzen ditu. Konexio guztiak batuketa zerbitzariaren helbidetik sortzen dira

Eskema honetan, hornitzaile guztiak erabiltzen dira, eta horietako edozein desgaitzeak ez du Twitch zerbitzariarekiko komunikazioa galtzea eragingo. Funtsean, VPN tunel berezi bat da, zeinaren azpian Interneteko hainbat kanal daude aldi berean. Eskema horren zeregin nagusia kalitate goreneko komunikazio kanala lortzea da. Hornitzaileetako bat arazoak izaten hasten badira, paketeak galtzen, atzerapenak areagotzen badira, horrek ez luke inola ere eragin behar komunikazioaren kalitatean, karga automatikoki banatuko baita eskuragarri dauden beste kanal hobeetan.

Irtenbide komertzialak

Arazo hau aspalditik kezkatzen ari da zuzeneko ekitaldiak emititzen dituztenak eta kalitate handiko Interneterako sarbidea ez dutenak. Horrelako zereginetarako, hainbat irtenbide komertzial daude, adibidez, Teradek enpresak horrelako bideratzaile izugarriak egiten ditu, zeinetan USB modem paketeak sartzen diren:

True Internet Channel Summation - OpenMPTCPRuter
Bideo-emisioetarako bideratzailea kanalen batuketa funtzioarekin

Horrelako gailuek normalean bideo-seinaleak HDMI edo SDI bidez harrapatzeko gaitasuna dute. Bideratzailearekin batera, kanalen batuketa zerbitzurako harpidetza bat saltzen da, baita bideo korrontea prozesatzea, transkodetzea eta gehiago transmititzea ere. Gailu horien prezioa $ 2k hasten da modem multzo batekin, gehi zerbitzurako harpidetza bereizia.

Batzuetan nahiko beldurgarria dirudi:

True Internet Channel Summation - OpenMPTCPRuter

OpenMPTCPRouter konfiguratzen

protokoloa MP-TCP (MultiPath TCP) hainbat kanalen bidez aldi berean konektatu ahal izateko asmatu zen. Adibidez, bere iOS onartzen du eta aldi berean urruneko zerbitzari batera konektatu daiteke WiFi bidez eta sare zelular baten bidez. Garrantzitsua da ulertzea ez direla bi TCP konexio bereiziak, bi kanaletan aldi berean ezarritako konexio bat baizik. Honek funtziona dezan, urruneko zerbitzariak MPTCP ere onartu behar du.

OpenMPTCPRouter kode irekiko software bideratzaile-proiektu bat da, benetako kanalen laburpena ahalbidetzen duena. Egileek adierazi dute proiektua alfa bertsioan dagoela, baina dagoeneko erabil daiteke. Bi zati ditu: batuketa zerbitzari bat, Interneten kokatuta dagoena eta bideratzailea, zeinari hainbat Interneteko hornitzaile eta bezero gailu beraiek konektatuta dauden: ordenagailuak, telefonoak. Bideratzaile pertsonalizatua Raspberry Pi bat, WiFi bideratzaile batzuk edo ordenagailu arrunt bat izan daiteke. Hainbat plataformatarako prest dauden muntaketak daude, eta hori oso erosoa da.

True Internet Channel Summation - OpenMPTCPRuter
Nola funtzionatzen duen OpenMPTCPRouter

Laburpen zerbitzaria konfiguratzea

Summing zerbitzaria Interneten dago eta bezeroaren bideratzailearen kanal guztietako konexioak bakarrean amaitzen ditu. Zerbitzari honen IP helbidea kanpoko helbidea izango da Internetera OpenMPTCPRuter bidez sartzean.

Zeregin honetarako VPS zerbitzari bat erabiliko dugu Debian 10-n.

Batuketa zerbitzariaren baldintzak:

  • MPTCP ez du funtzionatzen OpenVZ birtualizazioan
  • Zure Linux nukleoa instalatzea posible izan beharko litzateke

Zerbitzaria komando bat exekutatuz zabaltzen da. Scriptak kernel bat instalatuko du mptcp euskarria eta beharrezko pakete guztiak. Instalazio-scriptak Ubuntu eta Debian-entzat eskuragarri daude.

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

Zerbitzariaren instalazio arrakastatsu baten emaitza.

True Internet Channel Summation - OpenMPTCPRuter

Pasahitzak gordetzen ditugu, bezeroaren bideratzailea konfiguratzeko beharko ditugu, eta berrabiarazi. Kontuan izan behar da instalatu ondoren SSH erabilgarri egongo dela 65222 atakan. Berrabiarazi ondoren, nukleo berriarekin abiarazi dugula ziurtatu behar dugu.

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

Mptcp inskripzioa ikusten dugu bertsio-zenbakiaren ondoan, eta horrek esan nahi du nukleoa behar bezala instalatu dela.

Bezero-bideratzaile bat konfiguratzea

On proiektuaren webgunea Prestatutako eraikuntzak eskuragarri daude plataforma batzuetan, hala nola Raspberry Pi, Banana Pi, Lynksys bideratzaile eta makina birtualak.
Openmptcprouter-en zati hau OpenWRT-n oinarritzen da, LuCI interfaze gisa erabiliz, OpenWRT ezagutu duen edonorentzat ezaguna. Banaketak 50 MB inguruko pisua du!

True Internet Channel Summation - OpenMPTCPRuter

Proba-banku gisa, Raspberry Pi bat eta hainbat USB modem erabiliko ditut operadore ezberdinekin: MTS eta Megafon. Ez dut uste SD txartelean irudi bat nola idatzi behar duzun esan beharrik.

Hasieran, Raspberry Pi-ko Ethernet ataka lan gisa konfiguratuta dago IP helbide estatiko batekin 192.168.100.1. Mahaian hariak ez nahastea saihesteko, Raspberry Pi WiFi sarbide-puntu batera konektatu nuen eta ordenagailuaren WiFi egokitzailea helbide estatiko batean ezarri nuen. 192.168.100.2. DHCP zerbitzaria ez dago lehenespenez gaituta, beraz, helbide estatikoak erabili behar dituzu.

Orain web interfazean saioa hasi dezakezu 192.168.100.1

Lehen aldiz saioa hasten duzunean, sistemak root pasahitza ezartzeko eskatuko dizu; SSH pasahitz berarekin egongo da erabilgarri.

True Internet Channel Summation - OpenMPTCPRuter
LAN ezarpenetan, nahi duzun azpisarea ezar dezakezu eta DHCP zerbitzaria gaitu.

USB Ethernet interfaze gisa definitzen diren modemak erabiltzen ditut DHCP zerbitzari bereizi batekin, beraz, beharrezkoa da instalazioa pakete osagarriak. Prozedura OpenWRT arruntean modemak konfiguratzeko berdina da, beraz, ez dut hemen estaliko.

Ondoren, WAN interfazeak konfiguratu behar dituzu. Hasieran, sistemak bi interfaze birtual sortu zituen WAN1 eta WAN2. Gailu fisiko bat esleitu behar zaie, nire kasuan USB modem interfazeen izenak dira.

Interfazearen izenekin nahasketa saihesteko, SSH bidez konektatzen zaren bitartean dmesg mezuak ikustea gomendatzen dut.

Nire modemek beraiek bideratzaile gisa jarduten dutenez, eta beraiek DHCP zerbitzari bat dutenez, haien barne sare barrutietako ezarpenak aldatu eta DHCP zerbitzaria desgaitu behar izan nuen, hasiera batean bi modemek helbideak sare beretik ematen baitituzte, eta horrek gatazka sortzen du.

OpenMPTCPRouter-ek WAN interfazearen helbideak estatikoak izatea eskatzen du, beraz, modemetarako azpisareak sortzen ditugu eta sisteman β†’ openmptcprouter β†’ interfazearen ezarpenak menuan konfiguratzen ditugu. Hemen batuketa zerbitzariaren instalazioan lortutako IP helbidea eta zerbitzariaren gakoa zehaztu behar dituzu.

True Internet Channel Summation - OpenMPTCPRuter

Konfigurazioa arrakastatsua bada, antzeko irudi bat agertu beharko litzateke egoera orrian. Ikusten da bideratzailea batuketa zerbitzarira iristeko gai izan dela eta bi kanalak normaltasunez funtzionatzen ari direla.

True Internet Channel Summation - OpenMPTCPRuter

Modu lehenetsia shadowsocks + mptcp da. Konexio guztiak bere baitan biltzen dituen proxy bat da. Hasieran TCP soilik prozesatzeko konfiguratuta dago, baina UDP ere gaitu daiteke.

True Internet Channel Summation - OpenMPTCPRuter

Egoera-orrian akatsik ez badago, konfigurazioa amaitutzat jo daiteke.
Hornitzaile batzuekin, egoera bat sor daiteke mptcp bandera trafiko-bidean mozten denean, orduan errore hau agertuko da:

True Internet Channel Summation - OpenMPTCPRuter

Kasu honetan, beste modu operatibo bat erabil dezakezu, MPTCP erabili gabe, honi buruz gehiago Hemen.

Ondorioa

OpenMPTCPRouter proiektua oso interesgarria eta garrantzitsua da, agian kanalen batuketaren arazorako irtenbide integral ireki bakarra baita. Beste guztia oso itxia eta jabeduna da, edo pertsona arrunt batek ulertu ezin dituen modulu bereiziak, besterik gabe. Gaur egungo garapen-fasean, proiektua nahiko gordina da oraindik, dokumentazioa oso eskasa da, gauza asko ez dira deskribatzen. Baina, aldi berean, oraindik ere funtzionatzen du. Espero dut garatzen jarraitzea, eta kanalak behar bezala konbinatzeko gai izango diren etxeko bideratzaileak aterako ditugu.

True Internet Channel Summation - OpenMPTCPRuter

Jarraitu gure garatzailea Instagramen

True Internet Channel Summation - OpenMPTCPRuter

Iturria: www.habr.com

Gehitu iruzkin berria