netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
@ 2010-02-15 17:27 Afi Gjermund
  2010-02-15 17:29 ` Patrick McHardy
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 17:27 UTC (permalink / raw)
  To: netfilter-devel

Hi all,

I am running into an odd issue where the kernel begins to drop packets
because the connection tracking table is full. (I am running
2.6.26.5).

A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.

A tail on /var/log/messages has:

Feb 15 16:45:33 titan user.warn kernel: __ratelimit: 20 messages suppressed
Feb 15 16:45:33 titan user.warn kernel: nf_conntrack: table full,
dropping packet.

I have an interface that allows me to do a 'nf_conntrack_flush' in
kernel, but that seems to only clear the table of
/proc/net/nf_conntrack and not the count the kernel has.

I need a way to ensure that at say 95% there is a way to clear the
"actual" table as well as the count...whichever that may be.  There
seems to be a disconnect between the implementation versus my
understanding of how the system is working. Any help is appreciated.

Afi

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 17:27 nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count Afi Gjermund
@ 2010-02-15 17:29 ` Patrick McHardy
  2010-02-15 17:46   ` Jan Engelhardt
  0 siblings, 1 reply; 28+ messages in thread
From: Patrick McHardy @ 2010-02-15 17:29 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: netfilter-devel

Afi Gjermund wrote:
> Hi all,
> 
> I am running into an odd issue where the kernel begins to drop packets
> because the connection tracking table is full. (I am running
> 2.6.26.5).
> 
> A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
> I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.
> 
> A tail on /var/log/messages has:
> 
> Feb 15 16:45:33 titan user.warn kernel: __ratelimit: 20 messages suppressed
> Feb 15 16:45:33 titan user.warn kernel: nf_conntrack: table full,
> dropping packet.
> 
> I have an interface that allows me to do a 'nf_conntrack_flush' in
> kernel, but that seems to only clear the table of
> /proc/net/nf_conntrack and not the count the kernel has.
> 
> I need a way to ensure that at say 95% there is a way to clear the
> "actual" table as well as the count...whichever that may be.  There
> seems to be a disconnect between the implementation versus my
> understanding of how the system is working. Any help is appreciated.

Conntracks might exist and not be in the global table anymore,
f.i. when referenced by a packet. The difference in your case
seems pretty extreme, so I'd guess that packets are leaked
somewhere.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 17:29 ` Patrick McHardy
@ 2010-02-15 17:46   ` Jan Engelhardt
  2010-02-15 18:04     ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Jan Engelhardt @ 2010-02-15 17:46 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: Afi Gjermund, netfilter-devel


On Monday 2010-02-15 18:29, Patrick McHardy wrote:
>Afi Gjermund wrote:
>> 
>> I am running into an odd issue where the kernel begins to drop packets
>> because the connection tracking table is full. (I am running
>> 2.6.26.5).
>> 
>> A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
>> I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.
>
>Conntracks might exist and not be in the global table anymore,
>f.i. when referenced by a packet. The difference in your case
>seems pretty extreme, so I'd guess that packets are leaked
>somewhere.

So, that would make for 4092 expected connections then?

Afi, what would `conntrack -L expect` give?

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 17:46   ` Jan Engelhardt
@ 2010-02-15 18:04     ` Afi Gjermund
  2010-02-15 19:00       ` Jan Engelhardt
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 18:04 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 9:46 AM, Jan Engelhardt <jengelh@medozas.de> wrote:
>
> On Monday 2010-02-15 18:29, Patrick McHardy wrote:
>>Afi Gjermund wrote:
>>>
>>> I am running into an odd issue where the kernel begins to drop packets
>>> because the connection tracking table is full. (I am running
>>> 2.6.26.5).
>>>
>>> A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
>>> I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.
>>
>>Conntracks might exist and not be in the global table anymore,
>>f.i. when referenced by a packet. The difference in your case
>>seems pretty extreme, so I'd guess that packets are leaked
>>somewhere.
>
> So, that would make for 4092 expected connections then?
>
> Afi, what would `conntrack -L expect` give?
>

Jan, I am running this on an embedded system and will have to
cross-compile the userspace tools and get back to you.  One thing to
note is, I have stopped any traffic flowing through the device, and
yet I am still receiving the kernel drop messages.  Any change its
connection tracking on the loopback? ( I use the loopback for IPC ).

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 18:04     ` Afi Gjermund
@ 2010-02-15 19:00       ` Jan Engelhardt
  2010-02-15 19:30         ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Jan Engelhardt @ 2010-02-15 19:00 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Patrick McHardy, netfilter-devel


On Monday 2010-02-15 19:04, Afi Gjermund wrote:
>>>>
>>>> I am running into an odd issue where the kernel begins to drop packets
>>>> because the connection tracking table is full. (I am running
>>>> 2.6.26.5).
>>>>
>>>> A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
>>>> I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.
>>>
>>>Conntracks might exist and not be in the global table anymore,
>>>f.i. when referenced by a packet. The difference in your case
>>>seems pretty extreme, so I'd guess that packets are leaked
>>>somewhere.
>>
>> So, that would make for 4092 expected connections then?
>>
>> Afi, what would `conntrack -L expect` give?
   (meant: conntrack -L expect | wc -l)

>One thing to
>note is, I have stopped any traffic flowing through the device, and
>yet I am still receiving the kernel drop messages.  Any change its
>connection tracking on the loopback? ( I use the loopback for IPC ).

Yes. conntrack does not care about what interface packets
come in or go out on. Unless it's NOTRACKed, it's counted.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 19:00       ` Jan Engelhardt
@ 2010-02-15 19:30         ` Afi Gjermund
  2010-02-15 19:45           ` Afi Gjermund
  2010-02-15 20:04           ` Eric Dumazet
  0 siblings, 2 replies; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 19:30 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 11:00 AM, Jan Engelhardt <jengelh@medozas.de> wrote:
>
> On Monday 2010-02-15 19:04, Afi Gjermund wrote:
>>>>>
>>>>> I am running into an odd issue where the kernel begins to drop packets
>>>>> because the connection tracking table is full. (I am running
>>>>> 2.6.26.5).
>>>>>
>>>>> A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
>>>>> I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.
>>>>
>>>>Conntracks might exist and not be in the global table anymore,
>>>>f.i. when referenced by a packet. The difference in your case
>>>>seems pretty extreme, so I'd guess that packets are leaked
>>>>somewhere.
>>>
>>> So, that would make for 4092 expected connections then?
>>>
>>> Afi, what would `conntrack -L expect` give?
>   (meant: conntrack -L expect | wc -l)
>
>>One thing to
>>note is, I have stopped any traffic flowing through the device, and
>>yet I am still receiving the kernel drop messages.  Any change its
>>connection tracking on the loopback? ( I use the loopback for IPC ).
>
> Yes. conntrack does not care about what interface packets
> come in or go out on. Unless it's NOTRACKed, it's counted.
>
Okay, after some tinkering I was able to get the userspace application
going.  The results, however, do not seem that helpful.

