LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] LVS-DR and Windows 7 Clients (Linux Real Servers)

To: Simon Horman <horms@xxxxxxxxxxxx>
Subject: Re: [lvs-users] LVS-DR and Windows 7 Clients (Linux Real Servers)
Cc: lvs-users@xxxxxxxxxxxxxxxxxxxxxx
From: Chris Chen <chchen@xxxxxxx>
Date: Mon, 07 Jun 2010 07:38:02 -0700
Quoting Simon Horman <horms@xxxxxxxxxxxx>:

> On Fri, Jun 04, 2010 at 07:01:41PM -0700, Chris Chen wrote:
>> Here's a trace of a recent SSL handshake attempt:
>>
>>    1   0.000000 CLIENT_IP -> SERVER_IP TCP 49168 > urd [SYN] Seq=0
>> Win=8192 Len=0 MSS=1380 WS=2 8192 52
>>    2   0.000010 SERVER_IP -> CLIENT_IP TCP urd > 49168 [SYN, ACK]
>> Seq=0 Ack=1 Win=5840 Len=0 MSS=1460 WS=2 5840 52
>>    3   0.000680 CLIENT_IP -> SERVER_IP TCP 49168 > urd [ACK] Seq=1
>> Ack=1 Win=66240 Len=0 66240 40
>>    4   0.000990 CLIENT_IP -> SERVER_IP SSL Client Hello 66240 209
>>    5   0.001005 SERVER_IP -> CLIENT_IP TCP urd > 49168 [ACK] Seq=1
>> Ack=170 Win=6912 Len=0 6912 40
>>    6   0.009298 SERVER_IP -> CLIENT_IP TLSv1 Server Hello,  6912 1420
>>    7   0.009313 SERVER_IP -> CLIENT_IP TLSv1 Certificate, Server Key
>> Exchange, Server Hello Done 6912 1356
>>    8   0.010187 CLIENT_IP -> SERVER_IP TCP 49168 > urd [ACK] Seq=170
>> Ack=2697 Win=66240 Len=0 66240 40
>>    9   0.024244 CLIENT_IP -> SERVER_IP TLSv1 Client Key Exchange,
>> Change Cipher Spec, Encrypted Handshake Message 66240 174
>>   10   0.025339 SERVER_IP -> CLIENT_IP TLSv1 Change Cipher Spec,
>> Encrypted Handshake Message 7984 99
>>   11   0.225653 SERVER_IP -> CLIENT_IP TLSv1 [TCP Retransmission]
>> Change Cipher Spec, Encrypted Handshake Message 7984 99
>>   12   0.226324 CLIENT_IP -> SERVER_IP TCP 49168 > urd [ACK] Seq=304
>> Ack=2756 Win=66180 Len=0 SLE=1597629342 SRE=1597629401 66180 52
>
> [snip]
>
>>   23  25.548536 SERVER_IP -> CLIENT_IP TLSv1 [TCP Retransmission]
>> Change Cipher Spec, Encrypted Handshake Message 7984 99
>>   24  25.549373 CLIENT_IP -> SERVER_IP TCP [TCP Dup ACK 12#6] 49168 >
>> urd [ACK] Seq=304 Ack=2756 Win=66180 Len=0 SLE=1597629342
>> SRE=1597629401 66180 52
>>   25  29.280023 CLIENT_IP -> SERVER_IP TLSv1 Encrypted Alert 66180 77
>>   26  29.280040 SERVER_IP -> CLIENT_IP TLSv1 Application Data 7984 157
>>   27  29.280109 CLIENT_IP -> SERVER_IP TCP 49168 > urd [FIN, ACK]
>> Seq=341 Ack=2756 Win=66180 Len=0 66180 40
>>   28  29.280147 SERVER_IP -> CLIENT_IP TCP urd > 49168 [FIN, ACK]
>> Seq=2873 Ack=342 Win=7984 Len=0 7984 40
>>   29  29.280582 CLIENT_IP -> SERVER_IP TCP 49168 > urd [RST, ACK]
>> Seq=342 Ack=2873 Win=0 Len=0 0 40
>>
>> They seem to get into a retransmit loop right after the client sends
>> the Change Cipher Spec message.
>>
>> If I'm running OpenSSL on the windows box and using s_client with
>> -connect, I can make it punch through by hitting a carriage return.
>
> Hi Chris,
>
> As the client seems to TCP ACK the server's Change Cipher Spec message,
> I am guessing that it's application is ignoring it for some reason.
> Does the problem occur if you take LVS out of the equation and simply
> connect directly to one of the Real Servers from the Windows 7 machine?

Yes, it does. In that case, I may see one retransmit, but the stream  
recovers by itself.

The problem manifests itself on two sets of LVS hosts--both running  
ipvsadm 1.24, but one on RHEL4, and the other on RHEL5.

The real servers are a set of sendmail relays behind the RHEL4 LVS,  
and a set of Perdition IMAP proxies running behind the RHEL5 LVS.

It almost looks like a buffer isn't getting flushed...? Or read?

By the way, thanks for the IMAP proxy!

cc



_______________________________________________
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>