All of lore.kernel.org
 help / color / mirror / Atom feed
* can't change expectation: change_expect returns -1 (resend packet)
@ 2003-11-20 11:11 Nikolai Dahlem
  2003-11-20 11:56 ` Patrick McHardy
  0 siblings, 1 reply; 3+ messages in thread
From: Nikolai Dahlem @ 2003-11-20 11:11 UTC (permalink / raw)
  To: netfilter-devel

[-- Attachment #1: Type: text/plain, Size: 1256 bytes --]

Hi,

I'm raising an expectation in conntrack and im trying to change it in nat to
the ip of the firewall + getting a free port, but in (almost) all cases
change_expect returns -1 (resend packet without the same port). the odd
thing is, in some cases it works ...
I suppose I'm basically doing something plain wrong/stupid, because it
shouldn't be treated as a resend packet.
I attached some snippets from my syslog, how the expectation is risen in
conntrack, and how it try to change it in nat.

conntrack:
ip_conntrack_sip.c:help:expect_related 172.30.8.100:5022-0.0.0.0:0
ip_conntrack_expect_related c280d4a0
tuple: tuple c01fdc00: 17 0.0.0.0:0x0000 0000 -> 172.30.8.100:0xc03fd840
mask:  tuple c01fdc20: 65535 255.255.255.255:0xffff0000 ->
255.255.255.255:0x00000000
new expectation c2b8f370 of conntrack c280d4a0

nat:
starting with port: 5022

change_expect:
exp tuple: tuple c2b8f3c8: 17 0.0.0.0:0x00000000 -> 172.30.8.100:0xc03fd840
exp mask:  tuple c2b8f3e8: 65535 255.255.255.255:0xffff0000 ->
255.255.255.255:0x00000000
newtuple:  tuple c01fdb58: 17 0.0.0.0:0x00000000 -> 10.20.10.213:0xc03fd840
change expect: resent packet
....
<happens for all port>
....
no free port found

Can anybody please shed some light on this

regards

Nikolai Dahlem

[-- Attachment #2: Type: text/html, Size: 3332 bytes --]

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

* Re: can't change expectation: change_expect returns -1 (resend packet)
  2003-11-20 11:11 can't change expectation: change_expect returns -1 (resend packet) Nikolai Dahlem
@ 2003-11-20 11:56 ` Patrick McHardy
  0 siblings, 0 replies; 3+ messages in thread
From: Patrick McHardy @ 2003-11-20 11:56 UTC (permalink / raw)
  To: Nikolai Dahlem; +Cc: netfilter-devel

People can help you better if you post your code, otherwise it's just guessing around.

Regards,
Patrick


Nikolai Dahlem wrote:

> Hi,
>  
> I'm raising an expectation in conntrack and im trying to change it in 
> nat to the ip of the firewall + getting a free port, but in (almost) 
> all cases change_expect returns -1 (resend packet without the same 
> port). the odd thing is, in some cases it works ...
> I suppose I'm basically doing something plain wrong/stupid, because it 
> shouldn't be treated as a resend packet.
> I attached some snippets from my syslog, how the expectation is risen 
> in conntrack, and how it try to change it in nat.
>  
> conntrack:
> ip_conntrack_sip.c:help:expect_related 172.30.8.100:5022-0.0.0.0:0
> ip_conntrack_expect_related c280d4a0
> tuple: tuple c01fdc00: 17 0.0.0.0:0x0000 0000 -> 172.30.8.100:0xc03fd840
> mask:  tuple c01fdc20: 65535 255.255.255.255:0xffff0000 -> 
> 255.255.255.255:0x00000000
> new expectation c2b8f370 of conntrack c280d4a0
> nat:
> starting with port: 5022
>
> change_expect:
> exp tuple: tuple c2b8f3c8: 17 0.0.0.0:0x00000000 -> 
> 172.30.8.100:0xc03fd840
> exp mask:  tuple c2b8f3e8: 65535 255.255.255.255:0xffff0000 -> 
> 255.255.255.255:0x00000000
> newtuple:  tuple c01fdb58: 17 0.0.0.0:0x00000000 -> 
> 10.20.10.213:0xc03fd840
> change expect: resent packet
> ....
> <happens for all port>
> ....
> no free port found
>  
> Can anybody please shed some light on this
>  
> regards
>  
> Nikolai Dahlem

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

