{"id":53735,"date":"2019-12-09T00:00:00","date_gmt":"2019-12-08T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/nastoyashhee-summirovanie-internet-kanalov-openmptcprouter"},"modified":"2020-02-18T14:01:40","modified_gmt":"2020-02-18T11:01:40","slug":"nastoyashhee-summirovanie-internet-kanalov-openmptcprouter","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/nastoyashhee-summirovanie-internet-kanalov-openmptcprouter","title":{"rendered":"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/57414bebbced152eea13c218b7d1c239.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCzy mo\u017cna po\u0142\u0105czy\u0107 kilka kana\u0142\u00f3w internetowych w jeden? Wok\u00f3\u0142 tego tematu kr\u0105\u017cy wiele nieporozumie\u0144 i mit\u00f3w, nawet do\u015bwiadczeni in\u017cynierowie sieciowi cz\u0119sto nie wiedz\u0105, \u017ce jest to mo\u017cliwe. W wi\u0119kszo\u015bci przypadk\u00f3w po\u0142\u0105czenie kana\u0142\u00f3w b\u0142\u0119dnie nazywa si\u0119 r\u00f3wnowa\u017ceniem ruchu na poziomie NAT lub failover. Prawdziwe sumowanie pozwala <b>przes\u0142a\u0107 jedno pojedyncze po\u0142\u0105czenie TCP jednocze\u015bnie przez wszystkie kana\u0142y internetowe<\/b>, na przyk\u0142ad transmisj\u0119 wideo, tak aby przy przerwaniu kt\u00f3regokolwiek z kana\u0142\u00f3w internetowych nadawanie nie zosta\u0142o przerwane. <\/p>\n<p>Istniej\u0105 drogie komercyjne rozwi\u0105zania do transmisji wideo, ale takie urz\u0105dzenia kosztuj\u0105 wiele tysi\u0119cy dolar\u00f3w. W artykule opisano konfiguracj\u0119 darmowego, otwartego pakietu OpenMPTCPRouter oraz obalane s\u0105 popularne mity o sumowaniu kana\u0142\u00f3w.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Mity o sumowaniu kana\u0142\u00f3w<\/h2>\n<p>\nJest wiele domowych router\u00f3w, kt\u00f3re wspieraj\u0105 funkcj\u0119 Multi-WAN. Czasami producenci nazywaj\u0105 to sumowaniem kana\u0142\u00f3w, co nie jest do ko\u0144ca poprawne. Wiele os\u00f3b zajmuj\u0105cych si\u0119 sieciami wierzy, \u017ce poza <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%90%D0%B3%D1%80%D0%B5%D0%B3%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_%D0%BA%D0%B0%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2\">LACP<\/a><\/noindex> i sumowaniem na poziomie L2, nie ma \u017cadnych innych sposob\u00f3w \u0142\u0105czenia kana\u0142\u00f3w. Cz\u0119sto s\u0142ysza\u0142em, \u017ce jest to ca\u0142kowicie niemo\u017cliwe od os\u00f3b pracuj\u0105cych w telekomunikacji. Dlatego spr\u00f3bujemy rozwik\u0142a\u0107 popularne mity. <\/p>\n<h2>R\u00f3wnowa\u017cenie na poziomie po\u0142\u0105cze\u0144 IP<\/h2>\n<p>\nTo naj\u0142atwiejszy i najpopularniejszy spos\u00f3b wykorzystania kilku kana\u0142\u00f3w internetowych jednocze\u015bnie. Dla uproszczenia za\u0142\u00f3\u017cmy, \u017ce macie trzech dostawc\u00f3w internetowych, ka\u017cdy przydziela wam prawdziwy adres IP ze swojej sieci. Wszyscy ci dostawcy s\u0105 pod\u0142\u0105czeni do routera z funkcj\u0105 Multi-WAN. Mo\u017ce to by\u0107 OpenWRT z pakietem mwan3, mikrotik, ubiquiti lub jakikolwiek inny domowy router, bior\u0105c pod uwag\u0119, \u017ce teraz taka opcja nie jest ju\u017c rzadko\u015bci\u0105.<\/p>\n<p>Aby zobrazowa\u0107 sytuacj\u0119, za\u0142\u00f3\u017cmy, \u017ce dostawcy przydzielili nam takie adresy:<\/p>\n<pre><code class=\"plaintext\">WAN1 \u2014 11.11.11.11\nWAN2 \u2014 22.22.22.22\nWAN2 \u2014 33.33.33.33\n<\/code><\/pre>\n<p>\nTo znaczy, pod\u0142\u0105czaj\u0105c si\u0119 do zdalnego serwera <b>example.com<\/b> Przez ka\u017cdego z dostawc\u00f3w, zdalny serwer zobaczy trzy niezale\u017cne source IP klienta. Load balancing pozwala na podzia\u0142 obci\u0105\u017cenia mi\u0119dzy kana\u0142y i wykorzystanie ich wszystkich jednocze\u015bnie. Dla uproszczenia za\u0142\u00f3\u017cmy, \u017ce dzielimy obci\u0105\u017cenie r\u00f3wno pomi\u0119dzy wszystkimi kana\u0142ami. W rezultacie, gdy klient otwiera stron\u0119, na kt\u00f3rej s\u0105 przyk\u0142adowo trzy obrazy, \u0142aduje ka\u017cdy obraz przez oddzielnego dostawc\u0119. Po stronie strony wygl\u0105da to jak po\u0142\u0105czenia z trzech r\u00f3\u017cnych IP.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/b3f5e5d0d6007deb4d22d55d1df79e28.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPrzy balansowaniu na poziomie po\u0142\u0105cze\u0144, ka\u017cde po\u0142\u0105czenie TCP przebiega przez oddzielnego dostawc\u0119.<\/p>\n<p>Taki tryb balansowania cz\u0119sto niesie za sob\u0105 problemy dla u\u017cytkownik\u00f3w. Na przyk\u0142ad wiele stron ostro wi\u0105\u017ce cookies i tokeny z adresem IP klienta, a je\u015bli nagle si\u0119 zmieni, zapytanie jest odrzucane lub klient zostaje wylogowany na stronie. To cz\u0119sto zdarza si\u0119 w systemach bankowo\u015bci internetowej i na innych stronach z surowymi zasadami sesji u\u017cytkownik\u00f3w. Oto prosty, obrazowy przyk\u0142ad: pliki muzyczne na VK.com s\u0105 dost\u0119pne tylko przy wa\u017cnym kluczu sesji, kt\u00f3ry jest powi\u0105zany z IP, a klienci u\u017cywaj\u0105cy takiego balansowania cz\u0119sto nie mog\u0105 odtwarza\u0107 audio, poniewa\u017c zapytanie posz\u0142o nie przez tego dostawc\u0119, do kt\u00f3rego przypisana jest sesja.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/ce6fec9b8f1b0df904cdf3ab0fa3f1f8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nPodczas pobierania torrent\u00f3w, load balancing na poziomie po\u0142\u0105cze\u0144 sumuje przepustowo\u015b\u0107 wszystkich kana\u0142\u00f3w.<\/p>\n<p>Taki spos\u00f3b balansowania pozwala uzyska\u0107 sumowanie pr\u0119dko\u015bci \u0142\u0105cza internetowego przy u\u017cyciu wielu po\u0142\u0105cze\u0144. Na przyk\u0142ad, je\u015bli ka\u017cdy z trzech dostawc\u00f3w ma pr\u0119dko\u015b\u0107 100 Megabit\u00f3w, to podczas pobierania torrent\u00f3w uzyskamy 300 Megabit\u00f3w. Poniewa\u017c torrent otwiera wiele po\u0142\u0105cze\u0144, kt\u00f3re s\u0105 rozdzielane mi\u0119dzy wszystkich dostawc\u00f3w i w rezultacie wykorzystuj\u0105 ca\u0142y kana\u0142.<\/p>\n<p>Wa\u017cne jest zrozumienie, \u017ce jedno jedyne po\u0142\u0105czenie TCP zawsze przechodzi tylko przez jednego dostawc\u0119. To znaczy, \u017ce je\u015bli \u015bci\u0105gamy jeden du\u017cy plik przez HTTP, to to po\u0142\u0105czenie b\u0119dzie realizowane przez jednego z dostawc\u00f3w, a je\u015bli po\u0142\u0105czenie z tym dostawc\u0105 zostanie przerwane, to pobieranie r\u00f3wnie\u017c si\u0119 zatrzyma. <\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/14d728236f632c5e19ee762bc1911f48.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nJedno po\u0142\u0105czenie zawsze b\u0119dzie u\u017cywa\u0107 tylko jednego kana\u0142u internetowego.<\/p>\n<p>To samo dotyczy transmisji wideo. Je\u015bli nadajesz strumieniowo na przyk\u0142ad na Twitchu, balansowanie na poziomie po\u0142\u0105cze\u0144 IP nie przyniesie \u017cadnych szczeg\u00f3lnych korzy\u015bci, poniewa\u017c strumie\u0144 wideo b\u0119dzie przesy\u0142any w obr\u0119bie jednego po\u0142\u0105czenia IP. W takim przypadku, je\u015bli u dostawcy WAN wyst\u0105pi\u0105 problemy z \u0142\u0105czem, takie jak utrata pakiet\u00f3w lub spadek pr\u0119dko\u015bci, nie b\u0119dziesz w stanie w mgnieniu oka prze\u0142\u0105czy\u0107 si\u0119 na innego dostawc\u0119. Transmisja b\u0119dzie musia\u0142a zosta\u0107 wstrzymana, a nast\u0119pnie po\u0142\u0105czona na nowo. <\/p>\n<h2>Sumowanie kana\u0142\u00f3w<\/h2>\n<p>\nSumowanie kana\u0142\u00f3w w praktyce pozwala na przes\u0142anie jednego po\u0142\u0105czenia do Twitcha przez wszystkich dostawc\u00f3w w taki spos\u00f3b, \u017ce je\u015bli kt\u00f3rakolwiek z firm dostarczaj\u0105cych \u0142\u0105cze przestanie dzia\u0142a\u0107, po\u0142\u0105czenie nie zostanie zerwane. To zadanie jest zaskakuj\u0105co skomplikowane i nadal nie ma na nie optymalnego rozwi\u0105zania. Wielu ludzi nawet nie wie, \u017ce jest to mo\u017cliwe! <\/p>\n<p>Z poprzednich ilustracji pami\u0119tamy, \u017ce serwer Twitch mo\u017ce przyj\u0105\u0107 od nas strumie\u0144 wideo tylko z jednego adresu IP \u017ar\u00f3d\u0142owego, co oznacza, \u017ce musi by\u0107 on zawsze sta\u0142y, niezale\u017cnie od tego, kt\u00f3rzy dostawcy przestali dzia\u0142a\u0107, a kt\u00f3rzy s\u0105 aktywni. Aby to osi\u0105gn\u0105\u0107, potrzebujemy serwera sumuj\u0105cego, kt\u00f3ry b\u0119dzie terminowa\u0142 wszystkie nasze po\u0142\u0105czenia i \u0142\u0105czy\u0142 je w jedno.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/0baf774c65d15a307bdb0ffef3ff53c6.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nSerwer sumuj\u0105cy agreguje wszystkie kana\u0142y w jeden tunel. Wszystkie po\u0142\u0105czenia odbywaj\u0105 si\u0119 z adresu serwera sumuj\u0105cego.<\/p>\n<p>W tej strukturze wykorzystywani s\u0105 wszyscy dostawcy, a wy\u0142\u0105czenie kt\u00f3rego\u015b z nich nie spowoduje zerwania po\u0142\u0105czenia z serwerem Twitch. W istocie jest to specjalny tunel VPN, pod kt\u00f3rym dzia\u0142a kilka po\u0142\u0105cze\u0144 internetowych. G\u0142\u00f3wnym celem tego rozwi\u0105zania jest uzyskanie jak najwy\u017cszej jako\u015bci kana\u0142u komunikacyjnego. Je\u015bli jeden z dostawc\u00f3w zacznie mie\u0107 problemy, utrat\u0119 pakiet\u00f3w lub zwi\u0119kszenie op\u00f3\u017anie\u0144, nie powinno to w \u017caden spos\u00f3b wp\u0142yn\u0105\u0107 na jako\u015b\u0107 komunikacji, poniewa\u017c obci\u0105\u017cenie automatycznie rozdzieli si\u0119 na inne, lepszej jako\u015bci kana\u0142y, kt\u00f3rymi dysponujemy. <\/p>\n<h3>Rozwi\u0105zania komercyjne<\/h3>\n<p>\nProblem ten od dawna niepokoi osoby prowadz\u0105ce transmisje na \u017cywo event\u00f3w i nie maj\u0105ce dost\u0119pu do jako\u015bciowego internetu. Dla takich sytuacji istnieje kilka rozwi\u0105za\u0144 komercyjnych, na przyk\u0142ad firma Teradek produkuje takie monstrualne routery, do kt\u00f3rych wk\u0142ada si\u0119 ca\u0142e paczki modem\u00f3w USB:<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/b9c23f4cebed86dff16bf4b72b7890b1.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nRouter do strumieniowego przesy\u0142ania wideo z funkcj\u0105 sumowania kana\u0142\u00f3w<\/p>\n<p>W takich urz\u0105dzeniach zwykle wbudowana jest mo\u017cliwo\u015b\u0107 przechwytywania sygna\u0142u wideo przez HDMI lub SDI. Wraz z routerem sprzedawana jest subskrypcja na us\u0142ug\u0119 sumowania kana\u0142\u00f3w, a tak\u017ce przetwarzania strumienia wideo, jego transkodowania i retransmisji dalej. Cena takich urz\u0105dze\u0144 zaczyna si\u0119 od 2k$ z zestawem modem\u00f3w, plus oddzielna subskrypcja na us\u0142ug\u0119. <\/p>\n<p>Czasami wygl\u0105da to do\u015b\u0107 przera\u017caj\u0105co:<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/66c5afe3903444624707c338c9610036.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/p>\n<h2>Konfiguracja OpenMPTCPRouter<\/h2>\n<p>\nProtok\u00f3\u0142 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.multipath-tcp.org\/\">MP-TCP<\/a><\/noindex> (MultiPath TCP) zosta\u0142 wymy\u015blony, aby umo\u017cliwi\u0107 pod\u0142\u0105czenie kilku kana\u0142\u00f3w jednocze\u015bnie. Na przyk\u0142ad, jego <noindex><a rel=\"nofollow\" href=\"https:\/\/developer.apple.com\/documentation\/foundation\/urlsessionconfiguration\/improving_network_reliability_using_multipath_tcp\">obs\u0142uguje iOS<\/a><\/noindex> i mo\u017ce jednocze\u015bnie \u0142\u0105czy\u0107 si\u0119 z zdalnym serwerem przez WiFi i sie\u0107 kom\u00f3rkow\u0105. Wa\u017cne jest, aby zrozumie\u0107, \u017ce to nie s\u0105 dwa oddzielne po\u0142\u0105czenia TCP, ale jedno po\u0142\u0105czenie na dw\u00f3ch kana\u0142ach. Aby to dzia\u0142a\u0142o, zdalny serwer musi r\u00f3wnie\u017c obs\u0142ugiwa\u0107 MPTCP.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/www.openmptcprouter.com\/\">OpenMPTCPRouter<\/a><\/noindex> to otwarty projekt programowego routera, kt\u00f3ry naprawd\u0119 pozwala na sumowanie kana\u0142\u00f3w. Autorzy twierdz\u0105, \u017ce projekt jest w fazie alfa, ale ju\u017c mo\u017cna go u\u017cywa\u0107. Sk\u0142ada si\u0119 z dw\u00f3ch cz\u0119\u015bci \u2014 serwera sumuj\u0105cego, kt\u00f3ry jest umieszczony w internecie, oraz routera, do kt\u00f3rego pod\u0142\u0105czaj\u0105 si\u0119 r\u00f3\u017cni dostawcy internetu i same urz\u0105dzenia klienckie: komputery, telefony. Jako router u\u017cytkownika mo\u017ce dzia\u0142a\u0107 Raspberry Pi, niekt\u00f3re routery WiFi lub zwyk\u0142y komputer. Istniej\u0105 gotowe wersje pod r\u00f3\u017cne platformy, co jest bardzo wygodne.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/46b0c848f92ce85ffc0a4ea10144966f.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nZasada dzia\u0142ania OpenMPTCPRouter<\/p>\n<h2>Konfiguracja serwera sumuj\u0105cego<\/h2>\n<p>\nSerwer sumuj\u0105cy znajduje si\u0119 w internecie i termininuje po\u0142\u0105czenia ze wszystkich kana\u0142\u00f3w klienta routera w jedno. Adres IP tego serwera b\u0119dzie zewn\u0119trznym adresem przy wyj\u015bciu do internetu przez OpenMPTCPRouter. <\/p>\n<p>Do tego zadania u\u017cyjemy serwera VPS na Debianie 10.<\/p>\n<p>Wymagania dla serwera sumuj\u0105cego:<\/p>\n<ul>\n<li>MPTCP nie dzia\u0142a na wirtualizacji OpenVZ<\/li>\n<li>Powinna istnie\u0107 mo\u017cliwo\u015b\u0107 instalacji w\u0142asnego j\u0105dra Linux<\/li>\n<\/ul>\n<p>\nSerwer jest uruchamiany za pomoc\u0105 jednego polecenia. Skrypt zainstaluje j\u0105dro z obs\u0142ug\u0105 mptcp oraz wszystkie niezb\u0119dne pakiety. Dost\u0119pne s\u0105 skrypty instalacyjne dla Ubuntu i Debiana.<\/p>\n<pre><code class=\"plaintext\">wget -O - http:\/\/www.openmptcprouter.com\/server\/debian10-x86_64.sh | sh\n<\/code><\/pre>\n<p>\nWynik udanej instalacji serwera.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/592fd8d39eb4eaec5e80f4fa3b635a53.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZapisujemy has\u0142a, b\u0119d\u0105 nam potrzebne do konfiguracji routera klienta, a nast\u0119pnie uruchamiamy go ponownie. Wa\u017cne jest, aby pami\u0119ta\u0107, \u017ce po instalacji SSH b\u0119dzie dost\u0119pny na porcie 65222. Po ponownym uruchomieniu nale\u017cy upewni\u0107 si\u0119, \u017ce za\u0142adowali\u015bmy nowe j\u0105dro.<\/p>\n<pre><code class=\"plaintext\">uname -a \nLinux test-server.local 4.19.67-mptcp\n<\/code><\/pre>\n<p>\nWidoczna obok numeru wersji adnotacja mptcp oznacza, \u017ce j\u0105dro zosta\u0142o poprawnie zainstalowane. <\/p>\n<h2>Konfiguracja routera klienta<\/h2>\n<p>\nNa <noindex><a rel=\"nofollow\" href=\"https:\/\/www.openmptcprouter.com\/download\">stronie projektu<\/a><\/noindex> s\u0105 dost\u0119pne gotowe obrazy dla niekt\u00f3rych platform, np. Raspberry Pi, Banana Pi, routery Lynksys oraz maszyny wirtualne. <br \/>\nTa cz\u0119\u015b\u0107 openmptcprouter opiera si\u0119 na OpenWRT, jako interfejs wykorzystuje LuCI, znany ka\u017cdemu, kto mia\u0142 do czynienia z OpenWRT. Dystrybucja ma oko\u0142o 50 MB! <\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/0cb2fed29f35d42ab0dc8db1a9a160f8.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJako stanowisko testowe b\u0119d\u0119 u\u017cywa\u0107 Raspberry Pi oraz kilku modem\u00f3w USB od r\u00f3\u017cnych operator\u00f3w: MTS i MegaFon. Jak zapisa\u0107 obraz na karcie SD, w\u0105tpi\u0119, bym musia\u0142 t\u0142umaczy\u0107. <\/p>\n<p>Pocz\u0105tkowo port Ethernet w Raspberry Pi jest skonfigurowany jako lan z statycznym adresem IP. <b>192.168.100.1<\/b>. Aby nie bawi\u0107 si\u0119 w kable na biurku, pod\u0142\u0105czy\u0142em Raspberry Pi do punktu dost\u0119powego WiFi i ustawi\u0142em statyczny adres na adapterze WiFi w komputerze. <b>192.168.100.2<\/b>. Serwer DHCP domy\u015blnie nie jest w\u0142\u0105czony, dlatego nale\u017cy u\u017cywa\u0107 statycznych adres\u00f3w.<\/p>\n<p>Teraz mo\u017cna przej\u015b\u0107 do interfejsu internetowego. <noindex><a rel=\"nofollow\" href=\"http:\/\/192.168.100.1\">192.168.100.1<\/a><\/noindex> <\/p>\n<p>Przy pierwszym logowaniu system poprosi o ustawienie has\u0142a root, to samo has\u0142o b\u0119dzie u\u017cywane do dost\u0119pu do SSH.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/1052360105d63d329aaaf0c3983a423e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\nW ustawieniach LAN mo\u017cna ustawi\u0107 odpowiedni\u0105 podsie\u0107 i w\u0142\u0105czy\u0107 serwer DHCP.<\/p>\n<p>U\u017cywam modem\u00f3w, kt\u00f3re s\u0105 rozpoznawane jako interfejsy USB Ethernet z oddzielnym serwerem DHCP, wi\u0119c wymaga\u0142o to zainstalowania <noindex><a rel=\"nofollow\" href=\"https:\/\/protyposis.net\/blog\/using-the-huawei-e3372-hi-link-lte-dongle-with-openwrt\/\">dodatkowych pakiet\u00f3w.<\/a><\/noindex>. Procedura jest identyczna do konfiguracji modem\u00f3w w standardowym OpenWRT, dlatego nie b\u0119d\u0119 jej tutaj omawia\u0107. <\/p>\n<p>Nast\u0119pnie trzeba skonfigurowa\u0107 interfejsy WAN. Na pocz\u0105tku w systemie tworzone s\u0105 dwa wirtualne interfejsy WAN1 i WAN2. Nale\u017cy im przypisa\u0107 fizyczne urz\u0105dzenie, w moim przypadku s\u0105 to nazwy interfejs\u00f3w modem\u00f3w USB. <\/p>\n<p>Aby nie pogubi\u0107 si\u0119 w nazwach interfejs\u00f3w, sugeruj\u0119 sprawdzi\u0107 komunikaty dmesg, \u0142\u0105cz\u0105c si\u0119 przez SSH. <\/p>\n<p>Poniewa\u017c moje modemy same dzia\u0142aj\u0105 jako routery i maj\u0105 w\u0142asny serwer DHCP, musia\u0142em zmieni\u0107 ustawienia ich wewn\u0119trznych zakres\u00f3w sieci oraz wy\u0142\u0105czy\u0107 serwer DHCP, poniewa\u017c pocz\u0105tkowo oba modemy przydzielaj\u0105 adresy z tej samej sieci, co powoduje konflikt. <\/p>\n<p>OpenMPTCPRouter wymaga, aby adresy interfejs\u00f3w WAN by\u0142y statyczne, dlatego wymy\u015blamy podsieci dla modem\u00f3w i konfigurujemy w menu system \u2192 openmptcprouter \u2192 ustawienia interfejsu. Tutaj r\u00f3wnie\u017c nale\u017cy poda\u0107 adres IP i klucz serwera uzyskany na etapie instalacji serwera sumuj\u0105cego.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/a753961a88c417531f2078c8a98ae051.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW przypadku pomy\u015blnej konfiguracji, na stronie statusu powinna pojawi\u0107 si\u0119 podobna wizualizacja. Wida\u0107, \u017ce router zdo\u0142a\u0142 po\u0142\u0105czy\u0107 si\u0119 z serwerem sumuj\u0105cym i oba kana\u0142y dzia\u0142aj\u0105 prawid\u0142owo.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/72bf99bcdb075d7a8393f3543fc2cbb0.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nDomy\u015blnie u\u017cywany jest tryb shadowsocks + mptcp. To taki proxy, kt\u00f3ry opakowuje wszystkie po\u0142\u0105czenia. Pocz\u0105tkowo jest skonfigurowany do obs\u0142ugi tylko TCP, ale mo\u017cna tak\u017ce w\u0142\u0105czy\u0107 UDP.<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/a466bac174ea951829a4d63e24216e73.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nJe\u015bli na stronie statusu nie ma b\u0142\u0119d\u00f3w, konfiguracj\u0119 mo\u017cna uzna\u0107 za zako\u0144czon\u0105. <br \/>\nW przypadku niekt\u00f3rych dostawc\u00f3w mo\u017ce wyst\u0105pi\u0107 sytuacja, w kt\u00f3rej flaga mptcp na trasie ruchu jest obcinana, w takim przypadku wyst\u0105pi taki b\u0142\u0105d:<\/p>\n<p><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/7da3f5ecf52aad7a255c04f7abc17b3b.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW takim przypadku mo\u017cna skorzysta\u0107 z innego trybu pracy, bez u\u017cycia MPTCP, wi\u0119cej informacji na ten temat <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/Ysurac\/openmptcprouter\/issues\/177\">tutaj<\/a><\/noindex>.<\/p>\n<h2>Podsumowanie<\/h2>\n<p>\nProjekt OpenMPTCPRouter jest bardzo interesuj\u0105cy i istotny, poniewa\u017c to prawdopodobnie jedyne otwarte i kompleksowe rozwi\u0105zanie problemu sumowania kana\u0142\u00f3w. Wszystko inne jest albo zamkni\u0119te i proprietary, albo to po prostu pojedyncze modu\u0142y, z kt\u00f3rymi przeci\u0119tna osoba nie jest w stanie sobie poradzi\u0107. Na obecnym etapie rozwoju projekt jest jeszcze do\u015b\u0107 surowy, dokumentacja jest bardzo uboga, wiele rzeczy nie jest po prostu opisanych. Ale mimo to dzia\u0142a. Mam nadziej\u0119, \u017ce b\u0119dzie si\u0119 dalej rozwija\u0107, i otrzymamy routery domowe, kt\u00f3re b\u0119d\u0105 potrafi\u0142y prawid\u0142owo \u0142\u0105czy\u0107 kana\u0142y od razu po wyj\u0119ciu z pude\u0142ka.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/vdsina.ru\/?partner=7d159c89hz\"><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/6aa5c622c5c2ff89585d06b20eea9c4e.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<\/a><\/noindex><\/p>\n<h3>\u015aled\u017a naszego dewelopera na Instagramie<\/h3>\n<p>\n<noindex><a rel=\"nofollow\" href=\"http:\/\/bit.ly\/34w4T9B\"><img decoding=\"async\" alt=\"Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter\" src=\"\/wp-content\/uploads\/2019\/12\/c7ad32f2cc2dc803071e9dae29947457.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/vdsina\/blog\/479026\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u0432 \u043e\u0434\u0438\u043d? \u0412\u043e\u043a\u0440\u0443\u0433 \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u044b \u043a\u0443\u0447\u0430 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u0439 \u0438 \u043c\u0438\u0444\u043e\u0432, \u0434\u0430\u0436\u0435 \u0441\u0435\u0442\u0435\u0432\u044b\u0435 \u0438\u043d\u0436\u0435\u043d\u0435\u0440\u044b \u0441 \u043e\u043f\u044b\u0442\u043e\u043c \u0447\u0430\u0441\u0442\u043e \u043d\u0435 \u0437\u043d\u0430\u044e\u0442 \u043e \u0442\u043e\u043c, \u0447\u0442\u043e \u044d\u0442\u043e \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e. \u0412 \u0431\u043e\u043b\u044c\u0448\u0438\u043d\u0441\u0442\u0432\u0435 \u0441\u043b\u0443\u0447\u0430\u0435\u0432, \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435\u043c \u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e \u043d\u0430\u0437\u044b\u0432\u0430\u044e\u0442 \u0431\u0430\u043b\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u043a\u0443 \u043d\u0430 \u0443\u0440\u043e\u0432\u043d\u0435 NAT \u0438\u043b\u0438 failover. \u041d\u043e \u043d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043f\u0443\u0441\u0442\u0438\u0442\u044c \u043e\u0434\u043d\u043e \u0435\u0434\u0438\u043d\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0435 TCP-\u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043e\u0434\u043d\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e \u043f\u043e \u0432\u0441\u0435\u043c \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043a\u0430\u043d\u0430\u043b\u0430\u043c, \u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0432\u0438\u0434\u0435\u043e\u0442\u0440\u0430\u043d\u0441\u043b\u044f\u0446\u0438\u044e \u0442\u0430\u043a, [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-53735","post","type-post","status-publish","format-standard","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/nastoyashhee-summirovanie-internet-kanalov-openmptcprouter\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u2014 OpenMPTCPRouter | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/nastoyashhee-summirovanie-internet-kanalov-openmptcprouter\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-12-08T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:01:40+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Prawdziwe sumowanie kana\u0142\u00f3w internetowych \u2014 OpenMPTCPRouter | ProHoster","description":"Czy mo\u017cna po\u0142\u0105czy\u0107 kilka.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/nastoyashhee-summirovanie-internet-kanalov-openmptcprouter","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041d\u0430\u0441\u0442\u043e\u044f\u0449\u0435\u0435 \u0441\u0443\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442-\u043a\u0430\u043d\u0430\u043b\u043e\u0432 \u2014 OpenMPTCPRouter | ProHoster","og:description":"\u041c\u043e\u0436\u043d\u043e \u043b\u0438 \u043e\u0431\u044a\u0435\u0434\u0438\u043d\u0438\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/nastoyashhee-summirovanie-internet-kanalov-openmptcprouter","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-12-08T21:00:00+00:00","article:modified_time":"2020-02-18T11:01:40+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"53735","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-24 08:33:22","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:46:32","updated":"2026-01-24 08:33:22","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/53735","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=53735"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/53735\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=53735"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=53735"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=53735"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}