Tengo un grupo de oficinas que están conectadas a la oficina principal a través de enlaces DSL en el otro extremo para ahorrar costos. (Somos una organización sin fines de lucro, no preguntes)
Históricamente hemos tenido problemas notables con el enlace entre el ISP que maneja nuestros sitios remotos y el ISP que maneja las líneas T1 en las que se ejecuta nuestro OpenVPN, por lo que esos enlaces con frecuencia se caen.
La interfaz pública de nuestro servidor de correo está en la red del primer proveedor, por lo que funcionó bien, pero es mucho más lenta porque también es DSL.
Para abordar los problemas de falta de confiabilidad de la red aguas arriba, escribí un script que simplemente modifica los registros DNS en los sitios remotos para apuntar a la IP interna si el túnel está activo o la IP pública si el túnel VPN al sitio principal está inactivo.
¿Cómo puedo hacer esto de una manera más elegante que sea instantánea (en lugar de mis scripts basados en cron) y transparente para los usuarios?
Editar: Oficinas remotas: servidores Ubuntu 9.10 LTSP que ejecutan varios Actiontecs y Motorola proporcionados por el proveedor y algunos con el firewall Netgears y Linksys. Oficina principal: Casi 100% Linux (CentOS, en este caso) con múltiples firewalls Netgear FVS318 / 338 series con firewalls individuales para cada IP en nuestro / 27. (otro no pregunte, fue antes de llegar aquí)