* Netfilter problem with new 2.4.22
@ 2003-09-16 10:22 Diadon
2003-09-16 13:47 ` Harald Welte
0 siblings, 1 reply; 8+ messages in thread
From: Diadon @ 2003-09-16 10:22 UTC (permalink / raw)
To: linux-kernel
After installing 2.4.22
this chain doesn't work
$IPPROG -A OUTPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
On 2.4.21 all works fine
In tcpdump on 2.4.21:
14:41:41.752557 somehost.auth > somehost1.32825: R 0:0(0) ack 217583467
win 0 (DF)
In tcpdump on 2.4.22:
nothing.......
any ideas?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Netfilter problem with new 2.4.22
@ 2003-09-16 12:11 Diadon
0 siblings, 0 replies; 8+ messages in thread
From: Diadon @ 2003-09-16 12:11 UTC (permalink / raw)
To: netfilter-devel
After installing 2.4.22
this chain doesn't work
$IPPROG -A OUTPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
On 2.4.21 all works fine
In tcpdump on 2.4.21:
14:41:41.752557 somehost.auth > somehost1.32825: R 0:0(0) ack 217583467
win 0 (DF)
In tcpdump on 2.4.22:
nothing.......
any ideas?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Netfilter problem with new 2.4.22
2003-09-16 10:22 Diadon
@ 2003-09-16 13:47 ` Harald Welte
0 siblings, 0 replies; 8+ messages in thread
From: Harald Welte @ 2003-09-16 13:47 UTC (permalink / raw)
To: Diadon; +Cc: linux-kernel, Netfilter Development Mailinglist
[-- Attachment #1: Type: text/plain, Size: 649 bytes --]
On Tue, Sep 16, 2003 at 02:22:37PM +0400, Diadon wrote:
> After installing 2.4.22
> this chain doesn't work
please post iptables related questions to netfilter@lists.netfilter.org
or netfilter-devel@lists.netfilter.org. I'm forwarding your mail there.
> any ideas?
--
- Harald Welte <laforge@netfilter.org> http://www.netfilter.org/
============================================================================
"Fragmentation is like classful addressing -- an interesting early
architectural error that shows how much experimentation was going
on while IP was being designed." -- Paul Vixie
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Netfilter problem with new 2.4.22
@ 2003-09-18 9:14 Diadon
2003-09-18 21:40 ` Patrick McHardy
` (2 more replies)
0 siblings, 3 replies; 8+ messages in thread
From: Diadon @ 2003-09-18 9:14 UTC (permalink / raw)
To: netfilter-devel; +Cc: netfilter
More new info about this problem.
When I get ipt_REJECT.c from 2.4.21 and replace ipt_REJECT.c in 2.4.22,
problem has disappeared. So when I compare two files ipt_REJECT.c from
different versions of kernel:
3a4
> * Added support for ICMP type-3-code-13 (Maciej Soltysiak). [RFC 1812]
35a37,76
> static inline struct rtable *route_reverse(struct sk_buff *skb, int
local)
> {
> struct iphdr *iph = skb->nh.iph;
> struct dst_entry *odst;
> struct rt_key key = {};
> struct rtable *rt;
>
> if (local) {
> key.dst = iph->saddr;
> key.src = iph->daddr;
> key.tos = RT_TOS(iph->tos);
>
> if (ip_route_output_key(&rt, &key) != 0)
> return NULL;
> } else {
> /* non-local src, find valid iif to satisfy
> * rp-filter when calling ip_route_input. */
> key.dst = iph->daddr;
> if (ip_route_output_key(&rt, &key) != 0)
> return NULL;
>
> odst = skb->dst;
> if (ip_route_input(skb, iph->saddr, iph->daddr,
> RT_TOS(iph->tos), rt->u.dst.dev) != 0) {
> dst_release(&rt->u.dst);
> return NULL;
> }
> dst_release(&rt->u.dst);
> rt = (struct rtable *)skb->dst;
> skb->dst = odst;
> }
>
> if (rt->u.dst.error) {
> dst_release(&rt->u.dst);
> rt = NULL;
> }
>
> return rt;
> }
>
66,69c107
< /* Routing: if not headed for us, route won't like source */
< if (ip_route_output(&rt, oldskb->nh.iph->saddr,
< local ? oldskb->nh.iph->daddr : 0,
< RT_TOS(oldskb->nh.iph->tos), 0) != 0)
---
> if ((rt = route_reverse(oldskb, local)) == NULL)
332a371,373
> case IPT_ICMP_ADMIN_PROHIBITED:
> send_unreach(*pskb, ICMP_PKT_FILTERED);
> break;
As I think problem in new new route_reverse function which called from
tcp_reset() procedure
So any new ideas?
> Subject:
> Netfilter problem with new 2.4.22
> From:
> Diadon <diadon@isfera.ru>
> Date:
> Tue, 16 Sep 2003 14:22:37 +0400
> To:
> linux-kernel@vger.kernel.org
> After installing 2.4.22
> this chain doesn't work
> $IPPROG -A OUTPUT -p tcp --dport 113 -j REJECT --reject-with tcp-reset
> On 2.4.21 all works fine
> In tcpdump on 2.4.21:
> 14:41:41.752557 somehost.auth > somehost1.32825: R 0:0(0) ack
217583467 win 0 (DF)
> In tcpdump on 2.4.22:
> nothing.......
> any ideas?
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Netfilter problem with new 2.4.22
2003-09-18 9:14 Netfilter problem with new 2.4.22 Diadon
@ 2003-09-18 21:40 ` Patrick McHardy
2003-09-21 14:34 ` Harald Welte
2003-09-22 7:28 ` Diadon
2003-09-22 7:44 ` Diadon
2 siblings, 1 reply; 8+ messages in thread
From: Patrick McHardy @ 2003-09-18 21:40 UTC (permalink / raw)
To: Diadon; +Cc: netfilter-devel, netfilter
[-- Attachment #1: Type: text/plain, Size: 968 bytes --]
Diadon wrote:
> > On 2.4.21 all works fine
> > In tcpdump on 2.4.21:
> > 14:41:41.752557 somehost.auth > somehost1.32825: R 0:0(0) ack
> 217583467 win 0 (DF)
>
> > In tcpdump on 2.4.22:
> > nothing.......
Hi Diadon,
the problem seems to be that a dst for local input doesn't carry pmtu
information, the pmtu
is set by rt_set_nexthop which is skipped for local input. The packet is
dropped by send_reset
because of this check:
/* "Never happens" */
if (nskb->len > nskb->dst->pmtu)
goto free_nskb;
;)
I've attached two possible fixes for this. The first one restores
behaviour from before the
routing changes for LOCAL_OUT, the other one removes the check since
obviously
"Never happens" is not true anymore (and it is not an error). Another
possibility would
be something like "if (nskb->dst->pmtu && nskb->len > nskb->dst->pmtu) ..."
Someone from the coreteam should comment which solution is prefered.
Regards,
Patrick
[-- Attachment #2: x.diff --]
[-- Type: text/plain, Size: 1448 bytes --]
===== net/ipv4/netfilter/ipt_REJECT.c 1.13 vs edited =====
--- 1.13/net/ipv4/netfilter/ipt_REJECT.c Fri Jul 25 23:15:41 2003
+++ edited/net/ipv4/netfilter/ipt_REJECT.c Thu Sep 18 23:00:58 2003
@@ -34,16 +34,17 @@
attach(new_skb, nfct);
}
-static inline struct rtable *route_reverse(struct sk_buff *skb, int local)
+static inline struct rtable *route_reverse(struct sk_buff *skb, int hook)
{
struct iphdr *iph = skb->nh.iph;
struct dst_entry *odst;
struct rt_key key = {};
struct rtable *rt;
- if (local) {
+ if (hook != NF_IP_FORWARD) {
key.dst = iph->saddr;
- key.src = iph->daddr;
+ if (hook == NF_IP_LOCAL_IN)
+ key.src = iph->daddr;
key.tos = RT_TOS(iph->tos);
if (ip_route_output_key(&rt, &key) != 0)
@@ -75,7 +76,7 @@
}
/* Send RST reply */
-static void send_reset(struct sk_buff *oldskb, int local)
+static void send_reset(struct sk_buff *oldskb, int hook)
{
struct sk_buff *nskb;
struct tcphdr *otcph, *tcph;
@@ -104,7 +105,7 @@
csum_partial((char *)otcph, otcplen, 0)) != 0)
return;
- if ((rt = route_reverse(oldskb, local)) == NULL)
+ if ((rt = route_reverse(oldskb, hook)) == NULL)
return;
hh_len = (rt->u.dst.dev->hard_header_len + 15)&~15;
@@ -372,7 +373,7 @@
send_unreach(*pskb, ICMP_PKT_FILTERED);
break;
case IPT_TCP_RESET:
- send_reset(*pskb, hooknum == NF_IP_LOCAL_IN);
+ send_reset(*pskb, hooknum);
case IPT_ICMP_ECHOREPLY:
/* Doesn't happen. */
break;
[-- Attachment #3: y.diff --]
[-- Type: text/plain, Size: 501 bytes --]
===== net/ipv4/netfilter/ipt_REJECT.c 1.13 vs edited =====
--- 1.13/net/ipv4/netfilter/ipt_REJECT.c Fri Jul 25 23:15:41 2003
+++ edited/net/ipv4/netfilter/ipt_REJECT.c Thu Sep 18 23:28:49 2003
@@ -186,10 +186,6 @@
nskb->nh.iph->check = ip_fast_csum((unsigned char *)nskb->nh.iph,
nskb->nh.iph->ihl);
- /* "Never happens" */
- if (nskb->len > nskb->dst->pmtu)
- goto free_nskb;
-
connection_attach(nskb, oldskb->nfct);
NF_HOOK(PF_INET, NF_IP_LOCAL_OUT, nskb, NULL, nskb->dst->dev,
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Netfilter problem with new 2.4.22
2003-09-18 21:40 ` Patrick McHardy
@ 2003-09-21 14:34 ` Harald Welte
0 siblings, 0 replies; 8+ messages in thread
From: Harald Welte @ 2003-09-21 14:34 UTC (permalink / raw)
To: Patrick McHardy; +Cc: Diadon, netfilter-devel, netfilter
[-- Attachment #1: Type: text/plain, Size: 1287 bytes --]
On Thu, Sep 18, 2003 at 11:40:02PM +0200, Patrick McHardy wrote:
> Hi Diadon,
> the problem seems to be that a dst for local input doesn't carry pmtu
> information, the pmtu is set by rt_set_nexthop which is skipped for
> local input.
Thanks for debugging the problem, Patrick.
> I've attached two possible fixes for this. The first one restores
> behaviour from before the routing changes for LOCAL_OUT, the other one
> removes the check since obviously "Never happens" is not true anymore
> (and it is not an error). Another possibility would be something like
> "if (nskb->dst->pmtu && nskb->len > nskb->dst->pmtu) ..."
> Someone from the coreteam should comment which solution is prefered.
I'd actually prefer the last solution (together with a comment why
nskb->dst-pmtu can be zero).
I've included the patch into 'submitted' (will send it to davem later)
> Regards,
> Patrick
--
- Harald Welte <laforge@netfilter.org> http://www.netfilter.org/
============================================================================
"Fragmentation is like classful addressing -- an interesting early
architectural error that shows how much experimentation was going
on while IP was being designed." -- Paul Vixie
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Netfilter problem with new 2.4.22
2003-09-18 9:14 Netfilter problem with new 2.4.22 Diadon
2003-09-18 21:40 ` Patrick McHardy
@ 2003-09-22 7:28 ` Diadon
2003-09-22 7:44 ` Diadon
2 siblings, 0 replies; 8+ messages in thread
From: Diadon @ 2003-09-22 7:28 UTC (permalink / raw)
Cc: netfilter-devel, netfilter
That patch is not work, after patching the kernel problem is not
disappeared!
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Netfilter problem with new 2.4.22
2003-09-18 9:14 Netfilter problem with new 2.4.22 Diadon
2003-09-18 21:40 ` Patrick McHardy
2003-09-22 7:28 ` Diadon
@ 2003-09-22 7:44 ` Diadon
2 siblings, 0 replies; 8+ messages in thread
From: Diadon @ 2003-09-22 7:44 UTC (permalink / raw)
To: netfilter; +Cc: netfilter-devel
That patch is not work, after patching the kernel problem is not
disappeared!
^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2003-09-22 7:44 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-09-18 9:14 Netfilter problem with new 2.4.22 Diadon
2003-09-18 21:40 ` Patrick McHardy
2003-09-21 14:34 ` Harald Welte
2003-09-22 7:28 ` Diadon
2003-09-22 7:44 ` Diadon
-- strict thread matches above, loose matches on Subject: below --
2003-09-16 12:11 Diadon
2003-09-16 10:22 Diadon
2003-09-16 13:47 ` Harald Welte
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.