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

Mik*_*e B 11 redhat iptables centos icmp

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

-A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

在另一台服务器上,我有:

-A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 3 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)

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

Eva*_*son 13

数学在 netfilter docs 中有完整的解释,但可以合理地说,该limit-burst参数指定在limit每秒 1 个“开始”之前允许通过的匹配数。这两条规则都仅适用于 ICMP 回显请求数据包(传入 PING 请求)。这些不是每个主机的限制,适用于规则匹配的任何内容(在这种情况下,将是所有 ICMP 回显请求)。

  • 这是一个令牌桶。存储桶开始时带有 3 个令牌,并且会为收到的每个 ICMP 回显请求删除一个令牌。对于每 1 秒没有 ICMP 回显请求,将向存储桶添加 1 个令牌,直到存储桶再次达到 3 个令牌,直到收到更多 ICMP 回显请求为止。 (15认同)

小智 5

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

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