Onko mahdollista yhdistää useita Internet-kanavia yhdeksi? Aiheeseen liittyy paljon väärinkäsityksiä ja myyttejä, vaikka kokeneet verkkoinsinöörit eivät usein tiedä, että tämä on mahdollista. Useimmissa tapauksissa linkkien yhdistämistä kutsutaan virheellisesti NAT-tasapainotukseksi tai vikasietoiseksi. Mutta todellinen summaus sallii käyttää yhtä TCP-yhteyttä samanaikaisesti kaikilla Internet-kanavilla, esimerkiksi videolähetys, jotta jos jokin Internet-kanavista keskeytyy, lähetys ei keskeydy.
Videolähetyksiä varten on kalliita kaupallisia ratkaisuja, mutta tällaiset laitteet maksavat paljon kilobuckeja. Artikkelissa kuvataan ilmaisen avoimen paketin OpenMPTCPRuter konfiguraatiota ja käsitellään suosittuja myyttejä kanavien summauksesta.
Myyttejä kanavien yhteenvedosta
Monet kotireitittimet tukevat Multi-WAN-toimintoa. Joskus valmistajat kutsuvat tätä kanavaa summaukseksi, mikä ei ole täysin totta. Monet verkottajat uskovat, että lisäksi
Tasapainotus IP-yhteyksien tasolla
Tämä on edullisin ja suosituin tapa käyttää useita Internet-kanavia samanaikaisesti. Yksinkertaisuuden vuoksi kuvitellaan, että sinulla on kolme Internet-palveluntarjoajaa, joista jokainen antaa sinulle oikean IP-osoitteen verkosta. Kaikki nämä palveluntarjoajat on yhdistetty reitittimeen, joka tukee Multi-WAN-toimintoa. Tämä voi olla OpenWRT mwan3-paketin kanssa, mikrotik, ubiquiti tai mikä tahansa muu kotitalousreititin, koska nyt tämä vaihtoehto ei ole enää harvinaista.
Voit simuloida tilannetta kuvittelemalla, että palveluntarjoajat antoivat meille seuraavat osoitteet:
WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33
Eli yhteyden muodostaminen etäpalvelimeen example.com kunkin palveluntarjoajan kautta etäpalvelin näkee asiakkaan kolme itsenäistä lähde-ip-osoitetta. Tasapainotuksen avulla voit jakaa kuorman kanavien kesken ja käyttää niitä kaikkia kolmea samanaikaisesti. Yksinkertaisuuden vuoksi kuvitellaan, että jaamme kuorman kaikkien kanavien kesken tasaisesti. Tämän seurauksena, kun asiakas avaa ehdollisesti sivuston, jossa on kolme kuvaa, hän lataa jokaisen kuvan erillisen palveluntarjoajan kautta. Sivuston puolella se näyttää yhteyksiltä kolmelta eri IP:ltä.
Yhteystasolla tasapainotettaessa jokainen TCP-yhteys kulkee erillisen palveluntarjoajan kautta.
Tämä tasapainotustila aiheuttaa usein ongelmia käyttäjille. Esimerkiksi monet sivustot kiinnittävät evästeitä ja tunnuksia asiakkaan IP-osoitteeseen, ja jos se yhtäkkiä muuttuu, pyyntö hylätään tai asiakas kirjautuu ulos sivustolta. Tämä toistetaan usein asiakaspankkijärjestelmissä ja muilla sivustoilla, joilla on tiukat käyttäjäistuntosäännöt. Tässä on yksinkertainen havainnollistava esimerkki: VK.comin musiikkitiedostot ovat saatavilla vain kelvollisella istuntoavaimella, joka on sidottu IP-osoitteeseen, ja tällaista tasapainotusta käyttävät asiakkaat eivät usein toista ääntä, koska pyyntö ei mennyt sen palveluntarjoajan kautta, johon istunto on sidottu.
Kun lataat torrentteja, yhteystasolla tasapainottaminen summaa kaikkien kanavien kaistanleveyden
Tällainen tasapainotus mahdollistaa Internet-kanavan nopeuden summauksen, kun käytetään useita yhteyksiä. Esimerkiksi, jos kunkin kolmen palveluntarjoajan nopeus on 100 megabittiä, torrentteja ladattaessa saamme 300 megabittiä. Koska torrent avaa paljon yhteyksiä, jotka jakautuvat kaikkien tarjoajien kesken ja käyttävät lopulta koko kanavaa.
On tärkeää ymmärtää, että yksi TCP-yhteys kulkee aina vain yhden palveluntarjoajan kautta. Eli jos lataamme yhden suuren tiedoston HTTP:n kautta, tämä yhteys muodostetaan yhden palveluntarjoajan kautta, ja jos yhteys tämän palveluntarjoajan kanssa katkeaa, myös lataus katkeaa.
Yksi yhteys käyttää aina vain yhtä Internet-kanavaa
Tämä pätee myös videolähetyksiin. Jos lähetät suoratoistovideota jossain ehdollisessa Twitchissä, IP-yhteyksien tasolla tasapainottaminen ei tuota erityistä hyötyä, koska videovirta lähetetään yhden IP-yhteyden sisällä. Tässä tapauksessa, jos WAN 3 -palveluntarjoajalla alkaa olla viestintäongelmia, kuten pakettien katoaminen tai hidastuminen, et voi vaihtaa välittömästi toiseen palveluntarjoajaan. Lähetys on lopetettava ja yhdistettävä uudelleen.
Todellinen kanavan yhteenveto
Kanavien todellinen summaus mahdollistaa yhden yhteyden käynnistämisen ehdolliseen Twitchiin kaikkien palveluntarjoajien kautta kerralla siten, että jos jokin palveluntarjoajista katkeaa, yhteys ei katkea. Tämä on yllättävän vaikea ongelma, jolle ei vieläkään ole optimaalista ratkaisua. Monet eivät edes tiedä, että tämä on mahdollista!
Edellisistä kuvista muistamme, että ehdollinen Twitch-palvelin voi vastaanottaa meiltä videostriimiä vain yhdestä lähteen IP-osoitteesta, mikä tarkoittaa, että sen on oltava aina vakiona, riippumatta siitä, mitkä palveluntarjoajat ovat pudonneet ja mitkä toimivat. Tämän saavuttamiseksi tarvitsemme summauspalvelimen, joka katkaisee kaikki yhteydemme ja yhdistää ne yhdeksi.
Summauspalvelin kokoaa kaikki kanavat yhteen tunneliin. Kaikki yhteydet ovat peräisin summauspalvelimen osoitteesta
Tämä järjestelmä käyttää kaikkia palveluntarjoajia, ja minkä tahansa niistä poistaminen käytöstä ei aiheuta yhteyden katkeamista Twitch-palvelimen kanssa. Itse asiassa tämä on erityinen VPN-tunneli, jonka konepellin alla on useita Internet-kanavia kerralla. Tällaisen järjestelmän päätehtävänä on saada korkealaatuisin viestintäkanava. Jos ongelmat alkavat jostain palveluntarjoajasta, pakettien katoaminen, viiveiden lisääntyminen, tämän ei pitäisi vaikuttaa viestinnän laatuun millään tavalla, koska kuorma jakautuu automaattisesti muille, paremmille kanaville, jotka ovat käytettävissä.
Kaupalliset ratkaisut
Tämä ongelma on jo pitkään ollut huolenaihe niille, jotka lähettävät tapahtumia suorana ja joilla ei ole pääsyä korkealaatuiseen Internetiin. Tällaisiin tehtäviin on olemassa useita kaupallisia ratkaisuja, esimerkiksi Teradek tekee sellaisia hirviömäisiä reitittimiä, joihin laitetaan USB-modeemipaketit:
Lähetysvideoreititin kanavien summaustoiminnolla
Tällaisilla laitteilla on yleensä mahdollisuus kaapata videota HDMI:n tai SDI:n kautta. Yhdessä reitittimen kanssa myydään kanavan summauspalvelun tilaus sekä videovirran käsittely, transkoodaus ja edelleenlähetys. Tällaisten laitteiden hinta alkaa 2 XNUMX dollarista modeemisarjalla sekä erillisellä palvelun tilauksella.
Joskus se näyttää melko pelottavalta:
OpenMPTCPRuterin asetukset
protokolla
Kuinka OpenMPTCPRuter toimii
Yhteenvetopalvelimen asetukset
Summauspalvelin sijaitsee Internetissä ja katkaisee yhteydet kaikista asiakasreitittimen kanavista yhdeksi. Tämän palvelimen IP-osoite on ulkoinen osoite käytettäessä Internetiä OpenMPTCPRuterin kautta.
Käytämme tähän tehtävään VPS-palvelinta Debian 10:ssä.
Summauspalvelinvaatimukset:
- MPTCP ei toimi OpenVZ-virtualisoinnissa
- Oma Linux-ytimen pitäisi olla mahdollista asentaa
Palvelin otetaan käyttöön suorittamalla yksi komento. Komentosarja asentaa mptcp-yhteensopivan ytimen ja kaikki tarvittavat paketit. Asennuskomentosarjat ovat saatavilla Ubuntulle ja Debianille.
wget -O - http://www.openmptcprouter.com/server/debian10-x86_64.sh | sh
Onnistuneen palvelimen asennuksen tulos.
Tallennamme salasanat, tarvitsemme niitä asiakasreitittimen määrittämiseen ja uudelleenkäynnistykseen. On tärkeää muistaa, että asennuksen jälkeen SSH on käytettävissä portissa 65222. Uudelleenkäynnistyksen jälkeen meidän on varmistettava, että käynnistämme uuden ytimen
uname -a
Linux test-server.local 4.19.67-mptcp
Näemme versionumeron vieressä merkinnän mptcp, mikä tarkoittaa, että ydin on asennettu oikein.
Asiakasreitittimen määrittäminen
Päälle
Tämä openmptcprouterin osa perustuu OpenWRT:hen, joka käyttää käyttöliittymänä LuCI:ta, joka on tuttu kaikille OpenWRT:tä koskaan kohdanneille. Jakelusarja painaa noin 50 Mb!
Testipenkinä käytän Raspberry Pi:tä ja useita USB-modeemeja eri operaattoreilla: MTS ja Megafon. Kuinka kirjoittaa kuva SD-kortille, ei kai tarvitse kertoa.
Aluksi Raspberry Pi:n Ethernet-portti on määritetty laniksi, jossa on staattinen IP-osoite. 192.168.100.1. Jotta en sotkeutuisi pöydällä olevien johtojen kanssa, liitin Raspberry Pi:n WiFi-tukiasemaan ja asetin staattisen osoitteen tietokoneen WiFi-sovittimeen. 192.168.100.2. DHCP-palvelin ei ole oletusarvoisesti käytössä, joten staattisia osoitteita on käytettävä.
Nyt voit siirtyä verkkokäyttöliittymään
Kun kirjaudut sisään ensimmäisen kerran, järjestelmä pyytää sinua asettamaan root-salasanan, SSH on käytettävissä samalla salasanalla.
LAN-asetuksissa voit määrittää haluamasi aliverkon ja ottaa käyttöön DHCP-palvelimen.
Käytän modeemeja, jotka on määritelty USB-ethernet-liitännöiksi erillisellä DHCP-palvelimella, joten tämä vaati asennusta
Seuraavaksi sinun on määritettävä WAN-liitännät. Aluksi järjestelmään luotiin kaksi virtuaalista rajapintaa WAN1 ja WAN2. Heidän on määritettävä fyysinen laite, minun tapauksessani nämä ovat USB-modeemiliitäntöjen nimiä.
Jotta käyttöliittymän nimet eivät hämmenny, suosittelen katsomaan dmesg-viestejä ollessasi yhteydessä SSH:n kautta.
Koska modeemit toimivat itse reitittiminä ja niillä on itse DHCP-palvelin, jouduin muuttamaan niiden sisäisten verkkoalueiden asetuksia ja poistamaan DHCP-palvelimen käytöstä, koska aluksi molemmat modeemit antavat osoitteita samasta verkosta, mikä aiheuttaa ristiriidan.
OpenMPTCPRuter vaatii WAN-liitäntäosoitteiden olevan staattisia, joten keksimme modeemeille aliverkot ja konfiguroimme ne järjestelmässä → openmptcprouter → käyttöliittymän asetukset. Täällä sinun on myös määritettävä summauspalvelimen asennuksen aikana saatu IP-osoite ja palvelinavain.
Jos asennus onnistuu, tilasivulla pitäisi näkyä samanlainen kuva. Voidaan nähdä, että reititin onnistui tavoittamaan summauspalvelimen ja molemmat kanavat toimivat oikein.
Oletustila on shadowsocks + mptcp. Tämä on sellainen välityspalvelin, joka käärii kaikki yhteydet itsessään. Aluksi se on määritetty käsittelemään vain TCP:tä, mutta voit ottaa myös UDP:n käyttöön.
Jos tilasivulla ei ole virheitä, asennuksen voidaan katsoa olevan valmis.
Joidenkin palveluntarjoajien kanssa voi syntyä tilanne, kun mptcp-lippu katkaistaan liikennereitillä, niin tapahtuu tällainen virhe:
Tässä tapauksessa voit käyttää toista toimintatilaa ilman MPTCP:tä, lisää tästä
Johtopäätös
OpenMPTCPRuter-projekti on erittäin mielenkiintoinen ja tärkeä, koska se on ehkä ainoa avoin monimutkainen ratkaisu kanavien summausongelmaan. Kaikki muu on joko tiukasti suljettua ja omaa tai vain erillisiä moduuleja, joita tavallinen ihminen ei voi käsitellä. Nykyisessä kehitysvaiheessa projekti on vielä melko raaka, erittäin huono dokumentaatio, monia asioita ei yksinkertaisesti ole kuvattu. Mutta samalla se toimii edelleen. Toivon sen kehittyvän edelleen ja saamme kotitalousreitittimiä, jotka pystyvät yhdistämään kanavia normaalisti pakkauksesta.
Seuraa kehittäjäämme Instagramissa
Lähde: will.com