public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Kevin Buhr <buhr@telus.net>
To: Maciej Soltysiak <solt@dns.toxicfilms.tv>
Cc: netfilter-devel@lists.samba.org, linux-kernel@vger.kernel.org
Subject: Re: BUG somewhere in NAT mechanism [was: my linux box does not learn from redirects]
Date: 12 Apr 2003 22:00:22 -0700	[thread overview]
Message-ID: <8765pj6lg9.fsf@saurus.asaurus.invalid> (raw)
In-Reply-To: <Pine.LNX.4.51.0304121406180.24111@dns.toxicfilms.tv>

Maciej Soltysiak <solt@dns.toxicfilms.tv> writes:
> 
> In a nutshell:
> - iptable_nat, _may_ cause the box to ignore icmp redirects (maybe other
>   things too)

It looks like the relevant bit of code is:

ip_nat_core.c:881 (in 2.4.20)
        /* Redirects on non-null nats must be dropped, else they'll
           start talking to each other without our translation, and be
           confused... --RR */
        if (hdr->type == ICMP_REDIRECT) {
                /* Don't care about races here. */
                if (info->initialized
                    != ((1 << IP_NAT_MANIP_SRC) | (1 << IP_NAT_MANIP_DST))
                    || info->num_manips != 0)
                        return NF_DROP;
        }

This looks wrong.  It's true that you don't want to translate the
redirect and pass it on after NATting, the way you would with a "host
unreachable" packet.  But if it was originally directed at you, you
don't just want to drop it, you want to act on it yourself.

In particular, an ICMP redirect originally directed to one of your own
interfaces whose internal packet belongs to a source NATted connection
should have the inner packet (which looks like it came from you)
reverse source NATted (so it looks like it came from the machine you
NATted it for) but the outer packet left untouched so it can be
delivered locally to the kernel.

Any thoughts?

-- 
Kevin <buhr@telus.net>

  reply	other threads:[~2003-04-13  4:48 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-04-12 13:40 BUG somewhere in NAT mechanism [was: my linux box does not learn from redirects] Maciej Soltysiak
2003-04-13  5:00 ` Kevin Buhr [this message]
2003-04-13 12:25   ` Patrick McHardy
2003-04-13 13:41     ` 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=8765pj6lg9.fsf@saurus.asaurus.invalid \
    --to=buhr@telus.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netfilter-devel@lists.samba.org \
    --cc=solt@dns.toxicfilms.tv \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox