ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Hiki paha ke hoʻohui i kekahi mau ala pūnaewele i hoʻokahi? Nui nā kuhi hewa a me nā moʻolelo e pili ana i kēia kumuhana, ʻoiai ʻaʻole ʻike pinepine nā ʻenekini pūnaewele ʻike hiki ke hiki. I ka hapanui o nā hihia, ʻōlelo hewa ʻia ka hui ʻana o ka loulou ʻo NAT balancing a failover paha. Akā hiki i ka hōʻuluʻulu maoli e holo i hoʻokahi pilina TCP i ka manawa hoʻokahi ma luna o nā kaha pūnaewele a pau, no ka laʻana, ka hoʻolaha wikiō a inā e hoʻopau ʻia kekahi o nā kaila Pūnaewele, ʻaʻole e hoʻopau ʻia ka hoʻolaha.

Aia nā hoʻonā pāʻoihana pipiʻi no ka hoʻolaha wikiō, akā ʻoi aku ka nui o nā kilobucks i kēlā mau mea hana. Hōʻike ka ʻatikala i ka hoʻonohonoho ʻana o ka pūʻolo manuahi OpenMPTCPRouter, a pili i nā moʻolelo kaulana e pili ana i ka hōʻuluʻulu channel.

Nā moʻoʻōlelo e pili ana i ka hōʻuluʻulu ʻana i nā kahawai

Nui nā mea hoʻokele home e kākoʻo ana i ka hana Multi-WAN. I kekahi manawa, kapa nā mea hana i kēia kanal summing, ʻaʻole ia he ʻoiaʻiʻo loa. Nui nā networkers manaʻoʻiʻo i ka hoʻohui LACP a me ka hōʻuluʻulu ʻana ma ka papa L2, ʻaʻohe hui ʻē aʻe. Lohe pinepine au he hiki ʻole kēia mai ka poʻe hana ma ke kelepona. No laila, e hoʻāʻo kākou e hoʻomaopopo i nā moʻolelo kaulana.

Ke kaulike ma ka pae o nā pili IP

ʻO kēia ke ala kūpono loa a kaulana hoʻi e hoʻohana i kekahi mau ala pūnaewele i ka manawa like. No ka maʻalahi, e noʻonoʻo mākou he ʻekolu mau ISP, hāʻawi kēlā me kēia iā ʻoe i kahi leka uila IP maoli mai kā lākou pūnaewele. Hoʻopili ʻia kēia mau mea hoʻolako āpau i kahi alalai me ke kākoʻo no ka hana Multi-WAN. Hiki iā ia ke OpenWRT me ka pūʻolo mwan3, mikrotik, ubiquiti, a i ʻole nā ​​​​mea hoʻokele hale ʻē aʻe, ʻoiai ʻaʻole maʻamau kēia koho.

No ka hoʻohālikelike ʻana i ke kūlana, e noʻonoʻo ʻoe i hāʻawi mai nā mea hoʻolako iā mākou i kēia mau ʻōlelo:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

ʻO ia hoʻi, ka hoʻopili ʻana i kahi kikowaena mamao example.com ma o kēlā me kēia o nā mea hoʻolako, e ʻike ke kikowaena mamao ʻekolu kumu kūʻokoʻa ip o ka mea kūʻai. Hiki iā ʻoe ke hoʻokaʻawale i ka ukana ma nā kahawai a hoʻohana iā lākou ʻekolu i ka manawa like. No ka maʻalahi, e noʻonoʻo kākou e puʻunaue like i ka ukana ma waena o nā ala āpau. ʻO ka hopena, i ka wā e wehe ai ka mea kūʻai aku i kahi pūnaewele me nā kiʻi ʻekolu, hoʻoiho ʻo ia i kēlā me kēia kiʻi ma o kahi mea hoʻolako ʻokoʻa. Ma ka ʻaoʻao pūnaewele, ʻike ʻia nā pilina mai ʻekolu IP ʻokoʻa.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
Ke kaulike ʻana i ka pae pili, hele kēlā me kēia pilina TCP i kahi mea hoʻolako ʻokoʻa.