root@00:00:10:73:77:64 ~# ./conntrack -L expect | wc -l
conntrack v0.9.14 (conntrack-tools): 0 expectations have been shown.
0

root@titan ~# ./conntrack -L conntrack
udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=89099
bytes=12968758 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=110358
bytes=17041625 [ASSURED] mark=0 use=1
udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=87867
bytes=12816098 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=107497
bytes=16573614 [ASSURED] mark=0 use=1
conntrack v0.9.14 (conntrack-tools): 2 flow entries have been shown.

root@titan ~# cat /proc/sys/net/netfilter/nf_conntrack_count
4096

root@titan ~# ./conntrack -S
entries                 4096
searched                2525930
found                   418064263
new                     295548
invalid                 1509
ignore                  233351
delete                  291452
delete_list             280256
insert                  280258
insert_failed           0
drop                    69960
early_drop              173185
icmp_error              45
expect_new              0
expect_create           0
expect_delete           0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 19:30         ` Afi Gjermund
@ 2010-02-15 19:45           ` Afi Gjermund
  2010-02-15 20:04           ` Eric Dumazet
  1 sibling, 0 replies; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 19:45 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 11:30 AM, Afi Gjermund <afigjermund@gmail.com> wrote:
> On Mon, Feb 15, 2010 at 11:00 AM, Jan Engelhardt <jengelh@medozas.de> wrote:
>>
>> On Monday 2010-02-15 19:04, Afi Gjermund wrote:
>>>>>>
>>>>>> I am running into an odd issue where the kernel begins to drop packets
>>>>>> because the connection tracking table is full. (I am running
>>>>>> 2.6.26.5).
>>>>>>
>>>>>> A 'cat /proc/sys/net/netfilter/nf_conntrack_count' says 4096.  But if
>>>>>> I do a 'cat /proc/net/nf_conntrack | wc -l' then it says 4.
>>>>>
>>>>>Conntracks might exist and not be in the global table anymore,
>>>>>f.i. when referenced by a packet. The difference in your case
>>>>>seems pretty extreme, so I'd guess that packets are leaked
>>>>>somewhere.
>>>>
>>>> So, that would make for 4092 expected connections then?
>>>>
>>>> Afi, what would `conntrack -L expect` give?
>>   (meant: conntrack -L expect | wc -l)
>>
>>>One thing to
>>>note is, I have stopped any traffic flowing through the device, and
>>>yet I am still receiving the kernel drop messages.  Any change its
>>>connection tracking on the loopback? ( I use the loopback for IPC ).
>>
>> Yes. conntrack does not care about what interface packets
>> come in or go out on. Unless it's NOTRACKed, it's counted.
>>
> Okay, after some tinkering I was able to get the userspace application
> going.  The results, however, do not seem that helpful.
>
> root@00:00:10:73:77:64 ~# ./conntrack -L expect | wc -l
> conntrack v0.9.14 (conntrack-tools): 0 expectations have been shown.
> 0
>
> root@titan ~# ./conntrack -L conntrack
> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=89099
> bytes=12968758 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=110358
> bytes=17041625 [ASSURED] mark=0 use=1
> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=87867
> bytes=12816098 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=107497
> bytes=16573614 [ASSURED] mark=0 use=1
> conntrack v0.9.14 (conntrack-tools): 2 flow entries have been shown.
>
> root@titan ~# cat /proc/sys/net/netfilter/nf_conntrack_count
> 4096
>
> root@titan ~# ./conntrack -S
> entries                 4096
> searched                2525930
> found                   418064263
> new                     295548
> invalid                 1509
> ignore                  233351
> delete                  291452
> delete_list             280256
> insert                  280258
> insert_failed           0
> drop                    69960
> early_drop              173185
> icmp_error              45
> expect_new              0
> expect_create           0
> expect_delete           0
>
Oops..wrong machine...

root@titan ~# ./conntrack -L expect | wc -l
conntrack v0.9.14 (conntrack-tools): 0 expectations have been shown.
0

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 19:30         ` Afi Gjermund
  2010-02-15 19:45           ` Afi Gjermund
@ 2010-02-15 20:04           ` Eric Dumazet
  2010-02-15 20:33             ` Jan Engelhardt
  1 sibling, 1 reply; 28+ messages in thread
From: Eric Dumazet @ 2010-02-15 20:04 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

Le lundi 15 février 2010 à 11:30 -0800, Afi Gjermund a écrit :
> root@titan ~# ./conntrack -L conntrack
> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=89099
> bytes=12968758 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=110358
> bytes=17041625 [ASSURED] mark=0 use=1
> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=87867
> bytes=12816098 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=107497
> bytes=16573614 [ASSURED] mark=0 use=1
> conntrack v0.9.14 (conntrack-tools): 2 flow entries have been shown.
> 

This looks strange...


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 20:04           ` Eric Dumazet
@ 2010-02-15 20:33             ` Jan Engelhardt
  2010-02-15 21:08               ` Afi Gjermund
  2010-02-15 21:17               ` Eric Dumazet
  0 siblings, 2 replies; 28+ messages in thread
From: Jan Engelhardt @ 2010-02-15 20:33 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Afi Gjermund, Patrick McHardy, netfilter-devel

On Monday 2010-02-15 21:04, Eric Dumazet wrote:
>Le lundi 15 février 2010 à 11:30 -0800, Afi Gjermund a écrit :
>> root@titan ~# ./conntrack -L conntrack
>> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=89099
>> bytes=12968758 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=110358
>> bytes=17041625 [ASSURED] mark=0 use=1
>> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=87867
>> bytes=12816098 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=107497
>> bytes=16573614 [ASSURED] mark=0 use=1
>> conntrack v0.9.14 (conntrack-tools): 2 flow entries have been shown.
>> 
>
>This looks strange...

Could it be that there are ct entries in other namespaces that
conntrack -L and /proc/net/nf_conntrack does not show,
but which nf_conntrack_count counts?
If the procfs files are netns safe at all..
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 20:33             ` Jan Engelhardt
@ 2010-02-15 21:08               ` Afi Gjermund
  2010-02-15 21:52                 ` Eric Dumazet
  2010-02-15 21:17               ` Eric Dumazet
  1 sibling, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 21:08 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Eric Dumazet, Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 12:33 PM, Jan Engelhardt <jengelh@medozas.de> wrote:
> On Monday 2010-02-15 21:04, Eric Dumazet wrote:
>>Le lundi 15 février 2010 à 11:30 -0800, Afi Gjermund a écrit :
>>> root@titan ~# ./conntrack -L conntrack
>>> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=89099
>>> bytes=12968758 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=110358
>>> bytes=17041625 [ASSURED] mark=0 use=1
>>> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=87867
>>> bytes=12816098 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=107497
>>> bytes=16573614 [ASSURED] mark=0 use=1
>>> conntrack v0.9.14 (conntrack-tools): 2 flow entries have been shown.
>>>
>>
>>This looks strange...
>
> Could it be that there are ct entries in other namespaces that
> conntrack -L and /proc/net/nf_conntrack does not show,
> but which nf_conntrack_count counts?
> If the procfs files are netns safe at all..
>
On my 2.6.26.5 kernel I do not have CONFIG_NAMESPACES set.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 20:33             ` Jan Engelhardt
  2010-02-15 21:08               ` Afi Gjermund
@ 2010-02-15 21:17               ` Eric Dumazet
  1 sibling, 0 replies; 28+ messages in thread
