I've come across a little problem with my LVS setup.
I'm using lvs to load-balance UDP SIP traffic. And it's been working great
for a couple of months.
But last week, one of my servers stopped working.
If I try a SIP registration towards that server through the load-balancer,
it doesn't work. If I try doing it directly to the server it works fine.
I quintuply checked the configurations, and the server seems configured the
same the other 3 servers (which are working fine).
I even copied over executables and configs from a working server to be sure
(all 4 servers are the same hardware and same configs).
Using ipvsadm 1.2.1 with Kernel 2.6.11 on a gentoo machine.
Anybody have any idea?
#ipvsadm -L -n
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
UDP 192.168.89.220:5060 wlc
-> 192.168.89.232:5060 Tunnel 0 0 0
-> 192.168.89.234:5060 Tunnel 20 0 25
-> 192.168.89.233:5060 Tunnel 20 0 25
-> 192.168.89.231:5060 Tunnel 20 0 25
(No the weight at zero is not the problem, I put it to zero to avoid
problems seeing as this is a production server. For testing purposes I set
the weight back)
Here is the startup script on all 4 real servers:
#!/sbin/runscript
depend() {
before cron
need net
use dns logger
}
start() {
ebegin "Starting load-balancer tunnel"
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
ifconfig tunl0 192.168.89.220 broadcast 192.168.89.220 netmask
255.255.255.255 up -arp
route add -host 192.168.89.220 dev tunl0
echo "2">/proc/sys/net/ipv4/conf/tunl0/arp_announce
echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
echo "1">/proc/sys/net/ipv4/conf/tunl0/arp_ignore
eend $? "done"
}
stop() {
ifconfig tunl0 down
}
--
Benjamin
|