Чыныгы Интернет каналынын жыйындысы - OpenMPTCPRouter

Чыныгы Интернет каналынын жыйындысы - OpenMPTCPRouter

Бир нече интернет каналдарын бириктирсе болобу? Бул теманын тегерегинде көптөгөн жаңылыштыктар жана уламыштар бар, ал тургай тажрыйбалуу тармак инженерлери да бул мүмкүн экенин билишпейт. Көпчүлүк учурларда, шилтемени бириктирүү жаңылыш NAT деңгээлинде баланстоо же жаңылыштык деп аталат. Бирок чыныгы жыйынтыктоо мүмкүнчүлүк берет бардык интернет каналдары боюнча бир эле учурда бир TCP байланышын ишке киргизүү, мисалы, интернет каналдарынын кайсынысы болбосун үзгүлтүккө учураса, берүү үзгүлтүккө учурабашы үчүн видео берүү.

Видео берүүлөр үчүн кымбат коммерциялык чечимдер бар, бирок мындай аппараттардын баасы көп килобактарды түзөт. Макалада эркин, ачык булактуу OpenMPTCPRouter пакетин кантип конфигурациялоо керектиги сүрөттөлөт жана каналды жыйынтыктоо жөнүндөгү популярдуу уламыштарга кайрылат.

Каналды жыйынтыктоо жөнүндө уламыштар

Multi-WAN функциясын колдогон көптөгөн үй роутерлери бар. Кээде өндүрүүчүлөр бул каналды жыйынтыктоо деп аташат, бул таптакыр туура эмес. Көптөгөн networkers кошумча деп эсептешет 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 байланышы өзүнчө провайдер аркылуу өтөт.

Бул тең салмактуулук режими көбүнчө колдонуучулар үчүн көйгөйлөрдү жаратат. Мисалы, көптөгөн сайттар кукилерди жана токендерди кардардын 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

Source: www.habr.com

Комментарий кошуу