Recientemente se me pidió que descubriera cómo configurar un túnel L2 para un puente entre dos LAN remotas, y me sorprendió la cantidad de soluciones convenientes que pude encontrar. Anteriormente, no estaba interesado en este tema y creía ingenuamente que cualquier protocolo VPN adecuado puede capturar paquetes de transmisión y reenviarlos a través de un túnel L3 normal. Desafortunadamente, no hay soluciones universales disponibles "fuera de la caja". Existen varios protocolos y herramientas para ellos, la mayoría de los cuales funcionan en condiciones muy limitadas o están en desuso. Compartiré la opción más agradable aún más.
¿Por qué exactamente L2?
Hice esta pregunta en primer lugar: rara vez trabajo con periféricos de red, y me pareció que durante mucho tiempo todo el equipo ha podido caminar por L3. Cualquiera sea el caso: alguien necesita acceso a impresoras de oficina, alguien necesita DVR y alguien solo quiere conectarse con un amigo en un duelo LAN, sin salir de casa, por supuesto. También es muy atractiva la idea de carpetas compartidas / de red en la oficina, accesibles desde el hogar, especialmente durante el período de eliminación general.
Al mismo tiempo, entre los desarrolladores de clientes VPN, los puentes L2 se consideran, por alguna razón, algo así como un extraño capricho del uno o dos por ciento de los usuarios, que en general no es necesario para nadie. La situación es bastante diferente en las redes industriales, donde hay muchos equipos obsoletos o poco compatibles, y el concepto L2VPN (representado por un montón de otras abreviaturas) se implementa a nivel de la red y del equipo del proveedor.
Tecnología
Hay muchos de ellos, y todos funcionan con rarezas y limitaciones:
- Por ejemplo, el Protocolo de túnel de capa 2 (L2TP) debería, como su nombre lo indica, admitir OSI L2, incluido el reenvío de difusión. ¡Pero no, el paquete L2TP + IPsec generalmente aceptado no permite conectar redes en el nivel L2!
- PPTP: se ha convertido en un meme debido a las principales vulnerabilidades, ahora está solucionado de alguna manera, pero no tiene nada que ver con L2.
- MPLS — «» . , RouterOS ( , ).
- PPPoE PPPoEoE , . PPPoE , Cisco.
- EoIP L2VPN made right, , . PPTP, GRE, NAT.
Y luego me sorprendió descubrir que el puente de Ethernet real puede ... ¡OpenVPN!
A menudo utilizamos una VPN personal o funcional, para muchos generalmente se activa permanentemente para evitar los bloqueos (aunque esta tendencia está disminuyendo después de que se elimina el bloqueo de Telegram). En mis tareas de trabajo, también uso hosts de desarrollo remoto todo el tiempo, y casi siempre uso OpenVPN. Durante mucho tiempo no entendí por qué necesito un paquete de OpenVPN Access Server + OpenVPN Connect en el cliente. Para mis tareas, la versión clásica con edición manual de configuraciones siempre fue suficiente para mí, y los paneles de administración dedicados y la GUI parecían fuera de lugar en un delgado cliente ligero. Pero resultó que la interfaz es mucho más conveniente para configurar un puente que las hojas de configuraciones en la terminal, aunque no todo es perfecto con ella.
Personalización
El hecho es que Access Server (AS) salió como un producto pagado y bastante caro, por lo que cuidadosamente lo rellenaron con todo tipo de bollos, si tan solo lo compraran. Por lo tanto, apareció un submenú en el panel de administración web, que le permite seleccionar el modo de red (puente L2 / enrutamiento L3), y después de un tiempo se borró silenciosamente desde allí por la misma razón "nadie lo necesita". Sin embargo, la funcionalidad de puente en sí y los scripts correspondientes no se han eliminado y aún se pueden personalizar.
Instalación
Necesitamos un servidor o máquina virtual. La imagen está en la página de descarga , y desmontaremos aún más el caso con la instalación en el servidor bajo Ubuntu 18.04:
apt update && apt -y install ca-certificates wget net-tools gnupg
wget -qO - https://as-repository.openvpn.net/as-repo-public.gpg | apt-key add -
echo "deb http://as-repository.openvpn.net/as/debian bionic main">/etc/apt/sources.list.d/openvpn-as-repo.list
apt update && apt -y install openvpn-as
Después de la instalación, el servidor se levantará solo, verá el siguiente mensaje:
+++++++++++++++++++++++++++++++++++++++++++++++
Access Server 2.8.4 has been successfully installed in /usr/local/openvpn_as
Configuration log file has been written to /usr/local/openvpn_as/init.log
Access Server Web UIs are available here:
Admin UI: https://185.209.31.165:943/admin
Client UI: https://185.209.31.165:943/
+++++++++++++++++++++++++++++++++++++++++++++++
Debe especificar de inmediato la contraseña para la cuenta de administrador:
passwd openvpn
Luego puede abrir el panel de administración en el navegador (en: 943 / admin, como se indicó anteriormente), iniciar sesión como usuario openvpn con la contraseña especificada y configurar el servidor.
AS es de uso gratuito para dos usuarios, luego puede agregarlo solo por $ 18 / mes por usuario, por lo que es mejor diseñar inmediatamente sus procesos para que dos clientes usen el túnel.
Puenteando
cd /usr/local/openvpn_as/scripts
./sacli --key "von.general.osi_layer" --value "2" ConfigPut
./sacli start
Si todo salió bien, la salida json contendrá lo siguiente:
{
"errors": {},
"last_restarted": "Thu Jul 2 00:07:37 2020",
"service_status": {
"api": "on",
"auth": "on",
"bridge": "on",
...
}
}
En el panel de administración, el estado "Capa OSI: 3 (enrutamiento / NAT)" cambiará a "2 (puente)"
Nota: en las últimas versiones, la información sobre L3 puede permanecer cuando el puente está habilitado. ¿Por qué? No lo entendí, seguro en este sentido versiones alrededor de 2.4
En realidad, este conocimiento finaliza, entonces solo necesita configurar un servidor para usted, obtener un segundo usuario a través de la misma interfaz web e iniciar sesión en la página del usuario en el puerto 943 (sin / admin). Habrá enlaces para descargar clientes OpenVPN Connect para todas las plataformas con una configuración horneada para conectarse (excepto para aplicaciones móviles, tendrá que manejar la dirección manualmente, y luego todo se instalará solo).
Después de conectar y conectar con éxito los clientes, estará disponible un túnel L2 con tráfico TCP / UDP. Los clientes pueden actuar como un volumen para la red interna, todo esto también se configura en el panel de administración.