I'm trying to set up load balancing with IPVS on two Apache webservers.
The loadbalancer and both apache servers are virtual machines running Ubuntu
8.04 server on VMware ESX 3.5.
If the platform has been idle for some time (like when I came back to work
this morning), I can point a browser to http://VIP and get pages from
server1 or server2 alternatively (I'm using rr during setup). But after
about 5 seconds, I get nothing and the browser times out.
Here is my configuration on the load balancer :
ipvsadm -A -t $VIP:80 -s rr
ipvsadm -a -t $VIP:80 -r $RIP1:80 -g
ipvsadm -a -t $VIP:80 -r $RIP2:80 -g
On webservers, I added the following to /etc/sysctl.conf (as suggested on
net.ipv4.conf.all.hidden = 1
net.ipv4.conf.lo.hidden = 1
I rebooted them and then :
ifconfig lo:0 $VIP netmask 255.255.255.255 up
Unless I did something stupid (if so, please tell me), it should work. I
also tried the following with no more luck :
echo 1 > /proc/sys/net/ipv4/conf/lo/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/lo/arp_announce
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce
I'm quite sure my problem is not on the loadbalancer but on webservers.
Maybe I'm not using correct commands to prevent it from announcing the VIP ?
Any help would be much appreciated.
I already asked on ubuntu forums but I guess you guys are more used to these
kind of problems...
Thanks in advance for your time.