Pravo sumiranje Internet kanala - OpenMPTCPRuter

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Da li je moguće spojiti nekoliko internet kanala u jedan? Postoji mnogo zabluda i mitova oko ove teme, čak ni iskusni mrežni inženjeri često ne znaju da je to moguće. U većini slučajeva, agregacija linkova se pogrešno naziva NAT balansiranje ili prelazak na grešku. Ali stvarno zbrajanje dozvoljava pokrenuti jednu TCP vezu istovremeno preko svih Internet kanala, na primjer, video emitovanje, tako da ako se prekine bilo koji od internet kanala, emitiranje neće biti prekinuto.

Postoje skupa komercijalna rješenja za video emitovanje, ali takvi uređaji koštaju mnogo kilobaksa. Članak opisuje konfiguraciju besplatnog otvorenog paketa OpenMPTCPRuter i bavi se popularnim mitovima o zbrajanju kanala.

Mitovi o sabiranju kanala

Postoji mnogo kućnih rutera koji podržavaju funkciju Multi-WAN. Ponekad proizvođači ovaj kanal nazivaju zbrajanjem, što nije sasvim tačno. Mnogi mrežari vjeruju da pored LACP i sumiranje na L2 sloju, ne postoji druga agregacija kanala. Često sam čuo da je to generalno nemoguće od ljudi koji rade u telekomunikacijama. Stoga, pokušajmo razumjeti popularne mitove.

Balansiranje na nivou IP konekcija

Ovo je najpovoljniji i najpopularniji način korištenja nekoliko internetskih kanala u isto vrijeme. Radi jednostavnosti, zamislimo da imate tri ISP-a, od kojih svaki daje pravu IP adresu sa svoje mreže. Svi ovi provajderi su povezani na ruter sa podrškom za Multi-WAN funkciju. Ovo može biti OpenWRT sa mwan3 paketom, mikrotik, ubiquiti ili bilo koji drugi kućni ruter, jer sada ova opcija više nije neuobičajena.

Da bismo simulirali situaciju, zamislimo da su nam provajderi dali sljedeće adrese:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Odnosno, povezivanje na udaljeni server example.com preko svakog od provajdera, udaljeni server će vidjeti tri nezavisna izvorna IP-a klijenta. Balansiranje vam omogućava da podijelite opterećenje na kanale i koristite ih sva tri u isto vrijeme. Radi jednostavnosti, zamislimo da podijelimo opterećenje između svih kanala podjednako. Kao rezultat toga, kada klijent otvori stranicu sa tri slike uslovno, on preuzima svaku sliku preko zasebnog provajdera. Na strani stranice, to izgleda kao veze sa tri različite IP adrese.

Pravo sumiranje Internet kanala - OpenMPTCPRuter
Kada se balansira na nivou veze, svaka TCP veza prolazi kroz zasebnog provajdera.

Ovaj način balansiranja često uzrokuje probleme korisnicima. Na primjer, mnoge web lokacije hard-wire kolačiće i tokene na klijentovu IP adresu, a ako se iznenada promijeni, zahtjev se odbacuje ili se klijent odjavljuje sa stranice. Ovo se često reprodukuje u sistemima klijent-banka i drugim sajtovima sa strogim pravilima sesije korisnika. Evo jednostavnog ilustrativnog primjera: muzičke datoteke na VK.com dostupne su samo sa važećim ključem sesije koji je vezan za IP, a klijenti koji koriste takvo balansiranje često ne reproduciraju zvuk, jer zahtjev nije prošao preko provajdera kojem je sjednica je vezana.

Pravo sumiranje Internet kanala - OpenMPTCPRuter
Prilikom preuzimanja torrenta, balansiranje na nivou veze zbraja propusni opseg svih kanala

Takvo balansiranje vam omogućava da dobijete zbir brzine internetskog kanala kada koristite više veza. Na primjer, ako svaki od tri provajdera ima brzinu od 100 megabita, tada ćemo prilikom preuzimanja torrenta dobiti 300 megabita. Jer torrent otvara mnogo veza koje se distribuiraju među svim provajderima i na kraju iskorištavaju cijeli kanal.

Važno je shvatiti da će jedna TCP veza uvijek ići samo preko jednog provajdera. Odnosno, ako preuzmemo jednu veliku datoteku putem HTTP-a, tada će se ova veza ostvariti preko jednog od provajdera, a ako se veza s ovim provajderom prekine, onda će se i preuzimanje prekinuti.

Pravo sumiranje Internet kanala - OpenMPTCPRuter
Jedna veza će uvijek koristiti samo jedan internet kanal

