Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Бірнеше интернет арнасын бір арнаға біріктіруге бола ма? Бұл тақырып төңірегінде көптеген қате түсініктер мен мифтер бар, тіпті тәжірибелі желі инженерлері мұның мүмкін екенін жиі білмейді. Көп жағдайда сілтемелерді біріктіру қате түрде NAT деңгейінде теңдестіру немесе ауыстырып қосу деп аталады. Бірақ нақты жиынтық мүмкіндік береді барлық интернет арналары арқылы бір уақытта бір TCP қосылымын іске қосыңыз, мысалы, интернет-арналардың кез келгені үзілсе, таратылым үзілмейтіндей етіп бейне хабар тарату.

Бейне хабарларын тарату үшін қымбат коммерциялық шешімдер бар, бірақ мұндай құрылғылардың құны көптеген килобактер. Мақалада тегін, ашық бастапқы OpenMPTCPRouter бумасын конфигурациялау жолы сипатталады және арналарды жинақтау туралы танымал мифтер қарастырылады.

Арнаны қорытындылау туралы мифтер

Multi-WAN функциясын қолдайтын көптеген үй маршрутизаторлары бар. Кейде өндірушілер бұл арнаны жинақтау деп атайды, бұл мүлдем дұрыс емес. Көптеген сетевойшылар бұған қосымша деп санайды LACP және L2 деңгейіндегі жинақтау, басқа арналарды біріктіру жоқ. Мен телекоммуникацияда жұмыс істейтін адамдардан бұл мүмкін емес екенін жиі естідім. Сондықтан танымал мифтерді түсінуге тырысайық.

IP қосылым деңгейінде теңдестіру

Бұл бірнеше интернет арналарын бір уақытта пайдаланудың ең қолжетімді және танымал тәсілі. Қарапайымдылық үшін сізде үш Интернет-провайдер бар деп елестетіп көрейік, олардың әрқайсысы сізге өз желісінен нақты IP мекенжайын береді. Барлық осы провайдерлер Multi-WAN функциясын қолдайтын маршрутизаторға қосылған. Бұл mwan3 пакетімен, mikrotik, ubiquiti немесе кез келген басқа тұрмыстық маршрутизатормен OpenWRT болуы мүмкін, өйткені мұндай опция енді сирек емес.

Жағдайды модельдеу үшін провайдерлер бізге келесі мекенжайларды берді деп елестетейік:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

Яғни, қашықтағы серверге қосылу example.com Әрбір провайдер арқылы қашықтағы сервер үш тәуелсіз бастапқы IP клиентін көреді. Баланстау жүктемені арналар бойынша бөлуге және олардың үшеуін бір уақытта пайдалануға мүмкіндік береді. Қарапайымдылық үшін жүктемені барлық арналар арасында тең бөлеміз деп елестетейік. Нәтижесінде клиент үш суреті бар сайтты ашқанда, ол әр суретті бөлек провайдер арқылы жүктейді. Сайт жағында ол үш түрлі IP-ден қосылымдарға ұқсайды.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
Қосылым деңгейінде теңгерімдеу кезінде әрбір TCP қосылымы бөлек провайдер арқылы өтеді.

Бұл теңдестіру режимі жиі пайдаланушылар үшін қиындықтар тудырады. Мысалы, көптеген сайттар cookie файлдары мен таңбалауыштарды клиенттің IP мекенжайына қатаң түрде байланыстырады және ол кенеттен өзгерсе, сұрау қабылданбайды немесе клиент сайттан шығады. Бұл көбінесе клиент-банк жүйелерінде және қатаң пайдаланушы сеансы ережелері бар басқа сайттарда қайталанады. Қарапайым көрнекі мысал: VK.com сайтындағы музыкалық файлдар IP-ге байланысты жарамды сеанс кілтімен ғана қолжетімді және мұндай теңгерімдеуді пайдаланатын клиенттер жиі дыбысты ойнатпайды, себебі сұрау провайдер арқылы өтпеген. сессия аяқталды.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
Торренттерді жүктеп алу кезінде қосылым деңгейін теңдестіру барлық арналардың өткізу қабілетін қорытындылайды