From: Eric Dumazet @ 2010-02-15 21:17 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: Afi Gjermund, Patrick McHardy, netfilter-devel

Le lundi 15 février 2010 à 21:33 +0100, Jan Engelhardt a écrit :
> On Monday 2010-02-15 21:04, Eric Dumazet wrote:
> >Le lundi 15 février 2010 à 11:30 -0800, Afi Gjermund a écrit :
> >> root@titan ~# ./conntrack -L conntrack
> >> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=89099
> >> bytes=12968758 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=110358
> >> bytes=17041625 [ASSURED] mark=0 use=1
> >> udp      17 179 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=87867
> >> bytes=12816098 src=0.0.0.0 dst=0.0.0.0 sport=0 dport=0 packets=107497
> >> bytes=16573614 [ASSURED] mark=0 use=1
> >> conntrack v0.9.14 (conntrack-tools): 2 flow entries have been shown.
> >> 
> >
> >This looks strange...
> 
> Could it be that there are ct entries in other namespaces that
> conntrack -L and /proc/net/nf_conntrack does not show,
> but which nf_conntrack_count counts?
> If the procfs files are netns safe at all..

Well, its an embedded platform, I doubt it is namespace enabled :)

(and kernel version is 2.6.26.5, not yet namespace ready for conntrack)



--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 21:08               ` Afi Gjermund
@ 2010-02-15 21:52                 ` Eric Dumazet
  2010-02-15 22:00                   ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Eric Dumazet @ 2010-02-15 21:52 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

Le lundi 15 février 2010 à 13:08 -0800, Afi Gjermund a écrit :
> >
> On my 2.6.26.5 kernel I do not have CONFIG_NAMESPACES set.

could you post the result of 'netstat -s' ?


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 21:52                 ` Eric Dumazet
@ 2010-02-15 22:00                   ` Afi Gjermund
  2010-02-15 22:02                     ` Eric Dumazet
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 22:00 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 1:52 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le lundi 15 février 2010 à 13:08 -0800, Afi Gjermund a écrit :
>> >
>> On my 2.6.26.5 kernel I do not have CONFIG_NAMESPACES set.
>
> could you post the result of 'netstat -s' ?
>
>
>

Unfortunately the Busybox version of netstat doesn't have the statistics option.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 22:00                   ` Afi Gjermund
@ 2010-02-15 22:02                     ` Eric Dumazet
  2010-02-15 22:10                       ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Eric Dumazet @ 2010-02-15 22:02 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

Le lundi 15 février 2010 à 14:00 -0800, Afi Gjermund a écrit :
> On Mon, Feb 15, 2010 at 1:52 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> > Le lundi 15 février 2010 à 13:08 -0800, Afi Gjermund a écrit :
> >> >
> >> On my 2.6.26.5 kernel I do not have CONFIG_NAMESPACES set.
> >
> > could you post the result of 'netstat -s' ?
> >
> >
> >
> 
> Unfortunately the Busybox version of netstat doesn't have the statistics option.

ok then :)

cat /proc/net/snmp


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 22:02                     ` Eric Dumazet
@ 2010-02-15 22:10                       ` Afi Gjermund
  2010-02-18 17:40                         ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-15 22:10 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 2:02 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le lundi 15 février 2010 à 14:00 -0800, Afi Gjermund a écrit :
>> On Mon, Feb 15, 2010 at 1:52 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>> > Le lundi 15 février 2010 à 13:08 -0800, Afi Gjermund a écrit :
>> >> >
>> >> On my 2.6.26.5 kernel I do not have CONFIG_NAMESPACES set.
>> >
>> > could you post the result of 'netstat -s' ?
>> >
>> >
>> >
>>
>> Unfortunately the Busybox version of netstat doesn't have the statistics option.
>
> ok then :)
>
> cat /proc/net/snmp
>
>
>
Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors
ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests
OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails
FragOKs FragFails FragCreates
Ip: 2 64 137517215 0 33726 0 0 0 136714167 151150681 186 53 0 0 0 0 0 0 0
Icmp: InMsgs InErrors InDestUnreachs InTimeExcds InParmProbs
InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps
InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors
OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs O
utRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps
OutAddrMasks OutAddrMaskReps
Icmp: 35 0 35 0 0 0 0 0 0 0 0 0 0 437 0 437 0 0 0 0 0 0 0 0 0 0
IcmpMsg: InType3 OutType3
IcmpMsg: 35 437
Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens
AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs
OutRsts
Tcp: 1 200 120000 -1 0 139 0 80 0 17587 19167 63 0 11984
Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors
Udp: 136619682 437 0 151131067 0 0
UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors
UdpLite: 0 0 0 0 0 0
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-15 22:10                       ` Afi Gjermund
@ 2010-02-18 17:40                         ` Afi Gjermund
  2010-02-18 17:51                           ` Eric Dumazet
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-18 17:40 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