Hoʻopilikia pinepine kēia ʻano kaulike i nā mea hoʻohana. No ka laʻana, nui nā paena nā kuki uea paʻa a me nā hōʻailona i ka IP address o ka mea kūʻai aku, a inā e loli koke ia, ua hoʻokuʻu ʻia ka noi a i ʻole ka mea kūʻai aku i waho ma ka pūnaewele. Hoʻopuka pinepine ʻia kēia i loko o nā ʻōnaehana panakō a me nā pūnaewele ʻē aʻe me nā lula kau o nā mea hoʻohana. Eia kahi laʻana hoʻohālike maʻalahi: loaʻa nā faila mele ma VK.com me kahi kī hui kūpono i hoʻopaʻa ʻia i IP, a ʻo nā mea kūʻai aku e hoʻohana ana i ia kaulike pinepine ʻaʻole e pāʻani i ka leo, no ka mea, ʻaʻole i hele ka noi ma o ka mea hāʻawi i ka kau ʻia ka hālāwai.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
I ka hoʻoiho ʻana i nā kahawai, ʻo ke kaupaona ʻana ma ka pae pili e hōʻuluʻulu i ka bandwidth o nā kahawai āpau

ʻO ia kaulike e hiki ai iā ʻoe ke kiʻi i ka hōʻuluʻulu o ka wikiwiki o ka pūnaewele pūnaewele i ka wā e hoʻohana ai i nā pilina he nui. No ka laʻana, inā loaʻa i kēlā me kēia o nā mea hoʻolako ʻekolu ka wikiwiki o 100 megabits, a laila i ka hoʻoiho ʻana i nā kahawai e loaʻa iā mākou he 300 megabits. No ka mea, wehe ka torrent i nā pilina he nui i puʻunaue ʻia ma waena o nā mea hoʻolako āpau a hoʻohana hope i ke kahawai holoʻokoʻa.

He mea nui ka hoʻomaopopo ʻana e hele mau ana ka pilina TCP hoʻokahi ma o ka mea hoʻolako hoʻokahi wale nō. ʻO ia hoʻi, inā mākou e hoʻoiho i hoʻokahi faila nui ma o HTTP, a laila e hana ʻia kēia pilina ma o kekahi o nā mea hoʻolako, a inā e haki ka pilina me kēia mea hoʻolako, a laila e haki pū ka download.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
E hoʻohana mau ana hoʻokahi pili i hoʻokahi kaila Pūnaewele

He ʻoiaʻiʻo nō kēia no nā hoʻolaha wikiō. Inā hoʻolaha ʻoe i ka wikiō streaming ma kekahi Twitch conditional, a laila ʻaʻole e hāʻawi ʻia ke kaupaona ʻana ma ke kiʻekiʻe o nā pilina IP, ʻoiai e hoʻolaha ʻia ke kahawai wikiō i loko o hoʻokahi pili IP. I kēia hihia, inā hoʻomaka ka mea hoʻolako WAN 3 e loaʻa nā pilikia kamaʻilio, e like me ka nalowale ʻana a i ʻole ka lohi ʻana, a laila ʻaʻole hiki iā ʻoe ke hoʻololi koke i kahi mea hoʻolako ʻē aʻe. Pono e ho'ōki a hoʻopili hou ʻia ka hoʻolaha.

ʻO ka hōʻuluʻulu channel maoli

ʻO ka hōʻuluʻulu maoli o nā kahawai e hiki ai ke hoʻomaka i hoʻokahi pili i ka Twitch conditional ma o nā mea hoʻolako āpau i ka manawa hoʻokahi i ke ʻano inā haki kekahi o nā mea hoʻolako, ʻaʻole e hoʻopau ʻia ka pilina. He pilikia paʻakikī kēia, ʻaʻole loaʻa kahi hopena maikaʻi loa. ʻAʻole ʻike ka poʻe he mea hiki kēia!

