Tengo mi VPN personal, conectando varios dispositivos para que puedan tener direcciones IP fijas en una red siempre accesible (siempre que estén conectados a Internet). Esto es necesario para mí, ya que mis dispositivos pueden estar en movimiento, en redes diferentes e impredecibles (teléfono celular de red 4G, computadora portátil en la universidad, servidor doméstico en casa), y tengo un servidor de respaldo que necesita conectarse a ellos (y a veces , Yo también tengo que hacerlo).
También estoy pensando en instalar algo como la sincronización, que también puede beneficiarse de latencias más bajas y nodos más cercanos.
Además, soy perezoso y me gusta reproducir / pausar la música que se reproduce en el servidor de mi casa desde mi teléfono inteligente, que podría no estar en la misma red (debería, pero no siempre es así).
Esto significa que tengo un servidor OpenVPN y el openvpn
cliente se ejecuta en todos los dispositivos. Todos se conectan al servidor, y cualquier tráfico de cualquiera de los dos nodos tiene que pasar por el servidor, que está relativamente lejos y tiene un rendimiento muy limitado. Esto significa latencia y lentitud. Y cuando presiono el botón "Pausa", puede tomar hasta 10 segundos para pausar la música. Incluso si ambos nodos están realmente en la misma LAN (ya que hablan a través de la VPN). Meh
Idealmente, debería existir alguna forma de crear una VPN que fuera capaz de encontrar rutas más cortas entre los nodos e intentar conectarlos directamente. ¿Algo así como la forma en que Skype trabajó con los supernodos?
Mientras el servidor está lejos de aquí, uno de los nodos tiene una dirección IP pública, y los otros nodos pueden acceder a él. Podría actuar como un servidor de ellos, incluso si no es el servidor en sí, aunque sería una mejor opción para algunos nodos.
Me imagino que podría hacer algo similar para ejecutar tanto un cliente como un servidor, y conectarlos en ese nodo, pero eso no se ve elegante. Es hack, complica la PKI, divide la VPN. No me gusta
Si bien podría usar una VPN simple como PPTP que realmente no garantiza que las comunicaciones sean seguras, decidí que no quería molestarme en configurar Bacula para encriptar las conexiones entre los nodos, lo que significa que el tráfico es simple dentro de la VPN. La encapsulación de VPN es la única seguridad, por lo que no debería ser débil. Sin embargo, cualquier cosa que resuelva la VPN de "malla" sin confidencialidad ya sería un buen comienzo: me aseguraría de que el tráfico comenzara a pasar por SSL / TLS.
Esto parece un problema que alguien más podría haber tenido y resuelto por ahora. ¿Hay algo como esto?
También existe la posibilidad de que esté mirando esto de la manera incorrecta, pero hasta ahora parece el mejor enfoque para garantizar que siempre pueda conectarme a cualquiera de mis dispositivos de forma remota, sin importar dónde esté o dónde estén.
fuente
Respuestas:
No estoy seguro de si satisface completamente sus necesidades, pero probablemente debería echar un vistazo a tinc: http://www.tinc-vpn.org/ . Coincide bastante bien con la red de malla orquestada por un servidor central como usted describió, pero no estoy seguro de si logrará descubrir pares en su red local.
fuente
El vpn de malla más fácil que he encontrado y usado es PeerVPN ( http://www.peervpn.net/ ).
Características de PeerVPN
La configuración es simple ... un archivo de configuración que edite y para vpn de malla básica solo hay 6 configuraciones que necesita especificar, consulte el tutorial de PeerVPN que es solo 1 página: http://www.peervpn.net/tutorial/
La clave de cifrado / autenticación PSK puede tener hasta 512 bits (64 bytes).
He configurado peervpn hasta ahora en múltiples servidores remotos y funciona muy bien. Además, no hay requisitos para un "supernodo" como puede encontrar en otras implementaciones de vpn de malla.
Los nodos en peervpn aprenden sobre los nodos recién agregados a la VPN automáticamente sin necesidad de cambiar las configuraciones. El tráfico de nodo a nodo también es directo y no a través de algún concentrador vpn central.
Nota: lea el archivo peervpn.conf predeterminado para conocer muchas otras opciones que "puede" aprovechar. Pero para la vpn de malla básica como dije, solo necesita configurar 6 opciones (nombre de vpn, PSK, dirección IP del punto final del túnel local, "nombre" de interfaz que desea ver / usar en su sistema Linux y número de puerto para usar para "that" vpn ... tenga en cuenta que puede usar peervpn para múltiples VPN independientes en un servidor)
fuente
Tuve exactamente el mismo problema hace años. Tenía ~ 30 oficinas que todas necesitaban para poder comunicarse directamente, pero estaban configuradas en una configuración de 'concentrador y radio'. Escribí una herramienta en Python para generar automáticamente el
n x (n-1)/2
número de conexiones en OpenVPN entre las oficinas. Más tarde, agregué soporte para el enrutamiento RIP entre los sitios después de un extraño problema de Comcast donde una oficina podía ver a todos los demás, pero no a la oficina principal. Finalmente, agregué la capacidad de generar automáticamente DNS inverso para las IP de enlace y la capacidad de enviar los paquetes a cada enrutador.Echa un vistazo a OpenMesher . Justo esta mañana decidí desempolvarlo para un próximo proyecto. Ojalá haga lo que quieras. Si no, no dudes en enviar un problema y te ayudaré.
fuente