
Tengo un servidor instalado Debian Xen 4.1. Me referiré a este servidor más adelante con la letra A. El servidor tiene dos servidores virtuales en ejecución. Llamemos a estos servidores con las letras B y C.
Todos los servidores A (host), B (vm) y C (vm) tienen ips públicas (solo tienen ips públicas, nada más) Servidor A: xxx82 Servidor B: xxx83 Servidor C: xxx84
Todos tienen la misma máscara de red y la misma puerta de enlace. El servidor A tiene interfaces xenbr0, vif2.0 y vif3.0. El servidor B tiene una interfaz eth0 (vinculada a vif2.0). El servidor C tiene una interfaz eth0 (vinculada a vif3.0). Revisé que las rutas, puertas de enlace y máscaras de red sean correctas. Y la configuración funciona.
route -n (on server A)
Destination Gateway Genmask Flags Metric Ref Use
Iface
0.0.0.0 x.x.x.81 0.0.0.0 UG 0 0 0 xenbr0
x.x.x.80 0.0.0.0 255.255.255.240 U 0 0 0 xenbr0
route -n (on server B and C)
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 x.x.x.81 0.0.0.0 UG 0 0 0 eth0
x.x.x.80 0.0.0.0 255.255.255.240 U 0 0 0 eth0
Esto puede funcionar días, semanas, meses, pero luego sucede algo. De forma aleatoria, el servidor virtual B ya no puede acceder a la puerta de enlace y nadie puede acceder al servidor B a través de una IP pública. Todas las interfaces están activas, las rutas aún son correctas. Los servidores A y C pueden hacer ping a B, y B puede hacer ping a ellos. La puerta de enlace es inalcanzable. Revisé iptables en el host (servidor A), es absolutamente correcto y nada ha cambiado. He leído dmesg, syslog y todos los archivos de registro que pude imaginar en el servidor host A y la máquina virtual B, pero no puedo encontrar ningún error relacionado. ¡El enrutamiento ya no funciona como debería! ¡Y tampoco se ha cambiado nada!
Hasta donde yo sé, la única solución es reiniciar la máquina virtual. Después de eso, funciona perfectamente los próximos meses.
He leído quizás cientos de foros y discusiones pero no he encontrado la solución; generalmente tienen algún problema con la configuración o reciben algún mensaje de error. Cuando el servidor B ya no puede conectarse a la puerta de enlace, el servidor C funciona perfectamente bien y su configuración de red es idéntica (excepto una IP diferente, por supuesto).
También revisé brctl y dice que STP habilitado es "no". ¿Puede esto tener algo que ver con eso? Es difícil de creer porque VM C sigue funcionando perfectamente.
Agradecería cualquier sugerencia sobre dónde empezar a buscar el motivo de esto. He revisado iptables, ifconfig, brctl, dmesg, logs, etc. tantas veces que ya no tengo ideas.