On Mon, Feb 15, 2010 at 2:10 PM, Afi Gjermund <afigjermund@gmail.com> wrote:
> On Mon, Feb 15, 2010 at 2:02 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>> Le lundi 15 février 2010 à 14:00 -0800, Afi Gjermund a écrit :
>>> On Mon, Feb 15, 2010 at 1:52 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>> > Le lundi 15 février 2010 à 13:08 -0800, Afi Gjermund a écrit :
>>> >> >
>>> >> On my 2.6.26.5 kernel I do not have CONFIG_NAMESPACES set.
>>> >
>>> > could you post the result of 'netstat -s' ?
>>> >
>>> >
>>> >
>>>
>>> Unfortunately the Busybox version of netstat doesn't have the statistics option.
>>
>> ok then :)
>>
>> cat /proc/net/snmp
>>
>>
>>
> Ip: Forwarding DefaultTTL InReceives InHdrErrors InAddrErrors
> ForwDatagrams InUnknownProtos InDiscards InDelivers OutRequests
> OutDiscards OutNoRoutes ReasmTimeout ReasmReqds ReasmOKs ReasmFails
> FragOKs FragFails FragCreates
> Ip: 2 64 137517215 0 33726 0 0 0 136714167 151150681 186 53 0 0 0 0 0 0 0
> Icmp: InMsgs InErrors InDestUnreachs InTimeExcds InParmProbs
> InSrcQuenchs InRedirects InEchos InEchoReps InTimestamps
> InTimestampReps InAddrMasks InAddrMaskReps OutMsgs OutErrors
> OutDestUnreachs OutTimeExcds OutParmProbs OutSrcQuenchs O
> utRedirects OutEchos OutEchoReps OutTimestamps OutTimestampReps
> OutAddrMasks OutAddrMaskReps
> Icmp: 35 0 35 0 0 0 0 0 0 0 0 0 0 437 0 437 0 0 0 0 0 0 0 0 0 0
> IcmpMsg: InType3 OutType3
> IcmpMsg: 35 437
> Tcp: RtoAlgorithm RtoMin RtoMax MaxConn ActiveOpens PassiveOpens
> AttemptFails EstabResets CurrEstab InSegs OutSegs RetransSegs InErrs
> OutRsts
> Tcp: 1 200 120000 -1 0 139 0 80 0 17587 19167 63 0 11984
> Udp: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors
> Udp: 136619682 437 0 151131067 0 0
> UdpLite: InDatagrams NoPorts InErrors OutDatagrams RcvbufErrors SndbufErrors
> UdpLite: 0 0 0 0 0 0
>
I am still trying to figure out why the nf_conntrack_count differs
from the table system.  I decided I would use the conntrack userspace
tools.
Both of my NICs are unplugged with no other userspace applications
running to affect connection tracking counts.


root@titan ~# date
Thu Feb 18 17:35:21 UTC 2010

root@titan ~# ./conntrack -C conntrack
351

root@titan ~# date
Thu Feb 18 17:35:24 UTC 2010

root@titan ~# ./conntrack -F conntrack
conntrack v0.9.14 (conntrack-tools): connection tracking table has been emptied.

root@titan ~# date
Thu Feb 18 17:35:31 UTC 2010

root@titan ~# ./conntrack -C conntrack
351

root@titan ~# date
Thu Feb 18 17:35:36 UTC 2010

Shouldn't the value after the flush be 0? The traffic that has created
this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
table.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 17:40                         ` Afi Gjermund
@ 2010-02-18 17:51                           ` Eric Dumazet
  2010-02-18 17:55                             ` Afi Gjermund
  2010-02-18 18:12                             ` Douglas Diniz
  0 siblings, 2 replies; 28+ messages in thread
From: Eric Dumazet @ 2010-02-18 17:51 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

Le jeudi 18 février 2010 à 09:40 -0800, Afi Gjermund a écrit :
> I am still trying to figure out why the nf_conntrack_count differs
> from the table system.  I decided I would use the conntrack userspace
> tools.
> Both of my NICs are unplugged with no other userspace applications
> running to affect connection tracking counts.
> 
> 
> root@titan ~# date
> Thu Feb 18 17:35:21 UTC 2010
> 
> root@titan ~# ./conntrack -C conntrack
> 351
> 
> root@titan ~# date
> Thu Feb 18 17:35:24 UTC 2010
> 
> root@titan ~# ./conntrack -F conntrack
> conntrack v0.9.14 (conntrack-tools): connection tracking table has been emptied.
> 
> root@titan ~# date
> Thu Feb 18 17:35:31 UTC 2010
> 
> root@titan ~# ./conntrack -C conntrack
> 351
> 
> root@titan ~# date
> Thu Feb 18 17:35:36 UTC 2010
> 
> Shouldn't the value after the flush be 0? The traffic that has created
> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
> table.

Could you post a copy of these rules ?

Thanks


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 17:51                           ` Eric Dumazet
@ 2010-02-18 17:55                             ` Afi Gjermund
  2010-02-18 18:07                               ` Eric Dumazet
  2010-02-18 18:12                             ` Douglas Diniz
  1 sibling, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-18 17:55 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

On Thu, Feb 18, 2010 at 9:51 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le jeudi 18 février 2010 à 09:40 -0800, Afi Gjermund a écrit :
>> I am still trying to figure out why the nf_conntrack_count differs
>> from the table system.  I decided I would use the conntrack userspace
>> tools.
>> Both of my NICs are unplugged with no other userspace applications
>> running to affect connection tracking counts.
>>
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:21 UTC 2010
>>
>> root@titan ~# ./conntrack -C conntrack
>> 351
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:24 UTC 2010
>>
>> root@titan ~# ./conntrack -F conntrack
>> conntrack v0.9.14 (conntrack-tools): connection tracking table has been emptied.
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:31 UTC 2010
>>
>> root@titan ~# ./conntrack -C conntrack
>> 351
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:36 UTC 2010
>>
>> Shouldn't the value after the flush be 0? The traffic that has created
>> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
>> table.
>
> Could you post a copy of these rules ?
>
> Thanks
>
>
>
iptables -t nat -A PREROUTING -p tcp -s X.X.X.X -d X.X.X.X --sport X
--dport X -j REDIRECT --to-port X
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 17:55                             ` Afi Gjermund
@ 2010-02-18 18:07                               ` Eric Dumazet
  2010-02-18 18:13                                 ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Eric Dumazet @ 2010-02-18 18:07 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

Le jeudi 18 février 2010 à 09:55 -0800, Afi Gjermund a écrit :
> On Thu, Feb 18, 2010 at 9:51 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> > Le jeudi 18 février 2010 à 09:40 -0800, Afi Gjermund a écrit :
> >> I am still trying to figure out why the nf_conntrack_count differs
> >> from the table system.  I decided I would use the conntrack userspace
> >> tools.
> >> Both of my NICs are unplugged with no other userspace applications
> >> running to affect connection tracking counts.
> >>
> >>
> >> root@titan ~# date
> >> Thu Feb 18 17:35:21 UTC 2010
> >>
> >> root@titan ~# ./conntrack -C conntrack
> >> 351
> >>
> >> root@titan ~# date
> >> Thu Feb 18 17:35:24 UTC 2010
> >>
> >> root@titan ~# ./conntrack -F conntrack
> >> conntrack v0.9.14 (conntrack-tools): connection tracking table has been emptied.
> >>
> >> root@titan ~# date
> >> Thu Feb 18 17:35:31 UTC 2010
> >>
> >> root@titan ~# ./conntrack -C conntrack
> >> 351
> >>
> >> root@titan ~# date
> >> Thu Feb 18 17:35:36 UTC 2010
> >>
> >> Shouldn't the value after the flush be 0? The traffic that has created
> >> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
> >> table.
> >
> > Could you post a copy of these rules ?
> >
> > Thanks
> >
> >
> >
> iptables -t nat -A PREROUTING -p tcp -s X.X.X.X -d X.X.X.X --sport X
> --dport X -j REDIRECT --to-port X

