Servicio OpenVPN de alta disponibilidad

Servicio OpenVPN de alta disponibilidad

Actualmente estoy diseñando un servicio OpenVPN para brindar a los usuarios de Internet una mayor privacidad.

Hasta ahora tengo la intención de utilizar servidores dedicados que ejecuten CentOS y Xen para proporcionar múltiples dominios, cada uno de ellos con un servidor OpenVPN para alta disponibilidad y equilibrio de carga.

  1. Si un domU deja de funcionar, quiero que aparezca automáticamente un segundo domU en el mismo host. ¿Es posible este tipo de conmutación por error?

  2. ¿Existe alguna solución para equilibrar la carga de conexiones VPN a servidores domU?

Respuesta1

  1. Sí, es posible monitorear el estado de una DomU Xen y ejecutar algún comando arbitrario si la DomU falla. Puede ejecutar una instancia del demonio Monit en un tercer host (DomU o físico) que verifique el DomU OpenVPN principal y le indique al Dom0 que active el DomU secundario si el principal ha fallado. La documentación de Monit tiene muchos ejemplos que pueden mostrarle cómo implementar esto:

  2. Sí, OpenVPN tiene algunas capacidades de alta disponibilidad y/o carga compartida integradas, y es bastante sencillo de configurar.

Primero, ejecutará varios servidores OpenVPN, en paralelo, y cada servidor escuchará en su propia dirección IP. Los servidores no comparten el estado y no saben nada entre sí.

Luego, especifica múltiples opciones '--remote', ya sea en la línea de comando o en el archivo de configuración del cliente OpenVPN. Cuando el cliente tiene varias opciones de servidor remoto disponibles, elegirá una al azar y se conectará a ella. Si ese servidor falla, volverá a intentar la conexión y luego elegirá aleatoriamente un servidor diferente si no logra conectarse. Consulte los documentos de OpenVPN, aquí, para obtener más información:

Quizás quieras ver mi respuesta a una pregunta similar, aquí:

Como señalé en mi otra respuesta, probablemente querrás prestar atención a estas opciones de cliente, en particular:

  • reintento de conexión
  • conectar-reintentar-max
  • remoto-aleatorio
  • ifconfig-pool-persist

Por supuesto, esto no es un verdadero equilibrio de carga, porque el cliente OpenVPN no selecciona el servidor con la carga más baja, o la menor cantidad de clientes, simplemente elige un servidor al azar. Si necesita un verdadero equilibrio de carga para garantizar que las cargas del servidor permanezcan igualadas, necesitará encontrar algún tipo de solución de equilibrio de carga dedicada, ya sea hardware o software.

Respuesta2

  1. Tal vez podría configurar las dos máquinas virtuales domU como dos nodos de un clúster Linux HA normal. Pero creo que esta configuración sólo puede funcionar si el segundo nodo está en espera, no apagado. Si desea que el nodo domU de respaldo se inicie si el primero no funciona, creo que debe escribir un script en el nivel dom0 que se ejecute siempre verificando el estado del primer nodo y, en caso de falla, forzando su apagado completo y el inicio de la copia de seguridad (no creo que dicho script de shell deba ser demasiado difícil o tal vez puedas usar algún buen software para Linux que pueda hacer el trabajo, pero podría ser más intrusivo).

  2. También para esto, podría considerar las dos máquinas virtuales, como una máquina Linux normal, e instalar y usar una solución Linux estándar de equilibrio de carga.

Respuesta3

Para la configuración de su clúster OpenVPN HA, puede utilizar una combinación de OpenVPN, equilibrio de carga WAN y OSPF. Hay un CÓMO nuevo aquí: http://www.vyatta4people.org/highly-available-openvpn-connection-between-two-offices/ ¡Disfrutar!

información relacionada