Бұл теңгерімдеу бірнеше қосылымдарды пайдалану кезінде Интернет арнасының жылдамдығының қосындысын алуға мүмкіндік береді. Мысалы, егер үш провайдердің әрқайсысының жылдамдығы 100 мегабит болса, торрентті жүктеп алған кезде біз 300 мегабит аламыз. Өйткені торрент көптеген қосылымдарды ашады, олар барлық провайдерлер арасында таратылады және сайып келгенде, бүкіл арнаны пайдаланады.

Бір TCP қосылымы әрқашан тек бір провайдер арқылы өтетінін түсіну маңызды. Яғни, HTTP арқылы бір үлкен файлды жүктеп алсақ, онда бұл байланыс провайдерлердің бірі арқылы жүзеге асады, ал егер бұл провайдермен байланыс үзілсе, жүктеу де үзіледі.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
Бір қосылым әрқашан тек бір интернет арнасын пайдаланады

Бұл бейне хабарларға да қатысты. Егер сіз қандай да бір шартты Twitch-ке ағынды бейнені тарататын болсаңыз, онда IP қосылымдары деңгейінде теңгерімдеу ешқандай ерекше пайда әкелмейді, өйткені бейне ағыны бір IP қосылымында таратылады. Бұл жағдайда, егер WAN 3 провайдерінде пакеттің жоғалуы немесе жылдамдықтың төмендеуі сияқты байланыс проблемалары туындаса, сіз басқа провайдерге бірден ауыса алмайсыз. Трансляцияны тоқтатып, қайта қосу керек.

Арнаның шынайы қорытындысы

Арнаның нақты қосындысы шартты Twitch-ке бір қосылымды барлық провайдерлер арқылы бірден іске қосуға мүмкіндік береді, осылайша провайдерлердің кез келгені бұзылса, байланыс үзілмейді. Бұл әлі күнге дейін оңтайлы шешімі жоқ таңқаларлық күрделі мәселе. Көптеген адамдар бұл мүмкін екенін білмейді!

Алдыңғы суреттерден біз шартты Twitch сервері бізден бейне ағынын тек бір бастапқы IP мекенжайынан ала алатынын есте ұстаймыз, яғни ол қандай провайдерлер істен шыққанына және қайсысы жұмыс істеп жатқанына қарамастан біз үшін әрқашан тұрақты болуы керек. Бұған қол жеткізу үшін бізге барлық қосылымдарымызды тоқтататын және оларды бір біріктіретін жиынтық сервер қажет.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
Қорытындылау сервері барлық арналарды бір туннельге біріктіреді. Барлық қосылымдар қосынды сервер мекенжайынан туындайды

Бұл схемада барлық провайдерлер пайдаланылады және олардың кез келгенін өшіру Twitch серверімен байланысты жоғалтпайды. Негізінде бұл арнайы VPN туннелі, оның астында бірден бірнеше интернет арналары бар. Мұндай схеманың негізгі міндеті - жоғары сапалы байланыс арнасын алу. Егер провайдерлердің бірінде проблемалар туындаса, пакеттердің жоғалуы, кідірістердің жоғарылауы болса, бұл байланыс сапасына ешқандай әсер етпеуі керек, өйткені жүктеме автоматты түрде қол жетімді басқа, жақсырақ арналарға бөлінеді.

Коммерциялық шешімдер

Бұл мәселе тікелей эфирді тарататын және жоғары сапалы интернетке қол жеткізе алмайтындарды көптен мазалап жүр. Мұндай тапсырмалар үшін бірнеше коммерциялық шешімдер бар, мысалы, Teradek компаниясы USB модемдерінің бумалары салынған осындай қорқынышты маршрутизаторларды жасайды:

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
Арналарды жинақтау функциясы бар бейне хабарларға арналған маршрутизатор

Мұндай құрылғылардың әдетте HDMI немесе SDI арқылы бейне сигналдарды түсіру мүмкіндігі бар. Маршрутизатормен бірге арналарды жинақтау қызметіне жазылу сатылады, сондай-ақ бейне ағынын өңдеу, оны қайта кодтау және одан әрі жіберу. Мұндай құрылғылардың бағасы модемдер жиынтығымен және қызметке бөлек жазылумен 2 мың доллардан басталады.

