All of lore.kernel.org
 help / color / mirror / Atom feed
From: Menno Smits <menno@netboxblue.com>
To: netfilter-devel@lists.netfilter.org
Subject: conntrack table filling up due to missing ACKs near the end of a TCP session
Date: Fri, 30 Jun 2006 15:19:45 +0100	[thread overview]
Message-ID: <44A53301.1090603@netboxblue.com> (raw)

Hi all,

I'm seeing a problem on a customer box that acts as a primary MX and is 
  running netfilter. The secondary MXs (run by the ISP) appear to be 
broken and cause the conntrack table on the primary MX to fill up.

What happens is this:

- secondary connects to deliver mail
- connection is established and SMTP conversation takes place
- secondary issues QUIT
- primary sends response "221 Bye"
- primary sends FIN
- secondary sends FIN
- primary ACKs FIN from secondary

The secondary never ACKs the last data packet ("221 Bye") or FIN sent by 
the primary. Later the primary retries the "221 Bye" packets several 
times. Interestingly the secondary also sends a Keep-Alive soon after it 
sends it's FIN.

This happens for every inbound connection from the secondaries and the 
result is 1000's of ESTABLISHED entries with 5 day timeouts in the 
conntrack table. The table eventually fills up causing packet loss. The 
conntrack entries are all of the form:

tcp      6 24826 ESTABLISHED src=pri.ma.ry.ip dst=sec.ond.ary.ip 
sport=25 dport=54334 packets=3 bytes=183 [UNREPLIED] src=sec.ond.ary.ip 
dst=pri.ma.ry.ip sport=54334 dport=25 packets=0 bytes=0 mark=0 use=1

The primary is blocking packets that aren't NEW, ESTALISHED or RELATED. 
This could be contributing to the problem but I haven't looked closely 
at this.

Clearly the secondary mail servers are broken but shouldn't netfilter 
handle this situation better. Shouldn't the timeout of a connection be 
greatly reduced if a FIN has been sent?

I have an isolated packet dump for one connection. I'm happy to send it 
   to a netfilter developer privately but am hesitant to post it to the 
list since it is from a customer site.

Any thoughts or advice on this would be greatly appreciated.

Regards,
Menno Smits

NetBox Blue
http://netboxblue.com/

             reply	other threads:[~2006-06-30 14:19 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-30 14:19 Menno Smits [this message]
2006-06-30 14:53 ` conntrack table filling up due to missing ACKs near the end of a TCP session Patrick McHardy
2006-07-03 17:07   ` Menno Smits
2006-07-03 18:19     ` Patrick McHardy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=44A53301.1090603@netboxblue.com \
    --to=menno@netboxblue.com \
    --cc=netfilter-devel@lists.netfilter.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.