Blame bootstrap_ver/extensions/libxt_hashlimit.man

Packit Service dd8e2b
\fBhashlimit\fP uses hash buckets to express a rate limiting match (like the
Packit Service dd8e2b
\fBlimit\fP match) for a group of connections using a \fBsingle\fP iptables
Packit Service dd8e2b
rule. Grouping can be done per-hostgroup (source and/or destination address)
Packit Service dd8e2b
and/or per-port. It gives you the ability to express "\fIN\fP packets per time
Packit Service dd8e2b
quantum per group" or "\fIN\fP bytes per seconds" (see below for some examples).
Packit Service dd8e2b
.PP
Packit Service dd8e2b
A hash limit option (\fB\-\-hashlimit\-upto\fP, \fB\-\-hashlimit\-above\fP) and
Packit Service dd8e2b
\fB\-\-hashlimit\-name\fP are required.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-upto\fP \fIamount\fP[\fB/second\fP|\fB/minute\fP|\fB/hour\fP|\fB/day\fP]
Packit Service dd8e2b
Match if the rate is below or equal to \fIamount\fP/quantum. It is specified either as
Packit Service dd8e2b
a number, with an optional time quantum suffix (the default is 3/hour), or as
Packit Service dd8e2b
\fIamount\fPb/second (number of bytes per second).
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-above\fP \fIamount\fP[\fB/second\fP|\fB/minute\fP|\fB/hour\fP|\fB/day\fP]
Packit Service dd8e2b
Match if the rate is above \fIamount\fP/quantum.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-burst\fP \fIamount\fP
Packit Service dd8e2b
Maximum initial number of packets to match: this number gets recharged by one
Packit Service dd8e2b
every time the limit specified above is not reached, up to this number; the
Packit Service dd8e2b
default is 5.  When byte-based rate matching is requested, this option specifies
Packit Service dd8e2b
the amount of bytes that can exceed the given rate.  This option should be used
Packit Service dd8e2b
with caution -- if the entry expires, the burst value is reset too.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-mode\fP {\fBsrcip\fP|\fBsrcport\fP|\fBdstip\fP|\fBdstport\fP}\fB,\fP...
Packit Service dd8e2b
A comma-separated list of objects to take into consideration. If no
Packit Service dd8e2b
\-\-hashlimit\-mode option is given, hashlimit acts like limit, but at the
Packit Service dd8e2b
expensive of doing the hash housekeeping.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-srcmask\fP \fIprefix\fP
Packit Service dd8e2b
When \-\-hashlimit\-mode srcip is used, all source addresses encountered will be
Packit Service dd8e2b
grouped according to the given prefix length and the so-created subnet will be
Packit Service dd8e2b
subject to hashlimit. \fIprefix\fP must be between (inclusive) 0 and 32. Note
Packit Service dd8e2b
that \-\-hashlimit\-srcmask 0 is basically doing the same thing as not specifying
Packit Service dd8e2b
srcip for \-\-hashlimit\-mode, but is technically more expensive.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-dstmask\fP \fIprefix\fP
Packit Service dd8e2b
Like \-\-hashlimit\-srcmask, but for destination addresses.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-name\fP \fIfoo\fP
Packit Service dd8e2b
The name for the /proc/net/ipt_hashlimit/foo entry.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-htable\-size\fP \fIbuckets\fP
Packit Service dd8e2b
The number of buckets of the hash table
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-htable\-max\fP \fIentries\fP
Packit Service dd8e2b
Maximum entries in the hash.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-htable\-expire\fP \fImsec\fP
Packit Service dd8e2b
After how many milliseconds do hash entries expire.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-htable\-gcinterval\fP \fImsec\fP
Packit Service dd8e2b
How many milliseconds between garbage collection intervals.
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-rate\-match\fP
Packit Service dd8e2b
Classify the flow instead of rate-limiting it. This acts like a
Packit Service dd8e2b
true/false match on whether the rate is above/below a certain number
Packit Service dd8e2b
.TP
Packit Service dd8e2b
\fB\-\-hashlimit\-rate\-interval\fP \fIsec\fP
Packit Service dd8e2b
Can be used with \-\-hashlimit\-rate\-match to specify the interval
Packit Service dd8e2b
at which the rate should be sampled
Packit Service dd8e2b
.PP
Packit Service dd8e2b
Examples:
Packit Service dd8e2b
.TP
Packit Service dd8e2b
matching on source host
Packit Service dd8e2b
"1000 packets per second for every host in 192.168.0.0/16" =>
Packit Service dd8e2b
\-s 192.168.0.0/16 \-\-hashlimit\-mode srcip \-\-hashlimit\-upto 1000/sec
Packit Service dd8e2b
.TP
Packit Service dd8e2b
matching on source port
Packit Service dd8e2b
"100 packets per second for every service of 192.168.1.1" =>
Packit Service dd8e2b
\-s 192.168.1.1 \-\-hashlimit\-mode srcport \-\-hashlimit\-upto 100/sec
Packit Service dd8e2b
.TP
Packit Service dd8e2b
matching on subnet
Packit Service dd8e2b
"10000 packets per minute for every /28 subnet (groups of 8 addresses)
Packit Service dd8e2b
in 10.0.0.0/8" =>
Packit Service dd8e2b
\-s 10.0.0.0/8 \-\-hashlimit\-mask 28 \-\-hashlimit\-upto 10000/min
Packit Service dd8e2b
.TP
Packit Service dd8e2b
matching bytes per second
Packit Service dd8e2b
"flows exceeding 512kbyte/s" =>
Packit Service dd8e2b
\-\-hashlimit-mode srcip,dstip,srcport,dstport \-\-hashlimit\-above 512kb/s
Packit Service dd8e2b
.TP
Packit Service dd8e2b
matching bytes per second
Packit Service dd8e2b
"hosts that exceed 512kbyte/s, but permit up to 1Megabytes without matching"
Packit Service dd8e2b
\-\-hashlimit-mode dstip \-\-hashlimit\-above 512kb/s \-\-hashlimit-burst 1mb