Кейде бұл өте қорқынышты көрінеді:

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

OpenMPTCPRouter орнату

Хаттама MP-TCP (MultiPath TCP) бірден бірнеше арна арқылы қосыла алатындай етіп ойлап табылған. Мысалы, оның iOS жүйесін қолдайды және бір уақытта қашықтағы серверге WiFi және ұялы желі арқылы қосыла алады. Бұл екі бөлек TCP қосылымы емес, бірден екі арна арқылы орнатылған бір қосылым екенін түсіну маңызды. Бұл жұмыс істеуі үшін қашықтағы сервер де MPTCP қолдауы керек.

OpenMPTCPRouter шынайы арнаны қорытындылауға мүмкіндік беретін ашық бастапқы бағдарламалық құрал маршрутизатор жобасы. Авторлар жобаның альфа нұсқасы күйінде екенін, бірақ оны қазірдің өзінде пайдалануға болатынын айтады. Ол екі бөліктен тұрады - Интернетте орналасқан жиынтық сервер және бірнеше интернет-провайдерлер мен клиенттік құрылғылардың өзі қосылған маршрутизатор: компьютерлер, телефондар. Пайдаланушы маршрутизаторы Raspberry Pi, кейбір WiFi маршрутизаторлары немесе қарапайым компьютер болуы мүмкін. Әртүрлі платформалар үшін дайын жинақтар бар, бұл өте ыңғайлы.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
OpenMPTCPRouter қалай жұмыс істейді

Қорытындылау серверін орнату

Жиынтық сервер Интернетте орналасқан және клиенттік маршрутизатордың барлық арналарынан қосылымдарды бір арнаға тоқтатады. Бұл сервердің IP мекенжайы OpenMPTCPRouter арқылы Интернетке кіру кезінде сыртқы мекенжай болады.

Бұл тапсырма үшін біз Debian 10 жүйесінде VPS серверін қолданамыз.

Жиынтық серверге қойылатын талаптар:

  • MPTCP OpenVZ виртуализациясында жұмыс істемейді
  • Жеке Linux ядросын орнату мүмкіндігі болуы керек

Сервер бір пәрменді орындау арқылы орналастырылады. Сценарий mptcp қолдауы бар ядроны және барлық қажетті бумаларды орнатады. Орнату сценарийлері Ubuntu және Debian үшін қол жетімді.

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

Сәтті серверді орнату нәтижесі.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Біз құпия сөздерді сақтаймыз, олар клиенттік маршрутизаторды конфигурациялау және қайта жүктеу үшін қажет болады. Орнатқаннан кейін SSH 65222 портында қолжетімді болатынын есте ұстаған жөн. Қайта жүктегеннен кейін біз жаңа ядромен жүктелгенімізге көз жеткізуіміз керек.

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

Нұсқа нөмірі жанында mptcp жазуын көреміз, бұл ядро ​​дұрыс орнатылғанын білдіреді.

Клиенттік маршрутизаторды орнату

туралы жобаның сайты Raspberry Pi, Banana Pi, Lynksys маршрутизаторлары және виртуалды машиналар сияқты кейбір платформалар үшін дайын құрастырмалар қол жетімді.
Openmptcprouter бағдарламасының бұл бөлігі OpenWRT-ге негізделген, интерфейс ретінде LuCI пайдаланады, OpenWRT-ті бұрыннан кездестірген кез келген адамға таныс. Дистрибьюцияның салмағы шамамен 50 МБ!

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Сынақ үстелі ретінде мен Raspberry Pi және әртүрлі операторлары бар бірнеше USB модемдерін қолданамын: MTS және Megafon. SD картасына суретті қалай жазу керектігін айтудың қажеті жоқ деп ойлаймын.

