You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
97 lines
3.6 KiB
97 lines
3.6 KiB
The rate estimator can match on estimated rates as collected by the RATEEST
|
|
target. It supports matching on absolute bps/pps values, comparing two rate
|
|
estimators and matching on the difference between two rate estimators.
|
|
.PP
|
|
For a better understanding of the available options, these are all possible
|
|
combinations:
|
|
.\" * Absolute:
|
|
.IP \(bu 4
|
|
\fBrateest\fP \fIoperator\fP \fBrateest-bps\fP
|
|
.IP \(bu 4
|
|
\fBrateest\fP \fIoperator\fP \fBrateest-pps\fP
|
|
.\" * Absolute + Delta:
|
|
.IP \(bu 4
|
|
(\fBrateest\fP minus \fBrateest-bps1\fP) \fIoperator\fP \fBrateest-bps2\fP
|
|
.IP \(bu 4
|
|
(\fBrateest\fP minus \fBrateest-pps1\fP) \fIoperator\fP \fBrateest-pps2\fP
|
|
.\" * Relative:
|
|
.IP \(bu 4
|
|
\fBrateest1\fP \fIoperator\fP \fBrateest2\fP \fBrateest-bps\fP(without rate!)
|
|
.IP \(bu 4
|
|
\fBrateest1\fP \fIoperator\fP \fBrateest2\fP \fBrateest-pps\fP(without rate!)
|
|
.\" * Relative + Delta:
|
|
.IP \(bu 4
|
|
(\fBrateest1\fP minus \fBrateest-bps1\fP) \fIoperator\fP
|
|
(\fBrateest2\fP minus \fBrateest-bps2\fP)
|
|
.IP \(bu 4
|
|
(\fBrateest1\fP minus \fBrateest-pps1\fP) \fIoperator\fP
|
|
(\fBrateest2\fP minus \fBrateest-pps2\fP)
|
|
.TP
|
|
\fB\-\-rateest\-delta\fP
|
|
For each estimator (either absolute or relative mode), calculate the difference
|
|
between the estimator-determined flow rate and the static value chosen with the
|
|
BPS/PPS options. If the flow rate is higher than the specified BPS/PPS, 0 will
|
|
be used instead of a negative value. In other words, "max(0, rateest#_rate -
|
|
rateest#_bps)" is used.
|
|
.TP
|
|
[\fB!\fP] \fB\-\-rateest\-lt\fP
|
|
Match if rate is less than given rate/estimator.
|
|
.TP
|
|
[\fB!\fP] \fB\-\-rateest\-gt\fP
|
|
Match if rate is greater than given rate/estimator.
|
|
.TP
|
|
[\fB!\fP] \fB\-\-rateest\-eq\fP
|
|
Match if rate is equal to given rate/estimator.
|
|
.PP
|
|
In the so-called "absolute mode", only one rate estimator is used and compared
|
|
against a static value, while in "relative mode", two rate estimators are
|
|
compared against another.
|
|
.TP
|
|
\fB\-\-rateest\fP \fIname\fP
|
|
Name of the one rate estimator for absolute mode.
|
|
.TP
|
|
\fB\-\-rateest1\fP \fIname\fP
|
|
.TP
|
|
\fB\-\-rateest2\fP \fIname\fP
|
|
The names of the two rate estimators for relative mode.
|
|
.TP
|
|
\fB\-\-rateest\-bps\fP [\fIvalue\fP]
|
|
.TP
|
|
\fB\-\-rateest\-pps\fP [\fIvalue\fP]
|
|
.TP
|
|
\fB\-\-rateest\-bps1\fP [\fIvalue\fP]
|
|
.TP
|
|
\fB\-\-rateest\-bps2\fP [\fIvalue\fP]
|
|
.TP
|
|
\fB\-\-rateest\-pps1\fP [\fIvalue\fP]
|
|
.TP
|
|
\fB\-\-rateest\-pps2\fP [\fIvalue\fP]
|
|
Compare the estimator(s) by bytes or packets per second, and compare against
|
|
the chosen value. See the above bullet list for which option is to be used in
|
|
which case. A unit suffix may be used - available ones are: bit, [kmgt]bit,
|
|
[KMGT]ibit, Bps, [KMGT]Bps, [KMGT]iBps.
|
|
.PP
|
|
Example: This is what can be used to route outgoing data connections from an
|
|
FTP server over two lines based on the available bandwidth at the time the data
|
|
connection was started:
|
|
.PP
|
|
# Estimate outgoing rates
|
|
.PP
|
|
iptables \-t mangle \-A POSTROUTING \-o eth0 \-j RATEEST \-\-rateest\-name eth0
|
|
\-\-rateest\-interval 250ms \-\-rateest\-ewma 0.5s
|
|
.PP
|
|
iptables \-t mangle \-A POSTROUTING \-o ppp0 \-j RATEEST \-\-rateest\-name ppp0
|
|
\-\-rateest\-interval 250ms \-\-rateest\-ewma 0.5s
|
|
.PP
|
|
# Mark based on available bandwidth
|
|
.PP
|
|
iptables \-t mangle \-A balance \-m conntrack \-\-ctstate NEW \-m helper \-\-helper ftp
|
|
\-m rateest \-\-rateest\-delta \-\-rateest1 eth0 \-\-rateest\-bps1 2.5mbit \-\-rateest\-gt
|
|
\-\-rateest2 ppp0 \-\-rateest\-bps2 2mbit \-j CONNMARK \-\-set\-mark 1
|
|
.PP
|
|
iptables \-t mangle \-A balance \-m conntrack \-\-ctstate NEW \-m helper \-\-helper ftp
|
|
\-m rateest \-\-rateest\-delta \-\-rateest1 ppp0 \-\-rateest\-bps1 2mbit \-\-rateest\-gt
|
|
\-\-rateest2 eth0 \-\-rateest\-bps2 2.5mbit \-j CONNMARK \-\-set\-mark 2
|
|
.PP
|
|
iptables \-t mangle \-A balance \-j CONNMARK \-\-restore\-mark
|