LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: Problem with masq option for LVS - help very much appreciated!

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: Problem with masq option for LVS - help very much appreciated!
From: Roberto Nibali <ratz@xxxxxxxxxxxx>
Date: Thu, 15 Feb 2007 10:16:57 +0100
Hello Torsten,

thanks a lot for replying so quickly - helps me out of my despair!

No worries, people on this list are generally very helpful, no need for desperation.

Should this be /ldirector.html instead of ldirector.html?

Changed this but ldirector.html was found before so do not see a problem
here.

Neither worked, so I suggest fixing this first:

ratz@laphish2:~$ telnet 80.237.155.99 81
Trying 80.237.155.99...
Connected to 80.237.155.99.
Escape character is '^]'.
GET /ldirectord.html HTTP/1.0

HTTP/1.1 404 Not Found
Date: Thu, 15 Feb 2007 08:50:30 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-18
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>404 Not Found</TITLE>
</HEAD><BODY>
<H1>Not Found</H1>
The requested URL /ldirectord.html was not found on this server.<P>
<HR>
<ADDRESS>Apache/1.3.33 Server at kinkaa.com Port 81</ADDRESS>
</BODY></HTML>
Connection closed by foreign host.
ratz@laphish2:~$ telnet 80.237.155.99 81
Trying 80.237.155.99...
Connected to 80.237.155.99.
Escape character is '^]'.
GET ldirectord.html HTTP/1.0

HTTP/1.1 400 Bad Request
Date: Thu, 15 Feb 2007 08:50:52 GMT
Server: Apache/1.3.33 (Debian GNU/Linux) PHP/4.3.10-18
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD>
<TITLE>400 Bad Request</TITLE>
</HEAD><BODY>
<H1>Bad Request</H1>
Your browser sent a request that this server could not understand.<P>
Invalid URI in request GET ldirectord.html HTTP/1.0<P>
<HR>
<ADDRESS>Apache/1.3.33 Server at kinkaa.com Port 81</ADDRESS>
</BODY></HTML>
Connection closed by foreign host.

Important: you need to be able to connect to your RS from your director and be able to perform the defined health check. This is currently not possible (although I couldn't test from your director). If this is not possible, ldirectord will either take your RS out or (maybe?) quiesce it.

Comparing to the ipvsadm -ln output below, you're either not telling the whole truth or did a copy'n'paste error :). Where does the 80.237.155.99:82 come from?

Hehe - that is the issue I guess - I'm not sure what why ldirector makes
this mapping at all - I'm not telling it to do so. :(

Weird, seems like a mapping bug inside ldirectord. I'll have a look at it but maybe not until tomorrow, since I don't have time right now.

I checked twice that this is the only ldirectord.cf on my system

kinkaa_load_balancer_1:/# find . -name ldirectord.cf
./etc/ha.d/ldirectord.cf
kinkaa_load_balancer_1:/#


and it looks like this:
checktimeout=10
checkinterval=2
autoreload=yes
logfile="/var/log/ldirector"
quiescent=yes
virtual=80.237.183.170:82
        fallback=67.19.109.2:81 masq 1000
        real=80.237.155.99:81 masq 1000
         service=http
         request="/ldirector.html"
         receive="Test Page"
         protocol=tcp
         checktype=negotiate
         persistent=1800

Ok, so then this is definitely weird. At first sight it looked to me as if ldirectord has missing "set variable undefined" somewhere in the code. I remember, when I implemented something similar to ldirectord years ago, I was bit by this when writing the configuration parser. Will check ...

One more thing that's important my Debian Stable Installation did NOT
install LVSSyncDaemonSwap in /etc/heartbeat/resource.d - I copied just
this from another machine and it stopped complaining.

I don't know Debian and its LVS related packages well enough to comment on that, I'm afraid. It could be that the LVSSyncDaemonSwap resource script was added at a later stage, after the freeze of the Debian package maintainer for the heartbeat package.

Is your ldirectord started via heartbeat?

Can you report back what running the following "commands" from the director outputs for you, please:

# telnet 80.237.183.170 82
 > GET /ldirectord.html HTTP/1.0 \n\n

No output :0( - you may try on your own - server is up.

# telnet 80.237.183.170 82
 > GET ldirectord.html HTTP/1.0 \n\n

Yes, stupid me. Of course you need to telnet to the RIP:RIPPORT from the director to test it.

Best regards,
Roberto Nibali, ratz
--
echo '[q]sa[ln0=aln256%Pln256/snlbx]sb3135071790101768542287578439snlbxq' | dc

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