Buenas, he intentado montar en mi casa un balanceador de carga web, para aprender. Pero no se donde puedo tener el error que hace que no funcione... El script que hago servir és este: (Perdon por los comentarios en catalan, si hay algo que no entendais, lo posteo sin problemas)
#!/bin/bash
#Es carregue el modul de l'algorisme balancejador de càrrega Round Robin
modprobe ip_vs_rr
#S'habilite el reenviament de paquets IP
echo 1 > /proc/sys/net/ipv4/ip_forward
#Es defineix la comanda per a l'administració de les iptables i del ipvsadm (balancejador)
IPTABLES=/sbin/iptables
IPVSADM=/sbin/ipvsadm
ARXIUIPS=/root/ips
#Defineixo el rang de servidors
REDLOCAL=192.168.1.4/5
#Com que tinc ip dinàmica comprovo si aquesta ha canviat respecte de la vella, emmagatzemada a /root/ips
NOVA_IP=`links -dump
http://checkip.dyndns.org | awk ' { print $4 } '`
var2=`tail -1 $ARXIUIPS`
if [[ $NOVA_IP != $var2 && -n $NOVA_IP ]] ; then
#Si ha canviat la ip emmagatzemo aquesta al arxiu /root/ips
echo $NOVA_IP >> $ARXIUIPS
#Netejo qualsevol configuracio de iptables
$IPTABLES -F
#Netejo qualsevol configuracio a la taula nat
$IPTABLES -t nat -F
#S'indica que per a qualsevol paquet amb origen a la xarxa local es realizará el procés de masquerading
$IPTABLES -t nat -A POSTROUTING -s $REDLOCAL -j MASQUERADE
#Es permet el reenviament de datagrames amb origen a la xarxa local
$IPTABLES -A FORWARD -s $REDLOCAL -j ACCEPT
#Es neteja qualsevol configuració anterior de ipvsadm
$IPVSADM -C
#S'afegeix el servei virtual al port 80 utilitzant round robin (rr) com a scheduler
$IPVSADM -A -t $NOVA_IP:80 -s rr
#S'afegeixen els servidors reals associats al servei virtual definit anteriorment
#Aquestos s'identifiquen amb les seves direccions IP y ports on escolten
#S'especifica en els dos casos que la tècnica de balanceig a utilitzar serà la de NAT (mitjançant el paràmetre -m)
$IPVSADM -a -t $NOVA_IP:80 -r 192.168.1.4:80 -m
#$IPVSADM -a -t $NOVA_IP:80 -r 192.168.1.5:80 -m
#Actualitzo els dominis a la nova ip
ddclient -ip $NOVA_IP -host jibarz.homelinux.net
ddclient -ip $NOVA_IP -host jibarz.homelinux.org
ddclient -ip $NOVA_IP -host jibarz.homelinux.com
fi
Las líneas del dyndns las podeis obviar, son por la ip dinamica. Este script se actualizara cada vez que cambie la ip.
En los servidores tengo puesto como gateway la ip del balanceador. No creo que haya ningun tipo de configuración más importante que ésta. Solo decir que el balanceador está detrás de un router que tiene abierto el puerto 80 hacia él (hacia el balanceador).
Haber si alguien ve donde tengo el fallo... Porque mira que lehe dado vueltas...
Saludos!!!