Web clients are Sony Ericsson phones so I cannot upgrade all of them. :)
I investigated a bit further and that's what I found:
1. phone sends SYN packet to proxy;
2. proxy responds with SYN,ACK;
3. phone sends ACK;
4. phone sends HTTP GET request;
5. proxy ACKs packet 4;
6. proxy sends HTTP data packet;
7. proxy sends another HTTP data packet;
8. proxy sends FIN packet;
weird things starts here
9. phone once more sends ACK packet acknowledging packet 2 (duplicate of
packet 3);
10. and one more dupe of packet 3;
11.-14. proxy repeats packet 6. 4 times.
The problem is that LVS does not pass packets 11. to 14. to phone. Why?
In case of DNAT packets 11.-14. are passed to phone which at the end
acknowledges packets 6. and 7. and then acknowledges packet 8. thus closing
TCP connection.
Mindaugas
|