Suma real das canles de Internet - OpenMPTCPRuter

Suma real das canles de Internet - OpenMPTCPRuter

É posible combinar varias canles de Internet nunha soa? Hai moitos conceptos erróneos e mitos arredor deste tema, incluso os enxeñeiros de redes experimentados moitas veces non saben que isto é posible. Na maioría dos casos, a agregación de ligazóns denomínase erroneamente como equilibrio NAT ou conmutación por falla. Pero a suma real permite executar unha única conexión TCP simultaneamente en todas as canles de Internet, por exemplo, a emisión de vídeo para que se se interrompe algunha das canles de Internet, a emisión non se interrompe.

Existen solucións comerciais caras para a transmisión de vídeo, pero estes dispositivos custan moitos kilobucks. O artigo describe a configuración do paquete aberto e gratuíto OpenMPTCPRuter e trata os mitos populares sobre a suma de canles.

Mitos sobre a suma de canles

Hai moitos enrutadores domésticos que admiten a función Multi-WAN. Ás veces, os fabricantes chaman a esta suma de canles, o que non é totalmente certo. Moitos networkers cren que ademais de LACP e suma na capa L2, non existe ningunha outra agregación de canles. Moitas veces escoitei que isto é xeralmente imposible de persoas que traballan en telecomunicacións. Por iso, intentemos comprender os mitos populares.

Equilibrio a nivel de conexións IP

Esta é a forma máis accesible e popular de utilizar varias canles de Internet ao mesmo tempo. Para simplificar, imaxinemos que tes tres ISP, cada un dándoche un enderezo IP real da súa rede. Todos estes provedores están conectados a un enrutador con soporte para a función Multi-WAN. Isto pode ser OpenWRT co paquete mwan3, mikrotik, ubiquiti ou calquera outro enrutador doméstico, xa que agora esta opción xa non é pouco común.

Para simular a situación, imaxina que os provedores nos deron os seguintes enderezos:

WAN1 — 11.11.11.11
WAN2 — 22.22.22.22
WAN2 — 33.33.33.33

É dicir, conectarse a un servidor remoto example.com a través de cada un dos provedores, o servidor remoto verá tres IP fonte independentes do cliente. O equilibrio permítelle dividir a carga entre as canles e usalas as tres ao mesmo tempo. Para simplificar, imaxinemos que dividimos a carga entre todas as canles por igual. Como resultado, cando un cliente abre un sitio con tres imaxes condicionalmente, descarga cada imaxe a través dun provedor separado. No lado do sitio, parece conexións de tres IPs diferentes.

Suma real das canles de Internet - OpenMPTCPRuter
Cando se equilibra a nivel de conexión, cada conexión TCP pasa por un provedor separado.

Este modo de equilibrio adoita causar problemas aos usuarios. Por exemplo, moitos sitios conectan cookies e tokens ao enderezo IP do cliente e, se cambia de súpeto, a solicitude é eliminada ou o cliente pecha sesión no sitio. Isto adoita reproducirse nos sistemas cliente-banco e noutros sitios con regras estritas de sesión de usuario. Aquí tes un exemplo ilustrativo sinxelo: os ficheiros de música en VK.com só están dispoñibles cunha clave de sesión válida que está ligada a IP, e os clientes que usan ese equilibrio moitas veces non reproducen audio, porque a solicitude non pasou polo provedor ao que o sesión está vinculada.

Suma real das canles de Internet - OpenMPTCPRuter
Ao descargar torrents, o equilibrio a nivel de conexión suma o ancho de banda de todas as canles

Tal equilibrio permítelle obter a suma da velocidade da canle de Internet cando se usan varias conexións. Por exemplo, se cada un dos tres provedores ten unha velocidade de 100 megabits, ao descargar torrents obteremos 300 megabits. Porque o torrent abre moitas conexións que se distribúen entre todos os provedores e, finalmente, utilizan toda a canle.

É importante entender que unha única conexión TCP pasará sempre por un só provedor. É dicir, se descargamos un ficheiro grande a través de HTTP, esta conexión realizarase a través dun dos provedores e, se a conexión con este provedor se rompe, a descarga tamén se romperá.

Suma real das canles de Internet - OpenMPTCPRuter
Unha conexión sempre utilizará só unha canle de Internet

Isto tamén é certo para as emisións de vídeo. Se transmites vídeo en streaming nalgún Twitch condicional, o equilibrio a nivel de conexións IP non proporcionará ningún beneficio particular, xa que o fluxo de vídeo transmitirase dentro dunha conexión IP. Neste caso, se o provedor WAN 3 comeza a ter problemas de comunicación, como a perda de paquetes ou a desaceleración, non poderás cambiar inmediatamente a outro provedor. Haberá que deter a emisión e conectar de novo.

