[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b148c973-c4e9-e4ea-6045-2111f00eaa79@gmail.com>
Date: Mon, 25 Oct 2021 08:25:16 -0600
From: David Ahern <dsahern@...il.com>
To: Florian Westphal <fw@...len.de>, netdev@...r.kernel.org
Cc: netfilter-devel@...r.kernel.org, lschlesinger@...venets.com,
dsahern@...nel.org, pablo@...filter.org, crosser@...rage.org
Subject: Re: [PATCH v2 net-next 2/2] vrf: run conntrack only in context of
lower/physdev for locally generated packets
On 10/25/21 8:14 AM, Florian Westphal wrote:
> The VRF driver invokes netfilter for output+postrouting hooks so that users
> can create rules that check for 'oif $vrf' rather than lower device name.
>
> This is a problem when NAT rules are configured.
>
> To avoid any conntrack involvement in round 1, tag skbs as 'untracked'
> to prevent conntrack from picking them up.
>
> This gets cleared before the packet gets handed to the ip stack so
> conntrack will be active on the second iteration.
>
> One remaining issue is that a rule like
>
> output ... oif $vrfname notrack
>
> won't propagate to the second round because we can't tell
> 'notrack set via ruleset' and 'notrack set by vrf driver' apart.
> However, this isn't a regression: the 'notrack' removal happens
> instead of unconditional nf_reset_ct().
> I'd also like to avoid leaking more vrf specific conditionals into the
> netfilter infra.
>
> For ingress, conntrack has already been done before the packet makes it
> to the vrf driver, with this patch egress does connection tracking with
> lower/physical device as well.
>
> Signed-off-by: Florian Westphal <fw@...len.de>
> ---
> drivers/net/vrf.c | 28 ++++++++++++++++++++++++----
> 1 file changed, 24 insertions(+), 4 deletions(-)
>
Acked-by: David Ahern <dsahern@...nel.org>
Powered by blists - more mailing lists