Mai nā kiʻi mua, hoʻomanaʻo mākou e hiki i ka server Twitch conditional ke loaʻa i kahi kahawai wikiō mai iā mākou mai hoʻokahi kumu IP address, ʻo ia hoʻi, pono mau ia me mākou, me ka nānā ʻole i ka hāʻule ʻana o nā mea hāʻawi a me nā mea hana. No ka hoʻokō ʻana i kēia, pono mākou i kahi kikowaena summation e hoʻopau i kā mākou mau pilina a hoʻohui iā lākou i hoʻokahi.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
Hoʻopili ke kikowaena hōʻuluʻulu i nā ala āpau i hoʻokahi tunnel. Loaʻa nā pilina a pau mai ka helu wahi o ka server summation

Hoʻohana kēia kumumanaʻo i nā mea hoʻolako āpau, a ʻo ka hoʻopau ʻana i kekahi o lākou ʻaʻole ia e nalowale ke kamaʻilio me ka server Twitch. ʻO ka ʻoiaʻiʻo, he tunnel VPN kūikawā kēia, ma lalo o ka puʻupuʻu i loaʻa i kekahi mau pūnaewele pūnaewele i ka manawa hoʻokahi. ʻO ka hana nui o ia ʻano hoʻolālā ka loaʻa ʻana o ke ala kamaʻilio maikaʻi loa. Inā hoʻomaka nā pilikia ma kekahi o nā mea hoʻolako, ka poho packet, hoʻonui i ka lohi, a laila ʻaʻole pono kēia e hoʻopilikia i ka maikaʻi o ke kamaʻilio ʻana ma kekahi ʻano, no ka mea e puʻunaue ʻia ka ukana ma luna o nā ala ʻē aʻe i loaʻa.

Hoʻoponopono Kalepa

Ua lilo kēia pilikia i mea hopohopo no ka poʻe e hoʻolaha i nā hanana ola a ʻaʻole i loaʻa i ka pūnaewele kiʻekiʻe. No ia mau hana, aia kekahi mau hoʻonā pāʻoihana, no ka laʻana, hana ʻo Teradek i nā mea ala nui i hoʻokomo ʻia i nā pūʻulu o nā modem USB:

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
ʻO ka mea hoʻolele wikiō hoʻolaha me ka hana hōʻuluʻulu channel

Hiki i ia mau mea hana ke hopu wikiō ma o HDMI a i ʻole SDI. Me ke alalai, kūʻai ʻia ke kau inoa ʻana i ka lawelawe hōʻuluʻulu channel, a me ka hoʻoponopono ʻana i ke kahawai wikiō, transcoding a me ka hoʻouna hou ʻana. Hoʻomaka ke kumukūʻai o ia mau mea mai $ 2k me kahi hoʻonohonoho o nā modem, me kahi kau inoa ʻokoʻa i ka lawelawe.

I kekahi manawa he mea weliweli loa ia:

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Hoʻonohonoho i ka OpenMPTCPRouter

Pūnaewele MP-TCP (MultiPath TCP) i hana ʻia no ka hiki ke hoʻohui i kekahi mau ala i ka manawa hoʻokahi. Eia kekahi laʻana, kāna kākoʻo iā iOS a hiki ke hoʻohui like i kahi kikowaena mamao ma o WiFi a ma o kahi pūnaewele kelepona. He mea nui e hoʻomaopopo ʻaʻole kēia ʻelua mau pilina TCP kaʻawale, akā hoʻokahi pili i hoʻokumu ʻia ma luna o nā kahawai ʻelua i ka manawa hoʻokahi. No kēia hana, pono e kākoʻo ke kikowaena mamao i ka MPTCP.

WeheMPTCPRouter he papahana polokalamu router open source e hiki ai iā ʻoe ke hōʻuluʻulu maoli i nā kahawai. Wahi a nā mea kākau, aia ka papahana ma ke kūlana alpha, akā hiki ke hoʻohana ʻia. Aia i ʻelua ʻāpana - kahi kikowaena summing, aia ma ka Pūnaewele a me kahi alalai, kahi i hoʻopili ʻia ai kekahi mau mea hoʻolako pūnaewele a me nā mea kūʻai aku: nā kamepiula, kelepona. Hiki i kahi alalai maʻamau ke lilo i Raspberry Pi, kekahi mau mea ala WiFi, a i ʻole kamepiula maʻamau. Aia nā hui i mākaukau no nā paepae like ʻole, kahi kūpono loa.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
Pehea e hana ai ka OpenMPTCPRouter