Yes I understood you were using such rules, but I cannot understand how
it can trigger without real nics being plugged. So I asked you some
details, apprently you dont want to provide them and prefer to hide from
us :)




--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 17:51                           ` Eric Dumazet
  2010-02-18 17:55                             ` Afi Gjermund
@ 2010-02-18 18:12                             ` Douglas Diniz
  2010-02-18 18:22                               ` Patrick McHardy
  1 sibling, 1 reply; 28+ messages in thread
From: Douglas Diniz @ 2010-02-18 18:12 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Afi Gjermund, Jan Engelhardt, Patrick McHardy, netfilter-devel

I'm facing the same problem. I'm working in a embedded system with
kernel 2.6.20-6. When I send a ping (or any other protocol) through
eth0 to eth1 (or vice versa) the conntrack count isn't decremented. If
I send the ping through any other interface (eth0 to wifi, eth1 to
wifi, wifi to eth0 and wifi to eth1) I have no problem.
The problem seems to be only between the ethernet interfaces.
I debug the netfilter and I saw that when the problem occurs the "use"
variable inside conntract structure in > 1, so this variable is only
decremented by 1, not reaching in 0, and then the destroy_conntrack
function is not called.

So I think that the problem is more low level, and some events aren't
reaching netfilter, and the "use"variable isn't decremented properly.

This could be a problem with the ethernet driver?

Thanks....

On Thu, Feb 18, 2010 at 3:51 PM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le jeudi 18 février 2010 à 09:40 -0800, Afi Gjermund a écrit :
>> I am still trying to figure out why the nf_conntrack_count differs
>> from the table system.  I decided I would use the conntrack userspace
>> tools.
>> Both of my NICs are unplugged with no other userspace applications
>> running to affect connection tracking counts.
>>
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:21 UTC 2010
>>
>> root@titan ~# ./conntrack -C conntrack
>> 351
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:24 UTC 2010
>>
>> root@titan ~# ./conntrack -F conntrack
>> conntrack v0.9.14 (conntrack-tools): connection tracking table has been emptied.
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:31 UTC 2010
>>
>> root@titan ~# ./conntrack -C conntrack
>> 351
>>
>> root@titan ~# date
>> Thu Feb 18 17:35:36 UTC 2010
>>
>> Shouldn't the value after the flush be 0? The traffic that has created
>> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
>> table.
>
> Could you post a copy of these rules ?
>
> Thanks
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 18:07                               ` Eric Dumazet
@ 2010-02-18 18:13                                 ` Afi Gjermund
  2010-02-18 18:19                                   ` Patrick McHardy
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-18 18:13 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Jan Engelhardt, Patrick McHardy, netfilter-devel

On Thu, Feb 18, 2010 at 10:07 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le jeudi 18 février 2010 à 09:55 -0800, Afi Gjermund a écrit :
>> On Thu, Feb 18, 2010 at 9:51 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>> > Le jeudi 18 février 2010 à 09:40 -0800, Afi Gjermund a écrit :
>> >> I am still trying to figure out why the nf_conntrack_count differs
>> >> from the table system.  I decided I would use the conntrack userspace
>> >> tools.
>> >> Both of my NICs are unplugged with no other userspace applications
>> >> running to affect connection tracking counts.
>> >>
>> >>
>> >> root@titan ~# date
>> >> Thu Feb 18 17:35:21 UTC 2010
>> >>
>> >> root@titan ~# ./conntrack -C conntrack
>> >> 351
>> >>
>> >> root@titan ~# date
>> >> Thu Feb 18 17:35:24 UTC 2010
>> >>
>> >> root@titan ~# ./conntrack -F conntrack
>> >> conntrack v0.9.14 (conntrack-tools): connection tracking table has been emptied.
>> >>
>> >> root@titan ~# date
>> >> Thu Feb 18 17:35:31 UTC 2010
>> >>
>> >> root@titan ~# ./conntrack -C conntrack
>> >> 351
>> >>
>> >> root@titan ~# date
>> >> Thu Feb 18 17:35:36 UTC 2010
>> >>
>> >> Shouldn't the value after the flush be 0? The traffic that has created
>> >> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
>> >> table.
>> >
>> > Could you post a copy of these rules ?
>> >
>> > Thanks
>> >
>> >
>> >
>> iptables -t nat -A PREROUTING -p tcp -s X.X.X.X -d X.X.X.X --sport X
>> --dport X -j REDIRECT --to-port X
>
> Yes I understood you were using such rules, but I cannot understand how
> it can trigger without real nics being plugged. So I asked you some
> details, apprently you dont want to provide them and prefer to hide from
> us :)
>
>
>
>
>
Lol, sorry. The X values are dynamic and depend on what network the
device happens to be on, as well as the ephemeral source port.

iptables -t nat -A PREROUTING -p tcp -s 172.168.8.45 -d 172.168.8.200
--sport 4351 --dport 4500 -j REDIRECT --to-port 45001
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 18:13                                 ` Afi Gjermund
@ 2010-02-18 18:19                                   ` Patrick McHardy
  2010-02-18 19:39                                     ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Patrick McHardy @ 2010-02-18 18:19 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Eric Dumazet, Jan Engelhardt, netfilter-devel

Afi Gjermund wrote:
> On Thu, Feb 18, 2010 at 10:07 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>>>> Shouldn't the value after the flush be 0? The traffic that has created
>>>>> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
>>>>> table.
>>>> Could you post a copy of these rules ?
>>>>
>>> iptables -t nat -A PREROUTING -p tcp -s X.X.X.X -d X.X.X.X --sport X
>>> --dport X -j REDIRECT --to-port X
>> Yes I understood you were using such rules, but I cannot understand how
>> it can trigger without real nics being plugged. So I asked you some
>> details, apprently you dont want to provide them and prefer to hide from
>> us :)
>>
> Lol, sorry. The X values are dynamic and depend on what network the
> device happens to be on, as well as the ephemeral source port.
> 
> iptables -t nat -A PREROUTING -p tcp -s 172.168.8.45 -d 172.168.8.200
> --sport 4351 --dport 4500 -j REDIRECT --to-port 45001

NAT is unlikely to be the cause since its widely used and there
are no other reports of leaks. Please describe your full setup,
especially things like traffic scheduling, network devices,
userspace queueing etc etc.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 18:12                             ` Douglas Diniz
@ 2010-02-18 18:22                               ` Patrick McHardy
  2010-02-18 18:35                                 ` Douglas Diniz
  0 siblings, 1 reply; 28+ messages in thread
