[NETFILTER]: Ignore ACKs ACKs on half open connections in TCP conntrack
authorJozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Thu, 1 Dec 2005 22:28:58 +0000 (14:28 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Dec 2005 22:28:58 +0000 (14:28 -0800)
commit73f306024c15bd12e59677d6eaf43ecced614f04
tree88d89bf7d54d51df8bd229ed9384e42f4064245a
parent5666c0947ede0432ba5148570aa66ffb9febff5b
[NETFILTER]: Ignore ACKs ACKs on half open connections in TCP conntrack

Mounting NFS file systems after a (warm) reboot could take a long time if
firewalling and connection tracking was enabled.

The reason is that the NFS clients tends to use the same ports (800 and
counting down). Now on reboot, the server would still have a TCB for an
existing TCP connection client:800 -> server:2049. The client sends a
SYN from port 800 to server:2049, which elicits an ACK from the server.
The firewall on the client drops the ACK because (from its point of
view) the connection is still in half-open state, and it expects to see
a SYNACK.

The client will eventually time out after several minutes.

The following patch corrects this, by accepting ACKs on half open
connections as well.

Signed-off-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
Signed-off-by: Patrick McHardy <kaber@trash.net>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/ipv4/netfilter/ip_conntrack_proto_tcp.c
net/netfilter/nf_conntrack_proto_tcp.c