Ovo važi i za video prenose. Ako emitujete striming video na nekom uslovnom Twitchu, tada balansiranje na nivou IP konekcija neće dati nikakvu posebnu korist, jer će se video stream emitovati unutar jedne IP veze. U ovom slučaju, ako WAN 3 provajder počne da ima problema u komunikaciji, kao što je gubitak paketa ili usporavanje, nećete moći odmah da se prebacite na drugog provajdera. Emitiranje će se morati zaustaviti i ponovo povezati.

Pravo sumiranje kanala

Pravo zbrajanje kanala omogućava pokretanje jedne veze na uslovni Twitch preko svih provajdera odjednom na način da ako se bilo koji od provajdera prekine, veza neće biti prekinuta. Ovo je iznenađujuće težak problem, koji još uvijek nema optimalno rješenje. Mnogi ni ne znaju da je to moguće!

Iz prethodnih ilustracija se sjećamo da uslovni Twitch server može primiti video stream od nas samo sa jedne izvorne IP adrese, što znači da uvijek mora biti konstantan kod nas, bez obzira koji provajderi su pali i koji rade. Da bismo to postigli, potreban nam je server za sumiranje koji će prekinuti sve naše veze i spojiti ih u jednu.

Pravo sumiranje Internet kanala - OpenMPTCPRuter
Sumacijski server agregira sve kanale u jedan tunel. Sve veze potiču sa adrese servera za sumiranje

Ova shema koristi sve provajdere, a onemogućavanje bilo kojeg od njih neće uzrokovati gubitak komunikacije s Twitch serverom. Zapravo, ovo je poseban VPN tunel, ispod kojeg se nalazi nekoliko internetskih kanala odjednom. Glavni zadatak takve sheme je dobiti najkvalitetniji komunikacijski kanal. Ako problemi počnu kod nekog od provajdera, gubitak paketa, povećanje kašnjenja, onda to ni na koji način ne bi trebalo da utiče na kvalitet komunikacije, jer će se opterećenje automatski rasporediti na druge, bolje kanale koji su dostupni.

Komercijalna rješenja

Ovaj problem već dugo brine one koji događaje prenose uživo i nemaju pristup visokokvalitetnom internetu. Za takve zadatke postoji nekoliko komercijalnih rješenja, na primjer, Teradek pravi takve monstruozne rutere u koje se ubacuju paketi USB modema:

Pravo sumiranje Internet kanala - OpenMPTCPRuter
Video ruter za emitovanje sa funkcijom sumiranja kanala

Takvi uređaji obično imaju mogućnost snimanja videa putem HDMI ili SDI. Zajedno s ruterom prodaje se pretplata na uslugu sumiranja kanala, kao i obrada video toka, njegovo transkodiranje i daljnji prijenos. Cijena ovakvih uređaja kreće se od 2k dolara sa setom modema, plus posebna pretplata na uslugu.

Ponekad izgleda prilično zastrašujuće:

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Postavljanje OpenMPTCPRoutera

Protokol MP-TCP (MultiPath TCP) je izmišljen za mogućnost povezivanja na nekoliko kanala odjednom. Na primjer, njegov podržava iOS i može se istovremeno povezati na udaljeni server preko WiFi i putem mobilne mreže. Važno je shvatiti da to nisu dvije odvojene TCP veze, već jedna veza uspostavljena preko dva kanala odjednom. Da bi ovo funkcioniralo, udaljeni poslužitelj također mora podržavati MPTCP.

OpenMPTCPRuter je projekat rutera otvorenog koda koji vam omogućava da istinski zbrojite kanale. Autori izjavljuju da je projekat u statusu alfa verzije, ali se već može koristiti. Sastoji se iz dva dijela - servera za sumiranje, koji se nalazi na Internetu i rutera, na koji je povezano nekoliko internet provajdera i samih klijentskih uređaja: računari, telefoni. Prilagođeni ruter može biti Raspberry Pi, neki WiFi ruteri ili običan računar. Postoje gotovi sklopovi za različite platforme, što je vrlo zgodno.

Pravo sumiranje Internet kanala - OpenMPTCPRuter
Kako radi OpenMPTCPRuter

Podešavanje servera za sažetak

Sumirajući server se nalazi na Internetu i prekida veze sa svih kanala klijentskog rutera u jedan. IP adresa ovog servera će biti eksterna adresa kada pristupate Internetu preko OpenMPTCPRoutera.

Za ovaj zadatak koristit ćemo VPS poslužitelj na Debianu 10.

Zahtjevi servera za sumiranje:

  • MPTCP ne radi na OpenVZ virtuelizaciji
  • Trebalo bi biti moguće instalirati vlastiti Linux kernel

Server se postavlja izvršavanjem jedne naredbe. Skripta će instalirati kernel omogućen za mptcp i sve potrebne pakete. Instalacijske skripte su dostupne za Ubuntu i Debian.

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

