LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] request/receive issue using simpletcp

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] request/receive issue using simpletcp
Cc: Rick Deuschle <rickd@xxxxxxxxxxxxxxxxxxxx>, Michael Peters <MRPeters@xxxxxxxxxxxxxx>, Robert Jackson <RJackson@xxxxxxxxxxxxxx>, Adam Bowling <adbowling@xxxxxxxxxxxxxx>
From: Niles Ingalls <nilesi@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 12 Oct 2010 08:39:07 -0400
On Oct 12, 2010, at 5:52 AM, Sohgo Takeuchi wrote:

> 
> From: Sohgo Takeuchi <sohgo@xxxxxxxxxxxxxxxx>
> |
>> From: Niles Ingalls <nilesi@xxxxxxxxxxxxxxxxxxxx>
>> |
>>> On Oct 7, 2010, at 11:37 PM, Sohgo Takeuchi wrote:
>>> 
>>>> From: Niles Ingalls <nilesi@xxxxxxxxxxxxxxxxxxxx>
>>>> |
>>>>> Hello lvs-users,
>>>>> 
>>>>> I'm having a problem doing request receive authentication that I'm unable 
>>>>> to resolve on my own.
>>>>> 
>>>>> I'm using the ldirectord version that comes with debian 5 supplied with 
>>>>> Linux-HA (2.1.3-6lenny4)
>>>>> I've also tested this with dowload/ldirectord-latest from the ldirectord 
>>>>> download page. 
>>>>> (http://horms.net/projects/ldirectord/download/ldirectord-latest).
>>>>> 
>>>>> I'm using ldirectord for load balancing 3M Standard Interchange Protocol 
>>>>> (also known as SIP, not to be confused for Session Initiation Protocol)
>>>>> 
>>>>> Here's what the config looks like.
>>>>> 
>>>>> virtual=192.168.80.2:6001
>>>>>       real=192.168.80.25:6001 masq
>>>>>       request="9300CNredacted|redacted|AY0AZF63B"
>>>>>       receive="^941AY0AZFDFD"
>>>>>       service=simpletcp
>>>> 
>>>> 
>>>> Hi,
>>>> 
>>>> How about specifying like this as a workaround.
>>>> 
>>>> virtual=192.168.80.2:6001
>>>>       real=192.168.80.25:6001 masq "9300CNredacted|redacted|AY0AZF63B" 
>>>> "^941AY0AZFDFD"
>>>>       service=simpletcp
>>>> 
>>> 
>>> Hello Sohgo,
>>> 
>>> Your workaround fixed my problem, and the SIP server is
>>> authenticating properly.
>> 
>> Hello Niles,
>> 
>> That's good.
>> 
>> When I checked the
>> http://horms.net/projects/ldirectord/download/ldirectord-latest,
>> I found that it was not latest. The real latest version does not
>> need this workaround.
>> 
>> If you want to get a latest code, please follow a below
>> instruction written at
>> http://horms.net/projects/ldirectord/download.shtml
>> 
>> "The Latest Un-Released Version" -> "Download linux-ha tree
>> using Mercurial"
>> 
>>> Oct  8 08:25:52 xenb2sip acs-server: INPUT MSG: 
>>> '9300CNredacted|CO_redacted|AY0AZF63B '
>>> Oct  8 08:25:52 xenb2sip acs-server: Sip::MsgType::new('Sip::MsgType', 
>>> '9300CNredacted', '93'): msgtag '0'
>>> Oct  8 08:25:52 xenb2sip acs-server: Sip::MsgType:_initialize('Login', 
>>> '00CNredacted|CO_re...')
>>> Oct  8 08:25:52 xenb2sip acs-server: Sip::MsgType::_initialize('Login', 
>>> '00CNHredacted|CO_redacted|', 'A1A1', '2', ...
>>> Oct  8 08:25:52 xenb2sip acs-server: Successful login for 'redacted' of 
>>> 'indiana'
>>> 
>>> As you can see, the SIP server is happy.
>>> New problem, the negotiation between ldirectord and my SIP server timeout, 
>>> as if the response is never received.
>>> 
>>> DEBUG2: Checking negotiate: real 
>>> server=negotiate:simpletcp:tcp:192.168.80.25:6001:::1:masq:9300CNredacted\|COredacted\|AY0AZF63B\\n:\^941AY0AZFDFD
>>>  (virtual=tcp:192.168.80.2:6001)
>>> DEBUG2: Checking simpletcp server=192.168.80.25 port=6001
>>> DEBUG3: Connected from 192.168.80.2:41853 to 192.168.80.25:6001
>>> DEBUG2: Checking simpletcp server=192.168.80.25 port=6001 request:
>>> 9300CNredacted|COredacted|AY0AZF63B
>>> DEBUG2: Disabled real 
>>> server=negotiate:simpletcp:tcp:192.168.80.25:6001:::1:masq:9300CNredacted\|COredacted\|AY0AZF63B\\n:\^941AY0AZFDFD
>>>  (virtual=tcp:192.168.80.2:6001)
>>> DEBUG3: Deactivated service 192.168.80.25:6001: Timeout Alarm at 
>>> /usr/sbin/ldirectord line 3022.
>>> 
>>> I've tried this with and without adding \n at the end of the request 
>>> without success.
>>> When using telnet, I have to hit return after sending the request 
>>> 9300CNredacted|COredacted|AY0AZF63B , and after receiving the response 
>>> 941AY0AZFDFD before the connection is closed.
>>> I assume that since the SIP server isn't closing the connection, this is 
>>> why I'm timing out.
>> 
>> The ldirectord assumes that the response has a \n. Do you find
>> the SIP server returns response which contains a \n like
>> "941AY0AZFDFD\n" ?
> 
> Could you try following patch? This patch can be applied to
> http://horms.net/projects/ldirectord/download/ldirectord-latest
> 
> --- ldirectord-latest.orig    2009-09-15 14:59:34.000000000 +0900
> +++ ldirectord-latest 2010-10-12 18:50:12.270363918 +0900
> @@ -3355,6 +3355,7 @@
> 
>               &ld_debug(2, "Checking simpletcp server=$$r{server} 
> port=$d_port request:\n$request");
>               print $sock $request;
> +             shutdown($sock, SHUT_WR);
> 
>               my $ok;
>               my $reply;
> 

I'm now using the latest Un-Released version with your patch, and it's working 
very well.
I did notice that if the request/receive is defined with the server 
(real=192.168.80.25:6001 masq "9300CNredacted|redacted|AY0AZF63B" 
"^941AY0AZFDFD"), it truncates the first character like this.    
300CNredacted|redacted|AY0AZF63B
If I define the request/receive independent of the real server line, all works 
perfectly.  As this was my original configuration, my problem is resolved.
Thank You - Niles



_______________________________________________
Please read the documentation before posting - it's available at:
http://www.linuxvirtualserver.org/

LinuxVirtualServer.org mailing list - lvs-users@xxxxxxxxxxxxxxxxxxxxxx
Send requests to lvs-users-request@xxxxxxxxxxxxxxxxxxxxxx
or go to http://lists.graemef.net/mailman/listinfo/lvs-users

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