IPTABLES中的限制和限制突发

H4X*_*H4X 5 iptables

出于某种原因,我无法理解 IPTABLES 中限制和限制突发的概念。任何人都可以在这里帮助我!

谢谢!

小智 9

limit 模块设置一个计时器,以允许附加的 iptables 规则匹配数据包的频率。

limit-burst 参数设置允许匹配的数据包数量。限制时间设置限制突发恢复自身的频率。

归根结底,让我们首先假设突发位不存在(或设置为 1,相当于同一件事)。指定的实际限制参数只是为规则和限制突发设置计时器。因此,将其设置为 5/秒将使计时器为 1/5 秒,将其设置为 4/小时将使计时器为 15 分钟。计时器运行时,没有数据包与规则匹配(因此,如果它是 ACCEPT 目标规则,则在 1/5 秒或 15 分钟内不会接受任何数据包,具体取决于)。

所以更复杂的是…… limit-burst 参数就像一个数据包计数器。对于每个匹配的数据包,计数减一,并且计时器启动(或者如果它已经运行则重新启动)。规则仍然匹配进来的任何东西。当计时器结束时,计数增加一。如果计数器达到 0,则规则停止匹配,直到计时器结束并且计数再次回到 1,并继续由计时器向上计数,直到它回到您设置的突发。

因此,将突发设置为 1 意味着您在每个计时器间隔内非常匹配 1 个且仅匹配 1 个数据包,将其设置得更高意味着您正在该计时器上创建缓冲区,然后才严格执行。

作为一个粗略的例子,假设你有一个 10 的突发和一个 1/秒的计时器,在 ACCEPT 规则上。假设您在一秒钟内得到 20 个匹配的数据包。前十场比赛被接受,其余不接受。十秒后,突发计数器恢复到最大值 10。现在 5 个匹配进来(在一秒钟内),它们都匹配没问题,计数器现在是 5。2 秒没有匹配,将计数器放在7.另外20场比赛进入;前 7 个将匹配并接受,其余的则不匹配。

主要从本文档中进行释义,在记录限制模块的部分中有更多示例。


小智 6

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

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