Бастапқыда Raspberry Pi ішіндегі Ethernet порты статикалық IP мекенжайы бар LAN ретінде конфигурацияланады. 192.168.100.1. Үстелдегі сымдармен араласпау үшін мен Raspberry Pi құрылғысын WiFi кіру нүктесіне қосып, компьютердің WiFi адаптерін статикалық мекенжайға орнаттым. 192.168.100.2. DHCP сервері әдепкі бойынша қосылмаған, сондықтан статикалық мекенжайларды пайдалану керек.

Енді сіз веб-интерфейске кіре аласыз 192.168.100.1

Жүйеге бірінші рет кірген кезде жүйе сізден түбірлік құпия сөзді орнатуды сұрайды; SSH бірдей құпия сөзбен қолжетімді болады.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter
LAN параметрлерінде қалаған ішкі желіні орнатуға және DHCP серверін қосуға болады.

Мен бөлек DHCP сервері бар USB Ethernet интерфейстері ретінде анықталған модемдерді пайдаланамын, сондықтан бұл орнатуды қажет етеді қосымша пакеттер. Процедура қарапайым OpenWRT жүйесінде модемдерді орнатумен бірдей, сондықтан мен бұл жерде оны қарастырмаймын.

Әрі қарай WAN интерфейстерін конфигурациялау керек. Бастапқыда жүйе WAN1 және WAN2 екі виртуалды интерфейсті жасады. Оларға физикалық құрылғы тағайындалуы керек, менің жағдайда бұл USB модем интерфейстерінің атаулары.

Интерфейс атауларымен шатастырмау үшін SSH арқылы қосылу кезінде dmesg хабарламаларын қарауды ұсынамын.

Менің модемдерімнің өзі маршрутизатор ретінде әрекет ететіндіктен және өздерінің DHCP сервері болғандықтан, мен олардың ішкі желі ауқымдарының параметрлерін өзгертуге және DHCP серверін өшіруге тура келді, өйткені бастапқыда екі модем де бір желіден мекенжайлар береді және бұл қақтығыс тудырады.

OpenMPTCPRouter WAN интерфейс мекенжайларының статикалық болуын талап етеді, сондықтан біз модемдер үшін ішкі желілерді ойлап табамыз және оларды жүйе → openmptcprouter → интерфейс параметрлері мәзірінде конфигурациялаймыз. Мұнда жиынтық серверді орнату кезінде алынған IP мекенжайы мен сервер кілтін көрсету керек.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Орнату сәтті болса, күй бетінде ұқсас сурет пайда болуы керек. Маршрутизатор қосынды серверіне қол жеткізе алғанын және екі арнаның да қалыпты жұмыс істеп тұрғанын көруге болады.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Әдепкі режим - shadowsocks + mptcp. Бұл барлық қосылымдарды өз ішінде орап алатын прокси. Ол бастапқыда тек TCP өңдеу үшін конфигурацияланған, бірақ UDP де қосылуы мүмкін.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Күй бетінде қателер болмаса, орнату аяқталды деп санауға болады.
Кейбір провайдерлерде mptcp жалауы трафик жолында кесілген кезде жағдай туындауы мүмкін, содан кейін келесі қате пайда болады:

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Бұл жағдайда MPTCP қолданбай басқа жұмыс режимін пайдалануға болады, бұл туралы толығырақ осында.

қорытынды

OpenMPTCPRouter жобасы өте қызықты және маңызды, өйткені ол арналарды жинақтау мәселесінің жалғыз ашық кешенді шешімі болуы мүмкін. Қалғанының бәрі тығыз жабық және меншікті, немесе қарапайым адам түсіне алмайтын бөлек модульдер. Қазіргі даму кезеңінде жоба әлі де шикі, құжаттама өте нашар, көп нәрсе жай сипатталмаған. Бірақ сонымен бірге ол әлі де жұмыс істейді. Ол әрі қарай дамиды деп үміттенемін және біз қораптан арналарды дұрыс біріктіре алатын тұрмыстық маршрутизаторларды аламыз.

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Инстаграмдағы әзірлеушімізді бақылаңыз

Шынайы Интернет арнасының жиыны - OpenMPTCPRouter

Ақпарат көзі: www.habr.com

пікір қалдыру