Auténtica suma de canles

A suma real de canles fai posible iniciar unha conexión ao Twitch condicional a través de todos os provedores á vez, de tal xeito que, se algún dos provedores rompe, a conexión non se interrompe. Este é un problema sorprendentemente difícil, que aínda non ten unha solución óptima. Moitos nin sequera saben que isto é posible!

Das ilustracións anteriores, lembramos que o servidor de Twitch condicional pode recibir un fluxo de vídeo de nós desde un só enderezo IP de orixe, o que significa que sempre debe ser constante connosco, independentemente de cales son os provedores que caeron e cales funcionen. Para conseguilo, necesitamos un servidor de suma que remate todas as nosas conexións e as fusione nun só.

Suma real das canles de Internet - OpenMPTCPRuter
O servidor de suma agrega todas as canles nun túnel. Todas as conexións orixínanse do enderezo do servidor de suma

Este esquema usa todos os provedores e desactivar calquera deles non provocará unha perda de comunicación co servidor de Twitch. De feito, este é un túnel VPN especial, baixo o capó do cal hai varias canles de Internet á vez. A principal tarefa deste esquema é obter a canle de comunicación da máis alta calidade. Se os problemas comezan nun dos provedores, a perda de paquetes, o aumento dos atrasos, isto non debería afectar de ningún xeito á calidade da comunicación, xa que a carga distribuirase automaticamente por outras canles mellores dispoñibles.

Solucións comerciais

Este problema foi durante moito tempo unha preocupación para aqueles que transmiten eventos en directo e non teñen acceso a Internet de alta calidade. Para tales tarefas, hai varias solucións comerciais, por exemplo, Teradek fabrica enrutadores tan monstruosos nos que se insiren paquetes de módems USB:

Suma real das canles de Internet - OpenMPTCPRuter
Enrutador de vídeo de transmisión con función de suma de canles

Estes dispositivos adoitan ter a capacidade de capturar vídeo a través de HDMI ou SDI. Xunto co enrutador, véndese unha subscrición ao servizo de suma de canles, así como procesar o fluxo de vídeo, transcodificalo e retransmitilo aínda máis. O prezo destes dispositivos comeza a partir de 2 dólares cun conxunto de módems, ademais dunha subscrición separada ao servizo.

Ás veces parece bastante intimidante:

Suma real das canles de Internet - OpenMPTCPRuter

Configurando OpenMPTCPRuter

Protocolo MP-TCP (MultiPath TCP) foi inventado para a posibilidade de conectarse en varias canles á vez. Por exemplo, o seu admite iOS e pode conectarse simultaneamente a un servidor remoto mediante WiFi e unha rede móbil. É importante entender que non se trata de dúas conexións TCP separadas, senón dunha conexión establecida a través de dúas canles á vez. Para que isto funcione, o servidor remoto tamén debe admitir MPTCP.

OpenMPTCPRouter é un proxecto de enrutador de software de código aberto que che permite sumar canles de verdade. Os autores afirman que o proxecto está en estado de versión alfa, pero xa se pode usar. Consta de dúas partes: un servidor de suma, que se atopa en Internet e un enrutador, ao que están conectados varios provedores de Internet e dispositivos cliente: ordenadores, teléfonos. Un enrutador personalizado pode ser un Raspberry Pi, algúns enrutadores WiFi ou un ordenador normal. Hai conxuntos preparados para varias plataformas, o que é moi cómodo.

Suma real das canles de Internet - OpenMPTCPRuter
Como funciona OpenMPTCPRuter

Configuración do servidor de resumos

O servidor de suma está situado en Internet e finaliza as conexións de todas as canles do enrutador cliente nun só. O enderezo IP deste servidor será o enderezo externo ao acceder a Internet a través de OpenMPTCPRuter.

Para esta tarefa, utilizaremos un servidor VPS en Debian 10.

Requisitos do servidor de sumatoria:

  • MPTCP non funciona na virtualización OpenVZ
  • Debería ser posible instalar o seu propio núcleo Linux

O servidor desprégase executando un comando. O script instalará o núcleo habilitado para mptcp e todos os paquetes necesarios. Os scripts de instalación están dispoñibles para Ubuntu e Debian.

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

O resultado dunha instalación exitosa do servidor.

Suma real das canles de Internet - OpenMPTCPRuter

Gardamos os contrasinais, necesitarémolos para configurar o router do cliente, e reiniciaremos. É importante ter en conta que despois da instalación, SSH estará dispoñible no porto 65222. Despois de reiniciar, debemos asegurarnos de que arrancamos co novo núcleo.

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