Hoʻonohonoho kikowaena kikowaena hōʻuluʻulu

Aia ka server summing ma ka Pūnaewele a hoʻopau i nā pilina mai nā ala āpau o ka mea hoʻokele mea kūʻai aku i hoʻokahi. ʻO ka helu IP o kēia kikowaena ka helu waho i ka wā e komo ai i ka Pūnaewele ma o OpenMPTCPRouter.

No kēia hana, e hoʻohana mākou i kahi kikowaena VPS ma Debian 10.

Nā koi kikowaena kikowaena:

  • ʻAʻole hana ʻo MPTCP ma OpenVZ virtualization
  • Pono e hoʻokomo i kāu kernel Linux ponoʻī

Hoʻokomo ʻia ke kikowaena ma ka hoʻokō ʻana i hoʻokahi kauoha. E hoʻokomo ka palapala i ka mptcp-enabled kernel a me nā pūʻolo i makemake ʻia. Loaʻa ka hoʻouka ʻana i nā palapala no Ubuntu a me Debian.

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

ʻO ka hopena o kahi hoʻonohonoho kikowaena holomua.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Mālama mākou i nā ʻōlelo huna, pono mākou iā lākou e hoʻonohonoho i ke alalai mea kūʻai aku, a hoʻomaka hou. He mea nui e hoʻomanaʻo ma hope o ka hoʻokomo ʻana, e loaʻa ka SSH ma ke awa 65222. Ma hope o ka rebooting, pono mākou e hōʻoia i kā mākou pahu me ka kernel hou.

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

ʻIke mākou i ka palapala mptcp ma hope o ka helu helu, ʻo ia ka mea i hoʻokomo pono ʻia ka kernel.

Hoʻonohonoho i kahi mea hoʻokele mea kūʻai aku

maluna o pūnaewele papahana Loaʻa nā hale i mākaukau no kekahi mau paepae, e like me Raspberry Pi, Banana Pi, Lynksys routers, a me nā mīkini virtual.
Hoʻokumu ʻia kēia ʻāpana o openmptcprouter ma OpenWRT, me ka hoʻohana ʻana iā LuCI ma ke ʻano he interface, kamaʻāina i ka poʻe a pau i ʻike iā OpenWRT. ʻO ke kaumaha o ka pahu hoʻolaha ma kahi o 50Mb!

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Ma ke ʻano he papa hoʻāʻo, e hoʻohana wau i ka Raspberry Pi a me kekahi mau modem USB me nā mea hana like ʻole: MTS a me Megafon. Pehea e kākau ai i kahi kiʻi i kahi kāleka SD, manaʻo wau, ʻaʻole pono e haʻi.

I ka hoʻomaka ʻana, ua hoʻonohonoho ʻia ka port Ethernet i ka Raspberry Pi e like me ka lan me kahi helu IP static. 192.168.100.1. I ʻole e hana ʻino me nā uea ma ka papaʻaina, hoʻopili wau i ka Raspberry Pi i kahi wahi komo WiFi a hoʻonohonoho i kahi helu static ma ka adapter WiFi o ke kamepiula. 192.168.100.2. ʻAʻole hiki ke hoʻohana ʻia ke kikowaena DHCP ma ke ʻano paʻamau, no laila pono e hoʻohana ʻia nā helu static.

I kēia manawa hiki iā ʻoe ke hele i ke kikowaena pūnaewele 192.168.100.1

Ke komo mua ʻoe, e noi ka ʻōnaehana iā ʻoe e hoʻonohonoho i ka ʻōlelo huna, e loaʻa iā SSH me ka ʻōlelo huna like.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter
Ma nā hoʻonohonoho LAN, hiki iā ʻoe ke hoʻonohonoho i ka subnet i makemake ʻia a hiki i ka server DHCP.

