LVS
lvs-users
Google
 
Web LinuxVirtualServer.org

Re: [lvs-users] LVS DR dropping the FIN packets

To: "LinuxVirtualServer.org users mailing list." <lvs-users@xxxxxxxxxxxxxxxxxxxxxx>
Subject: Re: [lvs-users] LVS DR dropping the FIN packets
From: Thomas Pedoussaut <thomas@xxxxxxxxxxxxxx>
Date: Fri, 25 Apr 2008 12:33:13 +0100
Thomas Pedoussaut wrote:
> I came across a very strange problem.
>   
I'm replying here to have a track in archive in case someone else has 
the same issue.
> For one of my dozen of services ( a straight TCP connection), the 
> TCP-FIN packets that are arriving on the load balancer are never passed 
> to the real server.
>
> I activated the logs of iptable and could see the FIN packets being dropped.
> No idea why the FIN are dropped and not the other ones. I obviously have 
> the  --state ESTABLISHED,RELATED -j ACCEPT in my iptable rules.
>   
Basically, all packets (SYN and non-SYN) are allowed by the "--state 
NEW" iptables but not by the ESTABLISHED,RELATED, because the director 
never sees the replies from the real server and so never creates a 
conntrack for that connection.
When a FIN packet arrives, it is not validated as a --state NEW, because 
it's flag FIN is activated and so, that particular packet is dropped.


> I had a quick look at /proc/net/ip_conntrack before, during and after 
> the connection but nothing specific to that connection seems to be 
> inserted (the module is loaded and other traffic gets tracked).
>   
So the solution is to change the iptables rule from
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport $VPORT 
-j ACCEPT
to
-A RH-Firewall-1-INPUT -m tcp -p tcp --dport $VPORT -j ACCEPT
> Google doesn't really help. Someone had a similar problem last year but 
> was never publicly solved.
>   
And now I hope this post will get crawled and indexed.

-- 
Thomas Pedoussaut
http://www.synerginetworking.com/blog/


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