From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Florian Westphal <fw@strlen.de>
Cc: Alexander Ahring Oder Aring <aahringo@redhat.com>,
netdev@vger.kernel.org, linux-man@vger.kernel.org,
David Teigland <teigland@redhat.com>
Subject: Re: [PATCH resend] netlink.7: note not reliable if NETLINK_NO_ENOBUFS
Date: Sat, 6 Mar 2021 01:10:15 +0100 [thread overview]
Message-ID: <20210306001015.GA1638@salvia> (raw)
In-Reply-To: <20210305232159.GB10808@breakpoint.cc>
On Sat, Mar 06, 2021 at 12:21:59AM +0100, Florian Westphal wrote:
> Pablo Neira Ayuso <pablo@netfilter.org> wrote:
> > > If I understand correctly, the connection tracking netlink interface
> > > is an exception here because it has its own handling of dealing with
> > > congestion ("more reliable"?) so you need to disable the "default
> > > congestion control"?
> >
> > In conntrack, you have to combine NETLINK_NO_ENOBUFS with
> > NETLINK_BROADCAST_ERROR, then it's the kernel turns on the "more
> > reliable" event delivery.
>
> The "more reliable" event delivery guarantees that the kernel will
> deliver at least the DESTROY notification (connection close).
>
> If the userspace program is stuck, kernel has to hold on the expired
> entries. Eventually conntrack stops accepting new connections because
> the table is full.
>
> So this feature can't be recommended as a best-practice for conntrack
> either.
There are two use-cases for this:
- If you run conntrackd and you really want to sure you backup firewall
does not get out of sync.
- If you run ulogd2 and you want to make sure your connection log is
complete (no events got lost).
In both cases, this might comes at the cost of dropping packets if the
table gets full. So it's placing the pressure on the conntrack side.
With the right policy you could restrict the number of connection per
second.
I agree though that combination of NETLINK_NO_ENOBUFS and
NETLINK_BROADCAST_ERROR only makes sense for very specific use-cases.
prev parent reply other threads:[~2021-03-06 0:11 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-04 20:57 [PATCH resend] netlink.7: note not reliable if NETLINK_NO_ENOBUFS Alexander Aring
2021-03-05 3:04 ` Pablo Neira Ayuso
2021-03-05 19:43 ` Alexander Ahring Oder Aring
2021-03-05 20:36 ` Pablo Neira Ayuso
2021-03-05 23:21 ` Florian Westphal
2021-03-06 0:10 ` Pablo Neira Ayuso [this message]
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=20210306001015.GA1638@salvia \
--to=pablo@netfilter.org \
--cc=aahringo@redhat.com \
--cc=fw@strlen.de \
--cc=linux-man@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=teigland@redhat.com \
/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).