From: Roberto Nibali <ratz@tac.ch>
To: Patrick McHardy <kaber@trash.net>
Cc: Netfilter Developers <netfilter-devel@lists.netfilter.org>,
Pablo Neira <pablo@eurodev.net>
Subject: Re: [PATCH] update raw patch in POM [2.4.x]
Date: Tue, 21 Jun 2005 17:15:53 +0200 [thread overview]
Message-ID: <42B82F29.40307@tac.ch> (raw)
In-Reply-To: <42B8288C.9030004@trash.net>
>>This results in an endless loop when calling rmmod ip_conntrack. lsmod shows
>>(deleted) but the process is in D state. No oops of course and no hang.
>>
>>But I cannot remove the ip_conntrack kernel module anymore. It's "stuck".
>
> This means we're either leaking conntrack entries or packets holding
> a reference are queued somewhere. What do you use NOTRACK for?
There's a lot of situations (broken customer applications, regarding TCP state
transition and timing handling mostly) where we run into major problems using
the connection tracking _with_ tcp window tracking (is a must) on top. The
ip_conntrack_tcp_be_liberal and ip_conntrack_tcp_loose sysctrl's don't help
in those cases. Sometimes we can circumvent window tracking problems using
high ip_conntrack_tcp_max_retrans values. Another reason is that we have no
means to flush selective entries from the connection tracking table except
rmmod'ing the lkm. If we do that we lose all xterm sessions to the packet filter
being reconfigured and also uneccessarily provoke fake failovers in our HA
software. Having the NOTRACK feature allows us to write firewall rules which
seemingly have the same semantics as we had with ipchains in the 2.2.x series.
I could give you a huge list of reasons, all of which have to do in how we use
the packet filtering infrastructure in the given Linux kernel.
>>Do you want me to rerun the test for more precise statements?
>
> Yes, please make sure no packets are queued in qdiscs (best to use
> pfifo) and no raw/packet sockets are open and ip_queue isn't used.
# tc qdisc show
qdisc pfifo_fast 0: dev eth0 [Unknown qdisc, optlen=20]
qdisc pfifo_fast 0: dev eth1 [Unknown qdisc, optlen=20]
# cat /proc/net/raw
sl local_address rem_address st tx_queue rx_queue tr tm->when retrnsmt
uid timeout inode
ip_queue is not used. Following modules are loaded when our small ruleset is set:
Module Size Used by
ipt_NOTRACK 1040 0 (autoclean)
ipt_state 864 0 (autoclean)
ipt_LOG 3824 0 (autoclean)
ipt_limit 1456 0 (autoclean)
iptable_raw 1536 0 (autoclean)
iptable_mangle 2512 0 (autoclean) (unused)
iptable_filter 2000 0 (autoclean)
ip_nat_ftp 2896 0 (unused)
iptable_nat 20368 1 [ip_nat_ftp]
ip_tables 12448 10 [ipt_NOTRACK ipt_state ipt_LOG ipt_limit iptab
le_raw iptable_mangle iptable_filter iptable_nat]
ip_conntrack_ftp 4000 1
ip_conntrack 29632 1 [ipt_NOTRACK ipt_state ip_nat_ftp iptable_nat
ip_conntrack_ftp]
> You could also add a printk to the inner body of the
> while(atomic_read(...)) loop and print out the reference count, perhaps
> it will show something interesting.
After seeing it in D state I reckon I wrap it into a well placed rate limit ;).
Cheers,
Roberto Nibali, ratz
--
-------------------------------------------------------------
addr://Rathausgasse 31, CH-5001 Aarau tel://++41 62 823 9355
http://www.terreactive.com fax://++41 62 823 9356
-------------------------------------------------------------
terreActive AG Wir sichern Ihren Erfolg
-------------------------------------------------------------
next prev parent reply other threads:[~2005-06-21 15:15 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-06-07 11:06 [PATCH] update raw patch in POM Roberto Nibali
2005-06-07 14:37 ` Roberto Nibali
2005-06-07 22:55 ` Pablo Neira
2005-06-08 8:23 ` Roberto Nibali
2005-06-08 12:37 ` Pablo Neira
2005-06-14 15:27 ` Roberto Nibali
2005-06-20 8:18 ` Roberto Nibali
2005-06-20 9:07 ` Roberto Nibali
2005-06-20 10:41 ` SOLVED (was: Re: [PATCH] update raw patch in POM) Roberto Nibali
2005-06-20 11:01 ` Jozsef Kadlecsik
2005-06-20 11:03 ` SOLVED Roberto Nibali
2005-06-20 11:04 ` SOLVED Jozsef Kadlecsik
2005-06-20 10:49 ` [PATCH] update raw patch in POM Jan Engelhardt
2005-06-20 11:03 ` Roberto Nibali
2005-06-21 0:34 ` Thomas Graf
2005-06-21 0:39 ` Thomas Graf
2005-06-21 6:46 ` Roberto Nibali
2005-06-21 8:59 ` Pablo Neira
2005-06-21 9:08 ` Jozsef Kadlecsik
2005-06-21 11:18 ` Thomas Graf
2005-06-21 0:51 ` Pablo Neira
2005-06-21 11:13 ` Thomas Graf
2005-06-21 14:00 ` Patrick McHardy
2005-06-21 14:17 ` [PATCH] update raw patch in POM [2.4.x] Roberto Nibali
2005-06-21 14:47 ` Patrick McHardy
2005-06-21 15:15 ` Roberto Nibali [this message]
2005-06-21 15:32 ` Patrick McHardy
2005-06-22 9:26 ` Roberto Nibali
2005-06-22 7:04 ` Jozsef Kadlecsik
2005-06-22 9:10 ` Roberto Nibali
2005-06-22 9:19 ` Jozsef Kadlecsik
2005-06-22 9:27 ` Roberto Nibali
2005-06-21 21:50 ` [PATCH] update raw patch in POM Thomas Graf
2005-06-22 0:32 ` Patrick McHardy
2005-06-22 0:52 ` Thomas Graf
2005-06-22 3:24 ` Pablo Neira
2005-06-22 3:55 ` Patrick McHardy
2005-06-22 5:48 ` Roberto Nibali
2005-06-22 11:39 ` Roberto Nibali
2005-06-22 18:38 ` Patrick McHardy
2005-06-27 6:36 ` Roberto Nibali
2005-06-27 10:57 ` Patrick McHardy
2005-06-27 12:07 ` Roberto Nibali
2005-06-27 12:55 ` Patrick McHardy
2005-06-27 13:53 ` Roberto Nibali
2005-06-27 15:49 ` Patrick McHardy
2005-06-28 6:02 ` Roberto Nibali
2005-06-27 8:50 ` Roberto Nibali
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=42B82F29.40307@tac.ch \
--to=ratz@tac.ch \
--cc=kaber@trash.net \
--cc=netfilter-devel@lists.netfilter.org \
--cc=pablo@eurodev.net \
/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.