Estoy intentando montar una red de servidores con balanceo y alta disponibilidad. Para ello utilizo una serie de máquinas virtuales (VirtualBox) configuradas con Ubuntu corriendo en un entorno Windows Vista, con conectividad entre las máquinas.
Para el balanceo y la alta disponibilidad utilizo Linux Virtual Server (en concreto uso ipvsadm y keepalived). El problema es que sólo me funciona si el cliente es el propio servidor director. Si el cliente es distinto al director se queda pensando como cuando no encuentra una determinada web hasta que salta el timeout.
He probado varias cosas (por ejemplo usar la ip privada del director en la red en lugar de la pública) y he buscado información pero no consigo dar con la respuesta.
No sé si en los servidores reales se ha de hacer algo aparte de poner como ruta por defecto la ip privada del director (
Código:
).route add default gw 192.168.1.34
Adjunto el script de configuración que uso en el director por si me podéis ayudar. Muchas gracias.
Código:
#!/bin/sh # Se carga el módulo de NAT modprobe iptable_nat # Se habilita el reenvío de paquetes IP echo 1 > /proc/sys/net/ipv4/ip_forward # Se define el comando para la administración de iptables IPTABLES=/sbin/iptables # Definición de la red local donde se encuentran los servidores reales. REDLOCAL=192.168.1.0/25 # Se limpia cualquier configuración anterior de iptables $IPTABLES -F # Se indica que para cualquier paquete con origen en la red local se realizará el # proceso de masquerading $IPTABLES -t nat -A POSTROUTING -s $REDLOCAL -j MASQUERADE # Se permite el reenvío de los datagramas con origen en la red local $IPTABLES -A FORWARD -s $REDLOCAL -j ACCEPT # Se define el comando para la administración del servidor virtual. IPVSADM=/sbin/ipvsadm # Se limpia cualquier configuración anterior de ipvsadm $IPVSADM -C # Inicializar master o director ipvsadm -A -t 10.0.2.15:80 -s rr -p #Inicializar servidores ipvsadm -a -t 10.0.2.15:80 -r 192.168.1.35:80 -m ipvsadm -a -t 10.0.2.15:80 -r 192.168.1.36:80 -m keepalived start