
Ok, entonces... No soy en ningún sentido un profesional en lo que respecta a redes, equilibrio de carga, túneles o conexiones VPN, PERO intenté algunas cosas para que este concepto teórico funcionara, obviamente sin éxito.
Lo que intento lograr: crear una VPN pública (tan abierta para conexiones externas desde Internet), hacer que los clientes se conecten a un servidor equilibrador de carga que luego reenvía el tráfico en función de la menor cantidad de conexiones a los servidores backend que no están en la misma red. y solo se puede acceder a través de Internet (no, desafortunadamente no hay forma de cambiar esto) y hacer que respondan directamente al cliente (DSR) para que el ancho de banda se produzca principalmente en los nodos backend y no en el balanceador de carga para que no haya cuellos de botella. en el equilibrador de carga.
Entonces mi idea fue: dado que nuestro proveedor de alojamiento no ofrece redes privadas, necesito conectar de forma remota varios servidores para equilibrar la carga juntos. Por lo tanto, para fines de prueba creé:
- Un servidor equilibrador de carga que también funciona como servidor VPN interno para crear la red que pensé es necesario para conectar los servidores de forma privada y colocarlos en la misma subred.
- Un primer nodo de servidor VPN externo que está "detrás" del servidor del equilibrador de carga en el sentido de que quiero conectarme al equilibrador de carga y luego reenviar el tráfico a uno de los nodos usando "menos conexiones" y luego hacer que el nodo se conecte directamente al cliente (Retorno directo del servidor) para que todo el ancho de banda no vuelva a ocurrir en el balanceador de carga
- Una IP virtual (10.8.0.250)
Después de crear con éxito la VPN y conectarle el nodo, tengo las siguientes IP:
10.8.0.1 (Load Balancer and internal VPN Server)
10.8.0.10 (First external VPN Server node)
En el Load Balancer habilité el reenvío de IP y creé la siguiente entrada DNAT:
sudo iptables -t nat -A PREROUTING -i eth0 -p udp --dport 1194 -j DNAT --to-destination 10.8.0.250
y la siguiente entrada IPVS:
ipvsadm -A -u 10.8.0.250:1194 -s wlc
ipvsadm -a -u 10.8.0.250:1194 -r 10.8.0.10:1194 -g -w 1
También agregué la IP virtual a la interfaz de bucle invertido del nodo del servidor VPN externo para que aceptara el tráfico entrante por la IP virtual.
Eso es básicamente lo que hice y no funciona.
Ahora mi pregunta es: ¿Existe alguna posibilidad de que esto funcione o simplemente estoy intentando algo que es imposible en la forma en que lo hago? Y si es así: ¿Cuál sería la mejor manera de hacerlo dado que los servidores solo estarán conectados a través de Internet y no hay forma de agruparlos en la misma red privada?
¡Gracias de antemano por cualquier pista!