From: Patrick McHardy @ 2010-02-18 18:22 UTC (permalink / raw)
  To: Douglas Diniz; +Cc: Eric Dumazet, Afi Gjermund, Jan Engelhardt, netfilter-devel

Douglas Diniz wrote:
> I'm facing the same problem. I'm working in a embedded system with
> kernel 2.6.20-6. When I send a ping (or any other protocol) through
> eth0 to eth1 (or vice versa) the conntrack count isn't decremented. If
> I send the ping through any other interface (eth0 to wifi, eth1 to
> wifi, wifi to eth0 and wifi to eth1) I have no problem.
> The problem seems to be only between the ethernet interfaces.
> I debug the netfilter and I saw that when the problem occurs the "use"
> variable inside conntract structure in > 1, so this variable is only
> decremented by 1, not reaching in 0, and then the destroy_conntrack
> function is not called.
> 
> So I think that the problem is more low level, and some events aren't
> reaching netfilter, and the "use"variable isn't decremented properly.
> 
> This could be a problem with the ethernet driver?

Yes, although you'd likely notice other effects like running
out of memory if it was leaking the packets.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 18:22                               ` Patrick McHardy
@ 2010-02-18 18:35                                 ` Douglas Diniz
  0 siblings, 0 replies; 28+ messages in thread
From: Douglas Diniz @ 2010-02-18 18:35 UTC (permalink / raw)
  To: Patrick McHardy
  Cc: Eric Dumazet, Afi Gjermund, Jan Engelhardt, netfilter-devel

I did some tests removing all nat modules, leaving only the conntrack
core module and the problem still occurs.

I'm working in this problem for more than a week I stiil didnt found the cause.

On Thu, Feb 18, 2010 at 4:22 PM, Patrick McHardy <kaber@trash.net> wrote:
> Douglas Diniz wrote:
>> I'm facing the same problem. I'm working in a embedded system with
>> kernel 2.6.20-6. When I send a ping (or any other protocol) through
>> eth0 to eth1 (or vice versa) the conntrack count isn't decremented. If
>> I send the ping through any other interface (eth0 to wifi, eth1 to
>> wifi, wifi to eth0 and wifi to eth1) I have no problem.
>> The problem seems to be only between the ethernet interfaces.
>> I debug the netfilter and I saw that when the problem occurs the "use"
>> variable inside conntract structure in > 1, so this variable is only
>> decremented by 1, not reaching in 0, and then the destroy_conntrack
>> function is not called.
>>
>> So I think that the problem is more low level, and some events aren't
>> reaching netfilter, and the "use"variable isn't decremented properly.
>>
>> This could be a problem with the ethernet driver?
>
> Yes, although you'd likely notice other effects like running
> out of memory if it was leaking the packets.
>

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 18:19                                   ` Patrick McHardy
@ 2010-02-18 19:39                                     ` Afi Gjermund
  2010-02-19  0:53                                       ` Afi Gjermund
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-18 19:39 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: Eric Dumazet, Jan Engelhardt, netfilter-devel

On Thu, Feb 18, 2010 at 10:19 AM, Patrick McHardy <kaber@trash.net> wrote:
> Afi Gjermund wrote:
>> On Thu, Feb 18, 2010 at 10:07 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>>>>> Shouldn't the value after the flush be 0? The traffic that has created
>>>>>> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
>>>>>> table.
>>>>> Could you post a copy of these rules ?
>>>>>
>>>> iptables -t nat -A PREROUTING -p tcp -s X.X.X.X -d X.X.X.X --sport X
>>>> --dport X -j REDIRECT --to-port X
>>> Yes I understood you were using such rules, but I cannot understand how
>>> it can trigger without real nics being plugged. So I asked you some
>>> details, apprently you dont want to provide them and prefer to hide from
>>> us :)
>>>
>> Lol, sorry. The X values are dynamic and depend on what network the
>> device happens to be on, as well as the ephemeral source port.
>>
>> iptables -t nat -A PREROUTING -p tcp -s 172.168.8.45 -d 172.168.8.200
>> --sport 4351 --dport 4500 -j REDIRECT --to-port 45001
>
> NAT is unlikely to be the cause since its widely used and there
> are no other reports of leaks. Please describe your full setup,
> especially things like traffic scheduling, network devices,
> userspace queueing etc etc.
>

The device has 2 network interfaces that are configured in a bridge
(eth0,eth1).  The traffic scheduling has not been changed from the
default kernel configuration.

Problem path:
The problem I am seeing is that my tcp connections enter the
/proc/net/nf_conntrack table, then disappear over time but the
nf_conntrack_count never decreases.  Over time, the nf_conntrack_count
hits the 4096 nf_conntrack_max and the kernel begins to drop packets
even though the /proc/net/nf_conntrack table is not full (has < 100
connections).

In testing I decided to set the nf_conntrack_max to 100, and fill the
table via the connections above.  Then remove both ethernet cables to
ensure no new connections could be made.  I also set the
nf_conntrack_tcp_timeout_established to 60 seconds.  I left this for 2
hours and saw that the /proc/net/nf_conntrack table was empty while
the nf_conntrack_count was still 100.

I also created a kernel module that calls the nf_conntrack_flush()
function, this seems to only clear the /proc/net/nf_conntrack table,
but not the count. If I also do an atomic_set(&nf_conntrack_count,0)
then (obviously) the count becomes 0.  It is as if the connections are
being removed from the table, but the count is not being decremented,
which I am not sure why.  As far as I understand it, they should be in
sync.

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-18 19:39                                     ` Afi Gjermund
@ 2010-02-19  0:53                                       ` Afi Gjermund
  2010-02-19 14:12                                         ` Eric Dumazet
  0 siblings, 1 reply; 28+ messages in thread
From: Afi Gjermund @ 2010-02-19  0:53 UTC (permalink / raw)
  To: Patrick McHardy; +Cc: Eric Dumazet, Jan Engelhardt, netfilter-devel

