iptables 规则中的 --limit 1/s 和 --limit-burst 到底是什么意思?

iptables 规则中的 --limit 1/s 和 --limit-burst 到底是什么意思?

我正在使用 CentOS 5.x,试图理解我的一台服务器上的以下 iptables 规则:

-A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT

在另一台服务器上我有:

-A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 3 -j ACCEPT

我理解这两条规则都旨在允许(和限制)传入的 ping 请求,但选项是什么limit-burst?这些允许是基于每个主机的吗?还是它们适用于任何/所有传入的 ICMP 连接?

答案1

数学得到了充分解释在 netfilter 文档中,但可以合理地说,该limit-burst参数指定了在每秒 1 个“启动”之前允许通过的匹配数limit。这两条规则都仅适用于 ICMP 回显请求数据包(传入的 PING 请求)。这些不是每个主机的限制,适用于规则匹配的任何内容(在本例中是所有 ICMP 回显请求)。

答案2

--limit:指定令牌重新填充到桶中的速率。4/hour例如,每小时 4 个令牌(每 15 分钟 1 个令牌)。

--limit-burst:指定桶中可填充的最大令牌数量。(这也是桶初始时的令牌数量)。

答案3

我读了两个答案,但实际情况man itables-extensions让我深有体会:

限制

此模块使用令牌桶过滤器以有限的速率进行匹配。使用此扩展的规则将一直匹配,直到达到此限制。例如,它可以与 LOG 目标结合使用,以提供有限的日志记录。

xt_limit 不支持否定 - 在这种情况下,您必须使用-m hashlimit ! --hashlimitrate 同时省略 --hashlimit-mode。

  • --limit rate[/second|/minute|/hour|/day]-- 最大平均匹配率:指定为数字,带有可选的/second/minute/hour/day后缀;默认值为 3/小时。

  • --limit-burst number-- 匹配的数据包的最大初始数量:每当未达到上面指定的限制时,此数字就会重新充电一,直到达到此数字;默认值为 5。

相关内容