Hoʻohana au i nā modem i wehewehe ʻia e like me nā USB ethernet interface me kahi kikowaena DHCP kaʻawale, no laila pono kēia hoʻonohonoho nā pūʻolo hou. Ua like ke kaʻina hana me ka hoʻonohonoho ʻana i nā modem ma OpenWRT maʻamau, no laila ʻaʻole wau e uhi iā ia ma aneʻi.

A laila, pono ʻoe e hoʻonohonoho i nā kikowaena WAN. I ka wā mua, ua hana ʻia ʻelua mau kikowaena virtual WAN1 a me WAN2 i ka ʻōnaehana. Pono lākou e hāʻawi i kahi mea kino, i koʻu hihia, ʻo ia nā inoa o nā interface modem USB.

I ʻole e huikau i nā inoa interface, ke aʻo aku nei au iā ʻoe e nānā i nā memo dmesg i ka wā e pili ana ma SSH.

Ma muli o ka hana ʻana o kaʻu modem ma ke ʻano he mau mea hoʻokele a loaʻa iā lākou kahi kikowaena DHCP ponoʻī, pono iaʻu e hoʻololi i nā hoʻonohonoho o kā lākou mau kikowaena pūnaewele i loko a hoʻopau i ka server DHCP, no ka mea i ka hoʻomaka ʻana o nā modem ʻelua i hoʻopuka i nā helu mai ka pūnaewele like, a ke kumu kēia i ka hakakā.

Pono ʻo OpenMPTCPRouter i nā ʻōlelo aʻoaʻo WAN e paʻa, no laila ke hele mai nei mākou me nā subnets no nā modem a hoʻonohonoho iā lākou i ka ʻōnaehana → openmptcprouter → papa kuhikuhi hoʻonohonoho. Maanei pono ʻoe e kuhikuhi i ka helu IP a me ke kī kikowaena i loaʻa i ka wā o ka hoʻokomo ʻana i ka server summation.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Inā holomua ka hoʻonohonoho ʻana, pono ke ʻike ʻia kahi kiʻi like ma ka ʻaoʻao kūlana. Hiki ke ʻike ʻia ua hiki i ke alalai ke hōʻea i ka server summing a ke hana pono nei nā ala ʻelua.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

ʻO ke ʻano paʻamau he shadowsocks + mptcp. He proxy kēia e hoʻopili i nā pilina a pau iā ia iho. I ka hoʻomaka, ua hoʻonohonoho ʻia e mālama i ka TCP wale nō, akā hiki iā ʻoe ke hoʻohana i ka UDP pū kekahi.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Inā ʻaʻohe hewa ma ka ʻaoʻao kūlana, hiki ke noʻonoʻo ʻia ka hoʻonohonoho ʻana.
Me kekahi mau mea hoʻolako, hiki mai ke kūlana ke ʻoki ʻia ka hae mptcp ma ke ala kaʻa, a laila e loaʻa mai kahi hewa:

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

I kēia hihia, hiki iā ʻoe ke hoʻohana i kahi ʻano hana ʻē aʻe, me ka hoʻohana ʻole ʻana i ka MPTCP, ʻoi aku e pili ana i kēia maanei.

hopena

He mea hoihoi a koʻikoʻi ka papahana OpenMPTCPRouter, ʻoiai ʻo ia wale nō ka hopena paʻakikī i wehe ʻia i ka pilikia hōʻuluʻulu channel. ʻO nā mea ʻē aʻe a pau i pani paʻa ʻia a hoʻopaʻa ʻia, a i ʻole nā ​​​​module hoʻokaʻawale i hiki ʻole i ke kanaka maʻamau ke hana. I kēia manawa o ka hoʻomohala ʻana, ʻaʻole ʻike ʻia ka papahana, nā palapala maikaʻi loa, ʻaʻole i wehewehe ʻia nā mea he nui. Akā i ka manawa like, hana mau. Manaʻo wau e hoʻomau ʻia ka hoʻomohala ʻana, a e loaʻa iā mākou nā mea hoʻokele hale e hiki ke hoʻohui i nā kahawai ma waho o ka pahu.

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

E hahai i kā mākou mea hoʻomohala ma Instagram

ʻO ka hōʻuluʻulu maoli o nā ala pūnaewele - OpenMPTCPRouter

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka