From: Pablo Neira Ayuso <pablo@netfilter.org>
To: Devin Bayer <dev@doubly.so>
Cc: duncan_roe@optusnet.com.au,
"netminder (Eric Peterson)" <netminder@gmail.com>,
netfilter@vger.kernel.org
Subject: Re: meter directive
Date: Mon, 28 Sep 2020 18:08:09 +0200 [thread overview]
Message-ID: <20200928160809.GB2605@salvia> (raw)
In-Reply-To: <dc380b6d-4085-13c7-9687-405825585823@doubly.so>
On Mon, Sep 28, 2020 at 03:00:59PM +0200, Devin Bayer wrote:
> On 28/09/2020 14.32, Duncan Roe wrote:
> >
> > It used to be the case with meters that you could have limit or counter but not
> > both.
> >
> > I don't know if that is still the case with dynamic sets. If it is, you will
> > have to have 2 sets: 1 with limits and 1 with counters.
> >
> > (counter with limit is ambiguous: do you want to count packets received or
> > packets accepted? Both are do-able with 2 sets).
> >
> > Please post your rules that add set members if you have further questions.
>
> I think it's clear enough in regards to sets in the manpage - I will submit
> a patch for that.
>
> However the situation on the wiki is still unclear. It does show counters
> with limits, but for maps. However, it doesn't show how to create the maps
> or add to them.
> I try something like this:
>
> map flood2 {
> type ipv4_addr : counter;
> size 100000;
> flags dynamic, timeout;
> timeout 1m;
> }
>
> chain prerouting {
> tcp flags syn tcp dport 80 \
> add @flood2 { ip saddr limit rate over 3/minute } \
> log prefix "MAP "
> }
>
> But no luck:
>
>
> /etc/nftables.conf:49:9-14: Error: Could not process rule: Operation not
> supported
Something like this:
table ip x {
set flood2 {
type ipv4_addr
size 100000
flags dynamic,timeout
timeout 1m
elements = { 150.214.188.80 expires 54s752ms limit rate 1/minute burst 1 packets }
}
chain output {
type filter hook output priority filter; policy drop;
ct state new tcp dport 80 add @flood2 { ip daddr limit rate 1/minute burst 1 packets } log prefix "test: " accept
ct state established,related accept
}
}
Only one stateful expression is supported a this stage, either you
have ratelimit or you have counters per elements.
next prev parent reply other threads:[~2020-09-28 16:08 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-04 8:38 meter directive Devin Bayer
2020-09-27 12:27 ` Devin Bayer
[not found] ` <20200928021034.GB20886@dimstar.local.net>
2020-09-28 10:01 ` Devin Bayer
2020-09-28 12:32 ` Duncan Roe
2020-09-28 13:00 ` Devin Bayer
2020-09-28 16:08 ` Pablo Neira Ayuso [this message]
2020-09-28 16:12 ` Devin Bayer
2020-09-28 16:21 ` Pablo Neira Ayuso
2020-09-28 16:26 ` Devin Bayer
2020-09-28 16:40 ` Pablo Neira Ayuso
-- strict thread matches above, loose matches on Subject: below --
2020-09-28 20:17 Eric Peterson
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=20200928160809.GB2605@salvia \
--to=pablo@netfilter.org \
--cc=dev@doubly.so \
--cc=duncan_roe@optusnet.com.au \
--cc=netfilter@vger.kernel.org \
--cc=netminder@gmail.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 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.