LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

one more fallback doesn't work & question about feedbackd

To: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Subject: one more fallback doesn't work & question about feedbackd
From: Malte Geierhos <malte@xxxxxxxxxx>
Date: Thu, 20 Jul 2006 01:45:34 +0200
hi there - i searched a lot in your archives,
and found some people with the same issue - but no solution - so there's a new post .

setup consists of 4 servers with 1 nic each.
the director's VIP is bound to eth0:0
while the main IP is used for some control functions and so on.
on localhost is a thttpd watching and responding if i use lynx.
the balancing is working fine - every real server is recognized once up and deleted when down.
I can surf the VIP and get response from the real servers as i wanted.

But if all real-servers are down, i got a connection reset.
tcpdump output looks like this on the director :

#######################################

lb:~# tcpdump -vv port 80
tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 01:25:17.129046 IP (tos 0x0, ttl 118, id 11454, offset 0, flags [DF], proto: TCP (6), length: 48) CIP.4796 > VIP.www: S, cksum 0x0ef3 (correct), 1033102882:1033102882(0) win 65535 <mss 1440,nop,nop,sackOK> 01:25:17.157200 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) VIP.www > CIP.4796: R, cksum 0x3b8f (correct), 0:0(0) ack 1033102883 win 0 01:25:17.685574 IP (tos 0x0, ttl 118, id 11527, offset 0, flags [DF], proto: TCP (6), length: 48) CIP.4796 > VIP.www: S, cksum 0x0ef3 (correct), 1033102882:1033102882(0) win 65535 <mss 1440,nop,nop,sackOK> 01:25:17.685578 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) VIP.www > CIP.4796: R, cksum 0x3b8f (correct), 0:0(0) ack 1 win 0 01:25:18.210517 IP (tos 0x0, ttl 118, id 11598, offset 0, flags [DF], proto: TCP (6), length: 48) CIP.4796 > VIP.www: S, cksum 0x0ef3 (correct), 1033102882:1033102882(0) win 65535 <mss 1440,nop,nop,sackOK> 01:25:18.210521 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto: TCP (6), length: 40) VIP.www > CIP.4796: R, cksum 0x3b8f (correct), 0:0(0) ack 1 win 0

6 packets captured

#########################################

my ldirectord.cf looks like this :
checktimeout=3
checkinterval=10
fallback=127.0.0.1:80
autoreload=yes
logfile="/var/log/ldirectord.log"
#logfile="local0"
quiescent=yes

# A sample virual with a fallback that will override the gobal setting
virtual=a.b.c.d:80
       real=a.b.c.e:80 ipip 1
       real=a.b.c.f:80 ipip 1
       real=a.b.c.g:80 ipip 1
       fallback=127.0.0.1:80
       service=http
       request="/test"
       receive="ok"
       virtualhost=www.xyz.de
       scheduler=wlc
       #persistent=600
       #netmask=255.255.255.255
       protocol=tcp


The next thing is : Is anyone going along with feedbackd ?
I read something that there were some ideas to integrate it into keepalived only i can see it nowhere
and feedbackd-0.4 master produces ugly warnings, when used with 2.6.17
does anyone have a clue how to fix this ?

thank you in advance,
Malte

##########################################################

lb:/web/dev/feedbackd-master-0.4# make
gcc -DHAVE_CONFIG_H -I. -Wall -Wstrict-prototypes -Wunused -g -O2 -I/usr/include/libxml2 -I/lib/modules/2.6.17-1-k7/build/include -I ./ -c src/feedbackd-master.c -o src/feedbackd-master.o
In file included from src/libipvs.h:14,
                from src/feedbackd-master.h:38,
                from src/feedbackd-master.c:26:
/lib/modules/2.6.17-1-k7/build/include/net/ip_vs.h:102: error: expected specifier-qualifier-list before 'u_int16_t' /lib/modules/2.6.17-1-k7/build/include/net/ip_vs.h:117: error: expected specifier-qualifier-list before 'u_int32_t' /lib/modules/2.6.17-1-k7/build/include/net/ip_vs.h:165: error: expected specifier-qualifier-list before 'u_int16_t' /lib/modules/2.6.17-1-k7/build/include/net/ip_vs.h:185: error: expected specifier-qualifier-list before 'u_int32_t' /lib/modules/2.6.17-1-k7/build/include/net/ip_vs.h:205: error: expected specifier-qualifier-list before 'u_int16_t'
src/feedbackd-master.c: In function 'parse_virtual_service':
src/feedbackd-master.c:154: warning: pointer targets in assignment differ in signedness src/feedbackd-master.c:171: warning: pointer targets in assignment differ in signedness src/feedbackd-master.c:185: warning: pointer targets in assignment differ in signedness src/feedbackd-master.c:201: error: 'ipvs_service_t' has no member named 'protocol' src/feedbackd-master.c:206: warning: pointer targets in assignment differ in signedness src/feedbackd-master.c:225: error: 'ipvs_service_t' has no member named 'addr' src/feedbackd-master.c:232: warning: pointer targets in assignment differ in signedness src/feedbackd-master.c:233: error: 'ipvs_service_t' has no member named 'sched_name' src/feedbackd-master.c:247: error: 'ipvs_service_t' has no member named 'addr' src/feedbackd-master.c:253: error: 'ipvs_service_t' has no member named 'protocol' src/feedbackd-master.c:261: error: 'ipvs_service_t' has no member named 'protocol' src/feedbackd-master.c:262: error: 'ipvs_service_t' has no member named 'protocol' src/feedbackd-master.c:285: error: 'ipvs_service_t' has no member named 'port' src/feedbackd-master.c:295: error: 'ipvs_service_t' has no member named 'port' src/feedbackd-master.c:300: error: 'ipvs_service_t' has no member named 'protocol' src/feedbackd-master.c:301: error: 'ipvs_service_t' has no member named 'port'
src/feedbackd-master.c: In function 'dump_config':
src/feedbackd-master.c:400: error: 'ipvs_service_t' has no member named 'addr' src/feedbackd-master.c:400: error: 'ipvs_service_t' has no member named 'addr' src/feedbackd-master.c:400: error: 'ipvs_service_t' has no member named 'addr' src/feedbackd-master.c:400: error: 'ipvs_service_t' has no member named 'addr' src/feedbackd-master.c:401: error: 'ipvs_service_t' has no member named 'protocol' src/feedbackd-master.c:402: error: 'ipvs_service_t' has no member named 'port' src/feedbackd-master.c:403: error: 'ipvs_service_t' has no member named 'sched_name'
make: *** [src/feedbackd-master.o] Error 1






<Prev in Thread] Current Thread [Next in Thread>