LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Problems balancing http/ssl

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: Problems balancing http/ssl
From: Horms <horms@xxxxxxxxxxxx>
Date: Thu, 11 Dec 2003 15:28:35 +0900
On Wed, Dec 10, 2003 at 11:33:11AM +0100, Carlos J. Ramos wrote:
> Hi all there.
> 
> We are using ldirectord to manage the pool of a realservers cluster, in
> order to do that we are balancing both 80 and 443 ports.
> 
> When we are balancing to 80 port, everything is all right, but when
> trying to balance to 443 port requests, ldirectord never try to contact
> with the machine to check if it is correctly up.
> 
> We had put a sniffer (tcpdump) listening in 443 ports of realservers and
> no check is done, this way, the realservers are never added to the pool
> of the realservers with ipvsadm...
> 
> Well the config file we use is this :
> 
> checktimeout=5
> checkinterval=1
> autoreload=yes
> logfile="/var/log/ha/ldirectord.log"
> quiescent=yes
> virtual=195.57.212.78:80
>         real=172.16.40.51:80 masq 1
>         real=172.16.40.52:80 masq 1
>         service=http
>         request="check.html"
>         receive="alive"
>         scheduler=wlc
> virtual=195.57.212.78:443
>         real=172.16.40.51:443 masq 1
>         real=172.16.40.52:443 masq 1
>         request="check.html"
>         receive="alive"
>         scheduler=wlc
>         service=https
> 
> 
> The file "check.html" is inside the apache root document, and it is
> accessible through http and https (tested with lynx-ssl), also the text
> string "alive" is the only text in the file.
> 
> We have put ldirectord in debug mode using the -d switch, and we
> gathered this information:
> 
> 
> First, ldirectord add as a virtual server, thats ok...
> 
> (...)
> DEBUG2: Running system(/sbin/ipvsadm -A -t 195.57.212.78:443 -s wlc )
> Running system(/sbin/ipvsadm -A -t 195.57.212.78:443 -s wlc )
> DEBUG2: Added virtual server: 195.57.212.78:443
> Added virtual server: 195.57.212.78:443
> (...)
> 
> Ldirectord add the server and virtual servers related to 80 port... but
> when it tries to add 443 servers fail:
> 
> (...)
> DEBUG2: Checking negotiate: real
> server=negotiate:https:tcp:172.16.40.51:443::\/ldirectord\.html:toy\
> vivo (virtual=tcp:195.57.212.78:443)
> DEBUG2: Checking https server=172.16.40.51 port=443
> DEBUG2: Testing: 172.16.40.51, 443, /ldirectord.html
> DEBUG2: Disabled server=172.16.40.51
> DEBUG2: Checking negotiate: real
> server=negotiate:https:tcp:172.16.40.52:443::\/ldirectord\.html:toy\
> vivo (virtual=tcp:195.57.212.78:443)
> DEBUG2: Checking https server=172.16.40.52 port=443
> DEBUG2: Testing: 172.16.40.52, 443, /ldirectord.html
> DEBUG2: Disabled server=172.16.40.52
> (...)
> 
> ...as it can be seen, ldirectord saids it test each server, but we
> cannot see using the network sniffer any packet reaching real servers...
> neither outgoing packets from the balancer.
> 
> Since 80 and 443 ports connectivity is done using the same switch we
> don't think it could be due to a lost of connectivity.

That is very curious. Have you tried putting some extra debuging
statements into check_https to try and descover why the test is
failing?

Have you tried tracing packets from the linux-director or the
real-server? The former may be more informative.

[snip]

> Fresh kernel 2.4.21 from www.es.kernel.org compiled from sources and
> patched with linux-2.4.21-ipvs-1.0.10.patch
> 
> 
> What can be due to?, is there any well tested platform recommended for
> heartbeat-ldirectord?, I also tried to download precompiled packages for
> redhat 9.0 from
> http://www.ultramonkey.org/download/heartbeat/stable.latest/redhat_9/dependancies/
> but each file i tried to download gives me a 404 not found error....

Sorry, my mistake. Those links are fixed now.

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