netfilter-devel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Patrick McHardy <kaber@trash.net>
To: Gao feng <gaofeng@cn.fujitsu.com>
Cc: netfilter-devel@vger.kernel.org
Subject: Re: nat drop the icmp redirect packet
Date: Wed, 30 Nov 2011 19:53:37 +0100	[thread overview]
Message-ID: <4ED67BB1.8020808@trash.net> (raw)
In-Reply-To: <4ED2E00B.3000006@cn.fujitsu.com>

On 11/28/2011 02:12 AM, Gao feng wrote:
> Hi
>
> In func nf_nat_icmp_reply_translation,the icmp packet will be droped when the nat is not finished.
> pc A(whose gateway is C) send a icmp request to pc B.
> When gw C receive this packet,it may return a icmp redirect packet to A.
> BUT now,the icmp request packet has not go to POSTROUTING,So the nat is not finished.
> Finally,the icmp redirect packet will be droped no matter the conn has nat or not.
>
> of course,the icmp redirect packet will be correct handled when nat is finished.
>
> Can somebody will give me some suggestion,
> or should I just add a sysctl to let the user decide drop or receive this icmp redirect packet when nat is not finished?

It doesn't matter whether the ICMP packet has gone through
POST_ROUTING, the conntrack associated with the packet is
that of the original packet causing the ICMP REDIRECT (or
any other kind of ICMP error).

Basically, we don't want hosts talking directly to each other
*if* NAT has been set up since that would obviously break
things. In the case you describe (only destination NAT setup
completed, but null mapping) instead of dropping the packet,
we could set up a null source mapping and let the packet
through under the assumption that the hosts will then start
communicating directly.

This will break if the host receiving the ICMP REDIRECT ignores
it though. What is the specific problem you're trying to solve?

  parent reply	other threads:[~2011-11-30 18:53 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-28  1:12 nat drop the icmp redirect packet Gao feng
2011-11-28  1:23 ` Gao feng
2011-11-30  4:00   ` Gao feng
2011-11-30 18:53 ` Patrick McHardy [this message]
2011-12-01  0:59   ` Gao feng
2011-12-01 10:20     ` Patrick McHardy
2011-12-02  5:32       ` Gao feng
2011-12-02 12:58         ` Patrick McHardy
2011-12-05  1:18           ` Gao feng

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=4ED67BB1.8020808@trash.net \
    --to=kaber@trash.net \
    --cc=gaofeng@cn.fujitsu.com \
    --cc=netfilter-devel@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).