On Thu, Feb 18, 2010 at 11:39 AM, Afi Gjermund <afigjermund@gmail.com> wrote:
> On Thu, Feb 18, 2010 at 10:19 AM, Patrick McHardy <kaber@trash.net> wrote:
>> Afi Gjermund wrote:
>>> On Thu, Feb 18, 2010 at 10:07 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
>>>>>>> Shouldn't the value after the flush be 0? The traffic that has created
>>>>>>> this mess is from a REDIRECT rule in the PREROUTING chain of the 'nat'
>>>>>>> table.
>>>>>> Could you post a copy of these rules ?
>>>>>>
>>>>> iptables -t nat -A PREROUTING -p tcp -s X.X.X.X -d X.X.X.X --sport X
>>>>> --dport X -j REDIRECT --to-port X
>>>> Yes I understood you were using such rules, but I cannot understand how
>>>> it can trigger without real nics being plugged. So I asked you some
>>>> details, apprently you dont want to provide them and prefer to hide from
>>>> us :)
>>>>
>>> Lol, sorry. The X values are dynamic and depend on what network the
>>> device happens to be on, as well as the ephemeral source port.
>>>
>>> iptables -t nat -A PREROUTING -p tcp -s 172.168.8.45 -d 172.168.8.200
>>> --sport 4351 --dport 4500 -j REDIRECT --to-port 45001
>>
>> NAT is unlikely to be the cause since its widely used and there
>> are no other reports of leaks. Please describe your full setup,
>> especially things like traffic scheduling, network devices,
>> userspace queueing etc etc.
>>
>
> The device has 2 network interfaces that are configured in a bridge
> (eth0,eth1).  The traffic scheduling has not been changed from the
> default kernel configuration.
>
> Problem path:
> The problem I am seeing is that my tcp connections enter the
> /proc/net/nf_conntrack table, then disappear over time but the
> nf_conntrack_count never decreases.  Over time, the nf_conntrack_count
> hits the 4096 nf_conntrack_max and the kernel begins to drop packets
> even though the /proc/net/nf_conntrack table is not full (has < 100
> connections).
>
> In testing I decided to set the nf_conntrack_max to 100, and fill the
> table via the connections above.  Then remove both ethernet cables to
> ensure no new connections could be made.  I also set the
> nf_conntrack_tcp_timeout_established to 60 seconds.  I left this for 2
> hours and saw that the /proc/net/nf_conntrack table was empty while
> the nf_conntrack_count was still 100.
>
> I also created a kernel module that calls the nf_conntrack_flush()
> function, this seems to only clear the /proc/net/nf_conntrack table,
> but not the count. If I also do an atomic_set(&nf_conntrack_count,0)
> then (obviously) the count becomes 0.  It is as if the connections are
> being removed from the table, but the count is not being decremented,
> which I am not sure why.  As far as I understand it, they should be in
> sync.
>

I have found the issue that was causing this problem.  A userspace
application that was using the NFQueue mechanism to queue data to
userspace was returning a verdict of STOLEN on the first UDP packet
seen.  This appears to have been leaving entries in the connection
table that could not be flushed via nf_conntrack_flush().  When
changing the verdict to DROP, the problem no longer existed.

This was found as I noticed the Timer value of the connections within
the table remained at 3000 (30 in nf_conntrack_udp_timeout x 100).

Feb 18 22:56:31 titan user.info kernel:  ===========================
Table Dump =========================
Feb 18 22:56:31 titan user.info kernel:  ---- Set ----
Feb 18 22:56:31 titan user.info kernel: Timer is : 3000
Feb 18 22:56:31 titan user.info kernel:  tuple dump: IP_CT_DIR_ORIGINAL
Feb 18 22:56:31 titan user.info kernel:
Feb 18 22:56:31 titan user.warn kernel:  tuple c321cc70: l3num 2
protonum 17  srcIP 172.16.8.45 srcPort 4858  -> dstIP 172.16.8.7
dstPort 45001
Feb 18 22:56:31 titan user.info kernel:  tuple dump: IP_CT_DIR_REPLY
Feb 18 22:56:31 titan user.info kernel:
Feb 18 22:56:31 titan user.warn kernel:  tuple c321cca8: l3num 2
protonum 17  srcIP 172.16.8.7 srcPort 45001  -> dstIP 172.16.8.45
dstPort 4858
Feb 18 22:56:31 titan user.info kernel:  ---- End Set ----
Feb 18 22:56:31 titan user.info kernel:  ===========================
End Table Dump =========================
Feb 18 22:57:03 titan user.info kernel:  ===========================
Table Dump =========================
Feb 18 22:57:03 titan user.info kernel:  ---- Set ----
Feb 18 22:57:03 titan user.info kernel: Timer is : 3000
Feb 18 22:57:03 titan user.info kernel:  tuple dump: IP_CT_DIR_ORIGINAL
Feb 18 22:57:03 titan user.info kernel:
Feb 18 22:57:03 titan user.warn kernel:  tuple c321cc70: l3num 2
protonum 17  srcIP 172.16.8.45 srcPort 4858  -> dstIP 172.16.8.7
dstPort 45001
Feb 18 22:57:03 titan user.info kernel:  tuple dump: IP_CT_DIR_REPLY
Feb 18 22:57:03 titan user.info kernel:
Feb 18 22:57:03 titan user.warn kernel:  tuple c321cca8: l3num 2
protonum 17  srcIP 172.16.8.7 srcPort 45001  -> dstIP 172.16.8.45
dstPort 4858
Feb 18 22:57:03 titan user.info kernel:  ---- End Set ----
Feb 18 22:57:03 titan user.info kernel:  ===========================
End Table Dump =========================

Thank you all for your help!  Hopefully this may help other people as well.

Afi

