Бірнеше интернет арнасын бір арнаға біріктіруге бола ма? Бұл тақырып төңірегінде көптеген қате түсініктер мен мифтер бар, тіпті тәжірибелі желі инженерлері мұның мүмкін екенін жиі білмейді. Көп жағдайда сілтемелерді біріктіру қате түрде NAT деңгейінде теңдестіру немесе ауыстырып қосу деп аталады. Бірақ нақты жиынтық мүмкіндік береді барлық интернет арналары арқылы бір уақытта бір TCP қосылымын іске қосыңыз, мысалы, интернет-арналардың кез келгені үзілсе, таратылым үзілмейтіндей етіп бейне хабар тарату.
Бейне хабарларын тарату үшін қымбат коммерциялық шешімдер бар, бірақ мұндай құрылғылардың құны көптеген килобактер. Мақалада тегін, ашық бастапқы OpenMPTCPRouter бумасын конфигурациялау жолы сипатталады және арналарды жинақтау туралы танымал мифтер қарастырылады.
Арнаны қорытындылау туралы мифтер
Multi-WAN функциясын қолдайтын көптеген үй маршрутизаторлары бар. Кейде өндірушілер бұл арнаны жинақтау деп атайды, бұл мүлдем дұрыс емес. Көптеген сетевойшылар бұған қосымша деп санайды
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-ден қосылымдарға ұқсайды.
Қосылым деңгейінде теңгерімдеу кезінде әрбір TCP қосылымы бөлек провайдер арқылы өтеді.
Бұл теңдестіру режимі жиі пайдаланушылар үшін қиындықтар тудырады. Мысалы, көптеген сайттар cookie файлдары мен таңбалауыштарды клиенттің IP мекенжайына қатаң түрде байланыстырады және ол кенеттен өзгерсе, сұрау қабылданбайды немесе клиент сайттан шығады. Бұл көбінесе клиент-банк жүйелерінде және қатаң пайдаланушы сеансы ережелері бар басқа сайттарда қайталанады. Қарапайым көрнекі мысал: VK.com сайтындағы музыкалық файлдар IP-ге байланысты жарамды сеанс кілтімен ғана қолжетімді және мұндай теңгерімдеуді пайдаланатын клиенттер жиі дыбысты ойнатпайды, себебі сұрау провайдер арқылы өтпеген. сессия аяқталды.
Торренттерді жүктеп алу кезінде қосылым деңгейін теңдестіру барлық арналардың өткізу қабілетін қорытындылайды
Бұл теңгерімдеу бірнеше қосылымдарды пайдалану кезінде Интернет арнасының жылдамдығының қосындысын алуға мүмкіндік береді. Мысалы, егер үш провайдердің әрқайсысының жылдамдығы 100 мегабит болса, торрентті жүктеп алған кезде біз 300 мегабит аламыз. Өйткені торрент көптеген қосылымдарды ашады, олар барлық провайдерлер арасында таратылады және сайып келгенде, бүкіл арнаны пайдаланады.
Бір TCP қосылымы әрқашан тек бір провайдер арқылы өтетінін түсіну маңызды. Яғни, HTTP арқылы бір үлкен файлды жүктеп алсақ, онда бұл байланыс провайдерлердің бірі арқылы жүзеге асады, ал егер бұл провайдермен байланыс үзілсе, жүктеу де үзіледі.
Бір қосылым әрқашан тек бір интернет арнасын пайдаланады
Бұл бейне хабарларға да қатысты. Егер сіз қандай да бір шартты Twitch-ке ағынды бейнені тарататын болсаңыз, онда IP қосылымдары деңгейінде теңгерімдеу ешқандай ерекше пайда әкелмейді, өйткені бейне ағыны бір IP қосылымында таратылады. Бұл жағдайда, егер WAN 3 провайдерінде пакеттің жоғалуы немесе жылдамдықтың төмендеуі сияқты байланыс проблемалары туындаса, сіз басқа провайдерге бірден ауыса алмайсыз. Трансляцияны тоқтатып, қайта қосу керек.
Арнаның шынайы қорытындысы
Арнаның нақты қосындысы шартты Twitch-ке бір қосылымды барлық провайдерлер арқылы бірден іске қосуға мүмкіндік береді, осылайша провайдерлердің кез келгені бұзылса, байланыс үзілмейді. Бұл әлі күнге дейін оңтайлы шешімі жоқ таңқаларлық күрделі мәселе. Көптеген адамдар бұл мүмкін екенін білмейді!
Алдыңғы суреттерден біз шартты Twitch сервері бізден бейне ағынын тек бір бастапқы IP мекенжайынан ала алатынын есте ұстаймыз, яғни ол қандай провайдерлер істен шыққанына және қайсысы жұмыс істеп жатқанына қарамастан біз үшін әрқашан тұрақты болуы керек. Бұған қол жеткізу үшін бізге барлық қосылымдарымызды тоқтататын және оларды бір біріктіретін жиынтық сервер қажет.
Қорытындылау сервері барлық арналарды бір туннельге біріктіреді. Барлық қосылымдар қосынды сервер мекенжайынан туындайды
Бұл схемада барлық провайдерлер пайдаланылады және олардың кез келгенін өшіру Twitch серверімен байланысты жоғалтпайды. Негізінде бұл арнайы VPN туннелі, оның астында бірден бірнеше интернет арналары бар. Мұндай схеманың негізгі міндеті - жоғары сапалы байланыс арнасын алу. Егер провайдерлердің бірінде проблемалар туындаса, пакеттердің жоғалуы, кідірістердің жоғарылауы болса, бұл байланыс сапасына ешқандай әсер етпеуі керек, өйткені жүктеме автоматты түрде қол жетімді басқа, жақсырақ арналарға бөлінеді.
Коммерциялық шешімдер
Бұл мәселе тікелей эфирді тарататын және жоғары сапалы интернетке қол жеткізе алмайтындарды көптен мазалап жүр. Мұндай тапсырмалар үшін бірнеше коммерциялық шешімдер бар, мысалы, Teradek компаниясы USB модемдерінің бумалары салынған осындай қорқынышты маршрутизаторларды жасайды:
Арналарды жинақтау функциясы бар бейне хабарларға арналған маршрутизатор
Мұндай құрылғылардың әдетте HDMI немесе SDI арқылы бейне сигналдарды түсіру мүмкіндігі бар. Маршрутизатормен бірге арналарды жинақтау қызметіне жазылу сатылады, сондай-ақ бейне ағынын өңдеу, оны қайта кодтау және одан әрі жіберу. Мұндай құрылғылардың бағасы модемдер жиынтығымен және қызметке бөлек жазылумен 2 мың доллардан басталады.
Кейде бұл өте қорқынышты көрінеді:
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
Сәтті серверді орнату нәтижесі.
Біз құпия сөздерді сақтаймыз, олар клиенттік маршрутизаторды конфигурациялау және қайта жүктеу үшін қажет болады. Орнатқаннан кейін SSH 65222 портында қолжетімді болатынын есте ұстаған жөн. Қайта жүктегеннен кейін біз жаңа ядромен жүктелгенімізге көз жеткізуіміз керек.
uname -a
Linux test-server.local 4.19.67-mptcp
Нұсқа нөмірі жанында mptcp жазуын көреміз, бұл ядро дұрыс орнатылғанын білдіреді.
Клиенттік маршрутизаторды орнату
туралы
Openmptcprouter бағдарламасының бұл бөлігі OpenWRT-ге негізделген, интерфейс ретінде LuCI пайдаланады, OpenWRT-ті бұрыннан кездестірген кез келген адамға таныс. Дистрибьюцияның салмағы шамамен 50 МБ!
Сынақ үстелі ретінде мен Raspberry Pi және әртүрлі операторлары бар бірнеше USB модемдерін қолданамын: MTS және Megafon. SD картасына суретті қалай жазу керектігін айтудың қажеті жоқ деп ойлаймын.
Бастапқыда Raspberry Pi ішіндегі Ethernet порты статикалық IP мекенжайы бар LAN ретінде конфигурацияланады. 192.168.100.1. Үстелдегі сымдармен араласпау үшін мен Raspberry Pi құрылғысын WiFi кіру нүктесіне қосып, компьютердің WiFi адаптерін статикалық мекенжайға орнаттым. 192.168.100.2. DHCP сервері әдепкі бойынша қосылмаған, сондықтан статикалық мекенжайларды пайдалану керек.
Енді сіз веб-интерфейске кіре аласыз
Жүйеге бірінші рет кірген кезде жүйе сізден түбірлік құпия сөзді орнатуды сұрайды; SSH бірдей құпия сөзбен қолжетімді болады.
LAN параметрлерінде қалаған ішкі желіні орнатуға және DHCP серверін қосуға болады.
Мен бөлек DHCP сервері бар USB Ethernet интерфейстері ретінде анықталған модемдерді пайдаланамын, сондықтан бұл орнатуды қажет етеді
Әрі қарай WAN интерфейстерін конфигурациялау керек. Бастапқыда жүйе WAN1 және WAN2 екі виртуалды интерфейсті жасады. Оларға физикалық құрылғы тағайындалуы керек, менің жағдайда бұл USB модем интерфейстерінің атаулары.
Интерфейс атауларымен шатастырмау үшін SSH арқылы қосылу кезінде dmesg хабарламаларын қарауды ұсынамын.
Менің модемдерімнің өзі маршрутизатор ретінде әрекет ететіндіктен және өздерінің DHCP сервері болғандықтан, мен олардың ішкі желі ауқымдарының параметрлерін өзгертуге және DHCP серверін өшіруге тура келді, өйткені бастапқыда екі модем де бір желіден мекенжайлар береді және бұл қақтығыс тудырады.
OpenMPTCPRouter WAN интерфейс мекенжайларының статикалық болуын талап етеді, сондықтан біз модемдер үшін ішкі желілерді ойлап табамыз және оларды жүйе → openmptcprouter → интерфейс параметрлері мәзірінде конфигурациялаймыз. Мұнда жиынтық серверді орнату кезінде алынған IP мекенжайы мен сервер кілтін көрсету керек.
Орнату сәтті болса, күй бетінде ұқсас сурет пайда болуы керек. Маршрутизатор қосынды серверіне қол жеткізе алғанын және екі арнаның да қалыпты жұмыс істеп тұрғанын көруге болады.
Әдепкі режим - shadowsocks + mptcp. Бұл барлық қосылымдарды өз ішінде орап алатын прокси. Ол бастапқыда тек TCP өңдеу үшін конфигурацияланған, бірақ UDP де қосылуы мүмкін.
Күй бетінде қателер болмаса, орнату аяқталды деп санауға болады.
Кейбір провайдерлерде mptcp жалауы трафик жолында кесілген кезде жағдай туындауы мүмкін, содан кейін келесі қате пайда болады:
Бұл жағдайда MPTCP қолданбай басқа жұмыс режимін пайдалануға болады, бұл туралы толығырақ
қорытынды
OpenMPTCPRouter жобасы өте қызықты және маңызды, өйткені ол арналарды жинақтау мәселесінің жалғыз ашық кешенді шешімі болуы мүмкін. Қалғанының бәрі тығыз жабық және меншікті, немесе қарапайым адам түсіне алмайтын бөлек модульдер. Қазіргі даму кезеңінде жоба әлі де шикі, құжаттама өте нашар, көп нәрсе жай сипатталмаған. Бірақ сонымен бірге ол әлі де жұмыс істейді. Ол әрі қарай дамиды деп үміттенемін және біз қораптан арналарды дұрыс біріктіре алатын тұрмыстық маршрутизаторларды аламыз.
Инстаграмдағы әзірлеушімізді бақылаңыз
Ақпарат көзі: www.habr.com