Vemos a inscrición mptcp xunto ao número de versión, o que significa que o núcleo instalouse correctamente.

Configurando un router cliente

En sitio do proxecto Existen compilacións preparadas para algunhas plataformas, como Raspberry Pi, Banana Pi, enrutadores Lynksys e máquinas virtuais.
Esta parte de openmptcprouter está baseada en OpenWRT, usando LuCI como interface, familiar para calquera que teña atopado OpenWRT. O kit de distribución pesa uns 50Mb!

Suma real das canles de Internet - OpenMPTCPRuter

Como banco de probas, vou usar Raspberry Pi e varios módems USB con diferentes operadores: MTS e Megafon. Como escribir unha imaxe nunha tarxeta SD, supoño, non hai que dicir.

Inicialmente, o porto Ethernet do Raspberry Pi está configurado como LAN cun enderezo IP estático. 192.168.100.1. Para non meterse cos cables da mesa, conectei o Raspberry Pi a un punto de acceso WiFi e configurei un enderezo estático no adaptador WiFi do ordenador. 192.168.100.2. O servidor DHCP non está activado por defecto, polo que se deben usar enderezos estáticos.

Agora podes ir á interface web 192.168.100.1

Cando inicie sesión por primeira vez, o sistema pediralle que estableza o contrasinal de root, SSH estará dispoñible co mesmo contrasinal.

Suma real das canles de Internet - OpenMPTCPRuter
Na configuración da LAN, pode configurar a subrede desexada e activar o servidor DHCP.

Utilizo módems que se definen como interfaces USB ethernet cun servidor DHCP separado, polo que esta precisa instalación paquetes adicionais. O procedemento é idéntico ao de configurar módems en OpenWRT normal, polo que non o cubrirei aquí.

A continuación, cómpre configurar as interfaces WAN. Inicialmente, no sistema creáronse dúas interfaces virtuais WAN1 e WAN2. Necesitan asignar un dispositivo físico, no meu caso, estes son os nomes das interfaces de módem USB.

Para non confundirse nos nomes das interfaces, recoméndoche ver as mensaxes dmesg mentres está conectado a través de SSH.

Dado que os meus módems actúan como enrutadores e teñen un servidor DHCP, tiven que cambiar a configuración dos seus rangos de rede interna e desactivar o servidor DHCP, porque inicialmente ambos os dous módems emiten enderezos desde a mesma rede, e isto provoca un conflito.

OpenMPTCPRuter require que os enderezos da interface WAN sexan estáticos, polo que inventamos subredes para módems e configuramos no sistema → openmptcprouter → menú de configuración da interface. Aquí tamén cómpre especificar o enderezo IP e a clave do servidor obtidos durante a instalación do servidor de suma.

Suma real das canles de Internet - OpenMPTCPRuter

No caso de que a configuración se realice correctamente, debería aparecer unha imaxe similar na páxina de estado. Pódese ver que o enrutador puido chegar ao servidor de suma e ambas canles funcionan correctamente.

Suma real das canles de Internet - OpenMPTCPRuter

O modo predeterminado é shadowsocks + mptcp. Este é un proxy que envolve todas as conexións en si mesmo. Inicialmente, está configurado para xestionar só TCP, pero tamén pode activar UDP.

Suma real das canles de Internet - OpenMPTCPRuter

Se non hai erros na páxina de estado, a configuración pódese considerar completa.
Con algúns provedores, pode xurdir unha situación cando a bandeira mptcp se trunca ao longo da ruta de tráfico, entón haberá un erro deste tipo:

Suma real das canles de Internet - OpenMPTCPRuter

Neste caso, pode usar outro modo de operación, sen usar MPTCP, máis sobre isto aquí.

Conclusión

O proxecto OpenMPTCPRuter é moi interesante e importante, xa que quizais sexa a única solución complexa aberta ao problema da suma de canles. Todo o demais é moi pechado e propietario, ou só módulos separados cos que unha persoa común non pode xestionar. Na fase actual de desenvolvemento, o proxecto aínda é bastante cru, documentación extremadamente pobre, moitas cousas simplemente non se describen. Pero ao mesmo tempo, aínda funciona. Espero que continúe desenvolvéndose e obteremos routers domésticos que poderán combinar canles normalmente fóra da caixa.

Suma real das canles de Internet - OpenMPTCPRuter

Siga o noso programador en Instagram

Suma real das canles de Internet - OpenMPTCPRuter

Fonte: www.habr.com

Engadir un comentario