^ permalink raw reply	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-19  0:53                                       ` Afi Gjermund
@ 2010-02-19 14:12                                         ` Eric Dumazet
  2010-02-19 14:29                                           ` Patrick McHardy
  0 siblings, 1 reply; 28+ messages in thread
From: Eric Dumazet @ 2010-02-19 14:12 UTC (permalink / raw)
  To: Afi Gjermund; +Cc: Patrick McHardy, Jan Engelhardt, netfilter-devel

Le jeudi 18 février 2010 à 16:53 -0800, Afi Gjermund a écrit :

> I have found the issue that was causing this problem.  A userspace
> application that was using the NFQueue mechanism to queue data to
> userspace was returning a verdict of STOLEN on the first UDP packet
> seen.  This appears to have been leaving entries in the connection
> table that could not be flushed via nf_conntrack_flush().  When
> changing the verdict to DROP, the problem no longer existed.
> 
> This was found as I noticed the Timer value of the connections within
> the table remained at 3000 (30 in nf_conntrack_udp_timeout x 100).
> 
> Feb 18 22:56:31 titan user.info kernel:  ===========================
> Table Dump =========================
> Feb 18 22:56:31 titan user.info kernel:  ---- Set ----
> Feb 18 22:56:31 titan user.info kernel: Timer is : 3000
> Feb 18 22:56:31 titan user.info kernel:  tuple dump: IP_CT_DIR_ORIGINAL
> Feb 18 22:56:31 titan user.info kernel:
> Feb 18 22:56:31 titan user.warn kernel:  tuple c321cc70: l3num 2
> protonum 17  srcIP 172.16.8.45 srcPort 4858  -> dstIP 172.16.8.7
> dstPort 45001
> Feb 18 22:56:31 titan user.info kernel:  tuple dump: IP_CT_DIR_REPLY
> Feb 18 22:56:31 titan user.info kernel:
> Feb 18 22:56:31 titan user.warn kernel:  tuple c321cca8: l3num 2
> protonum 17  srcIP 172.16.8.7 srcPort 45001  -> dstIP 172.16.8.45
> dstPort 4858
> Feb 18 22:56:31 titan user.info kernel:  ---- End Set ----
> Feb 18 22:56:31 titan user.info kernel:  ===========================
> End Table Dump =========================
> Feb 18 22:57:03 titan user.info kernel:  ===========================
> Table Dump =========================
> Feb 18 22:57:03 titan user.info kernel:  ---- Set ----
> Feb 18 22:57:03 titan user.info kernel: Timer is : 3000
> Feb 18 22:57:03 titan user.info kernel:  tuple dump: IP_CT_DIR_ORIGINAL
> Feb 18 22:57:03 titan user.info kernel:
> Feb 18 22:57:03 titan user.warn kernel:  tuple c321cc70: l3num 2
> protonum 17  srcIP 172.16.8.45 srcPort 4858  -> dstIP 172.16.8.7
> dstPort 45001
> Feb 18 22:57:03 titan user.info kernel:  tuple dump: IP_CT_DIR_REPLY
> Feb 18 22:57:03 titan user.info kernel:
> Feb 18 22:57:03 titan user.warn kernel:  tuple c321cca8: l3num 2
> protonum 17  srcIP 172.16.8.7 srcPort 45001  -> dstIP 172.16.8.45
> dstPort 4858
> Feb 18 22:57:03 titan user.info kernel:  ---- End Set ----
> Feb 18 22:57:03 titan user.info kernel:  ===========================
> End Table Dump =========================
> 
> Thank you all for your help!  Hopefully this may help other people as well.
> 
> Afi

Thanks Afi for providing us more info :)

Patrick, If a user application asks NF_STOLEN, we leak the skb.
As the entry is freed, there is no way this skb can be found again.

What do you think of following patch ?
Or should we ignore NF_STOLEN status from user, to let packet still
queued ?

Thanks

[PATCH] nf_queue: fix NF_STOLEN skb leak

commit 3bc38712e3a6e059 (handle NF_STOP and unknown verdicts in
nf_reinject) was a partial fix to packet leaks.

If user asks NF_STOLEN status, we must free the skb as well.

Reported-by: Afi Gjermund <afigjermund@gmail.com>
Signed-off-by: Eric DUmazet <eric.dumazet@gmail.com>
---
diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c
index 3a6fd77..ba095fd 100644
--- a/net/netfilter/nf_queue.c
+++ b/net/netfilter/nf_queue.c
@@ -265,7 +265,6 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
 		local_bh_disable();
 		entry->okfn(skb);
 		local_bh_enable();
-	case NF_STOLEN:
 		break;
 	case NF_QUEUE:
 		if (!__nf_queue(skb, elem, entry->pf, entry->hook,
@@ -273,6 +272,7 @@ void nf_reinject(struct nf_queue_entry *entry, unsigned int verdict)
 				verdict >> NF_VERDICT_BITS))
 			goto next_hook;
 		break;
+	case NF_STOLEN:
 	default:
 		kfree_skb(skb);
 	}


--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply related	[flat|nested] 28+ messages in thread

* Re: nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count
  2010-02-19 14:12                                         ` Eric Dumazet
@ 2010-02-19 14:29                                           ` Patrick McHardy
  0 siblings, 0 replies; 28+ messages in thread
From: Patrick McHardy @ 2010-02-19 14:29 UTC (permalink / raw)
  To: Eric Dumazet; +Cc: Afi Gjermund, Jan Engelhardt, netfilter-devel

Eric Dumazet wrote:
> Le jeudi 18 février 2010 à 16:53 -0800, Afi Gjermund a écrit :
> 
> Thanks Afi for providing us more info :)
> 
> Patrick, If a user application asks NF_STOLEN, we leak the skb.
> As the entry is freed, there is no way this skb can be found again.
> 
> What do you think of following patch ?
> Or should we ignore NF_STOLEN status from user, to let packet still
> queued ?

I think dropping the packet is the expected behaviour.

> [PATCH] nf_queue: fix NF_STOLEN skb leak
> 
> commit 3bc38712e3a6e059 (handle NF_STOP and unknown verdicts in
> nf_reinject) was a partial fix to packet leaks.
> 
> If user asks NF_STOLEN status, we must free the skb as well.
> 
>

Applied, thanks Eric.
--
To unsubscribe from this list: send the line "unsubscribe netfilter-devel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply	[flat|nested] 28+ messages in thread

end of thread, other threads:[~2010-02-19 14:29 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-02-15 17:27 nf_conntrack_count versus '/proc/net/nf_conntrack | wc -l' count Afi Gjermund
2010-02-15 17:29 ` Patrick McHardy
2010-02-15 17:46   ` Jan Engelhardt
2010-02-15 18:04     ` Afi Gjermund
2010-02-15 19:00       ` Jan Engelhardt
2010-02-15 19:30         ` Afi Gjermund
2010-02-15 19:45           ` Afi Gjermund
2010-02-15 20:04           ` Eric Dumazet
2010-02-15 20:33             ` Jan Engelhardt
2010-02-15 21:08               ` Afi Gjermund
2010-02-15 21:52                 ` Eric Dumazet
2010-02-15 22:00                   ` Afi Gjermund
2010-02-15 22:02                     ` Eric Dumazet
2010-02-15 22:10                       ` Afi Gjermund
2010-02-18 17:40                         ` Afi Gjermund
2010-02-18 17:51                           ` Eric Dumazet
2010-02-18 17:55                             ` Afi Gjermund
2010-02-18 18:07                               ` Eric Dumazet
2010-02-18 18:13                                 ` Afi Gjermund
2010-02-18 18:19                                   ` Patrick McHardy
2010-02-18 19:39                                     ` Afi Gjermund
2010-02-19  0:53                                       ` Afi Gjermund
2010-02-19 14:12                                         ` Eric Dumazet
2010-02-19 14:29                                           ` Patrick McHardy
2010-02-18 18:12                             ` Douglas Diniz
2010-02-18 18:22                               ` Patrick McHardy
2010-02-18 18:35                                 ` Douglas Diniz
2010-02-15 21:17               ` Eric Dumazet

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).