Rezultat uspješne instalacije servera.

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Sačuvamo lozinke, trebat će nam za konfiguraciju klijentskog rutera i ponovno pokretanje. Važno je imati na umu da će nakon instalacije SSH biti dostupan na portu 65222. Nakon ponovnog pokretanja, moramo biti sigurni da pokrećemo s novim kernelom

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

Vidimo natpis mptcp pored broja verzije, što znači da je kernel ispravno instaliran.

Postavljanje klijentskog rutera

U web stranica projekta Dostupne su gotove verzije za neke platforme, kao što su Raspberry Pi, Banana Pi, Lynksys ruteri i virtuelne mašine.
Ovaj dio openmptcprouter-a je baziran na OpenWRT-u, koristeći LuCI kao interfejs, poznat svima koji su se ikada susreli sa OpenWRT-om. Distribucijski komplet je težak oko 50Mb!

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Kao probni sto koristiću Raspberry Pi i nekoliko USB modema sa različitim operaterima: MTS i Megafon. Kako napisati sliku na SD karticu, pretpostavljam, ne treba govoriti.

U početku je Ethernet port u Raspberry Pi konfigurisan kao lan sa statičkom IP adresom. 192.168.100.1. Da se ne petljam sa žicama na stolu, spojio sam Raspberry Pi na WiFi pristupnu tačku i postavio statičku adresu na WiFi adapteru računara 192.168.100.2. DHCP server nije uključen po defaultu, pa se moraju koristiti statičke adrese.

Sada možete ići na web interfejs 192.168.100.1

Kada se prvi put prijavite, sistem će od vas tražiti da postavite root lozinku, SSH će biti dostupan sa istom lozinkom.

Pravo sumiranje Internet kanala - OpenMPTCPRuter
U LAN postavkama možete postaviti željenu podmrežu i omogućiti DHCP server.

Koristim modeme koji su definisani kao USB eternet interfejsi sa zasebnim DHCP serverom, tako da je ovo zahtevalo instalaciju dodatni paketi. Procedura je identična konfigurisanju modema u običnom OpenWRT-u, tako da je neću ovde pokrivati.

Zatim morate konfigurirati WAN sučelje. U početku su u sistemu kreirana dva virtuelna interfejsa WAN1 i WAN2. Trebaju im dodijeliti fizički uređaj, u mom slučaju, ovo su nazivi USB modemskih sučelja.

Da se ne biste zabunili u nazivima interfejsa, savjetujem vam da gledate dmesg poruke dok ste povezani preko SSH-a.

Pošto moji modemi sami djeluju kao ruteri i sami imaju DHCP server, morao sam promijeniti postavke njihovih internih mrežnih opsega i onemogućiti DHCP server, jer u početku oba modema izdaju adrese iz iste mreže, a to uzrokuje konflikt.

OpenMPTCPRuter zahteva da adrese WAN interfejsa budu statične, tako da izmišljamo podmreže za modeme i konfigurišemo ih u sistemu → openmptcprouter → meni za podešavanja interfejsa. Ovdje također trebate navesti IP adresu i ključ servera koji ste dobili tokom instalacije servera za sumiranje.

Pravo sumiranje Internet kanala - OpenMPTCPRuter

U slučaju uspješnog podešavanja, slična slika bi se trebala pojaviti na stranici statusa. Vidi se da je ruter uspio doći do servera za sumiranje i oba kanala rade ispravno.

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Zadani način rada je shadowsocks + mptcp. Ovo je takav proxy koji omotava sve veze u sebe. U početku je konfigurisan da obrađuje samo TCP, ali možete omogućiti i UDP.

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Ako na stranici sa statusom nema grešaka, podešavanje se može smatrati završenim.
Kod nekih provajdera može nastati situacija kada se mptcp zastavica skrati duž putanje prometa, tada će doći do takve greške:

Pravo sumiranje Internet kanala - OpenMPTCPRuter

U ovom slučaju možete koristiti drugi način rada, bez korištenja MPTCP-a, više o tome ovdje.

zaključak

Projekat OpenMPTCPRouter je veoma interesantan i važan, jer je to možda jedino otvoreno kompleksno rešenje za problem sumiranja kanala. Sve ostalo je ili čvrsto zatvoreno i zaštićeno, ili samo zasebni moduli s kojima običan čovjek ne može da se nosi. U trenutnoj fazi razvoja projekat je još dosta sirov, izuzetno loša dokumentacija, mnoge stvari jednostavno nisu opisane. Ali u isto vrijeme i dalje radi. Nadam se da će se i dalje razvijati, a mi ćemo iz kutije dobiti kućne rutere koji će moći normalno kombinirati kanale.

Pravo sumiranje Internet kanala - OpenMPTCPRuter

Pratite našeg programera na Instagramu

Pravo sumiranje Internet kanala - OpenMPTCPRuter

izvor: www.habr.com

Dodajte komentar