* RE: can't change expectation: change_expect returns -1 (resend packet)
       [not found] <DAELKAPIKOFAFFKELNHOIEALCAAA.listuser@epygi.de>
@ 2003-11-20 13:03 ` Nikolai Dahlem
  0 siblings, 0 replies; 3+ messages in thread
From: Nikolai Dahlem @ 2003-11-20 13:03 UTC (permalink / raw)
  To: netfilter-devel

> People can help you better if you post your code, otherwise it's just
guessing around.
Sorry about that, here is the associated code:

conntrack:
exp->tuple = ((struct ip_conntrack_tuple)
		{ { 0, { 0 } },
		{ ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.src.ip, { .udp = {
htons(info->src_sdp_port) } },
		IPPROTO_UDP }});
exp->mask = ((struct ip_conntrack_tuple)
		{ { 0xFFFFFFFF, { .udp = { 0xFFFF } } },
		{ 0xFFFFFFFF, { .udp = { 0xFFFF } }, 0xFFFF }});
exp->expectfn = NULL;
DEBUGP("expect_related %u.%u.%u.%u:%u-%u.%u.%u.%u:%u\n",
			NIPQUAD(exp->tuple.dst.ip),
			ntohs(exp->tuple.dst.u.tcp.port),
			NIPQUAD(exp->tuple.src.ip),
			ntohs(exp->tuple.src.u.tcp.port));
ip_conntrack_expect_related(ct, &expect);

nat:
newtuple = exp->tuple;
newtuple.dst.ip = ct->tuplehash[IP_CT_DIR_REPLY].tuple.dst.ip;
DEBUGP("starting with port: %i\n",ct_sip_info->src_sdp_port);
for (port = ct_sip_info->src_sdp_port; port != 0; port++) {
	newtuple.dst.u.udp.port = htons(port);
	if (ip_conntrack_change_expect(exp, &newtuple)) break;
}
if (port == 0) DEBUGP("no free port found!\n");



> I'm raising an expectation in conntrack and im trying to change it in
> nat to the ip of the firewall + getting a free port, but in (almost)
> all cases change_expect returns -1 (resend packet without the same
> port). the odd thing is, in some cases it works ...
> I suppose I'm basically doing something plain wrong/stupid, because it
> shouldn't be treated as a resend packet.
> I attached some snippets from my syslog, how the expectation is risen
> in conntrack, and how it try to change it in nat.
>
> conntrack:
> ip_conntrack_sip.c:help:expect_related 172.30.8.100:5022-0.0.0.0:0
> ip_conntrack_expect_related c280d4a0
> tuple: tuple c01fdc00: 17 0.0.0.0:0x0000 0000 -> 172.30.8.100:0xc03fd840
> mask:  tuple c01fdc20: 65535 255.255.255.255:0xffff0000 ->
> 255.255.255.255:0x00000000
> new expectation c2b8f370 of conntrack c280d4a0
> nat:
> starting with port: 5022
>
> change_expect:
> exp tuple: tuple c2b8f3c8: 17 0.0.0.0:0x00000000 ->
> 172.30.8.100:0xc03fd840
> exp mask:  tuple c2b8f3e8: 65535 255.255.255.255:0xffff0000 ->
> 255.255.255.255:0x00000000
> newtuple:  tuple c01fdb58: 17 0.0.0.0:0x00000000 ->
> 10.20.10.213:0xc03fd840
> change expect: resent packet
> ....
> <happens for all port>
> ....
> no free port found
>
> Can anybody please shed some light on this


regards

Nikolai Dahlem

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

end of thread, other threads:[~2003-11-20 13:03 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-11-20 11:11 can't change expectation: change_expect returns -1 (resend packet) Nikolai Dahlem
2003-11-20 11:56 ` Patrick McHardy
     [not found] <DAELKAPIKOFAFFKELNHOIEALCAAA.listuser@epygi.de>
2003-11-20 13:03 ` Nikolai Dahlem

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.