IPTABLES 中的限制和限制突发

IPTABLES 中的限制和限制突发

由于某种原因,我无法理解 IPTABLES 中的限制和限制突发的概念。有人能帮我吗?

谢谢你!

答案1

限制模块设置一个计时器,控制附加的 iptables 规则匹配数据包的频率。

limit-burst 参数设置允许匹配的数据包数量。limit time 则设置 limit-burst 恢复的频率。

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

因此,为了使情况更复杂...limit-burst 参数的作用类似于数据包计数器。对于每个匹配的数据包,计数都会减少一,并且计时器启动(如果计时器已经在运行,则重新启动)。规则仍然匹配任何进来的东西。当计时器结束时,计数加一。如果计数器达到 0,规则停止匹配,直到计时器完成并且计数再次回到 1,并继续由计时器计数,直到回到您设置的突发。

因此,将突发设置为 1 意味着您实际上在每个计时器间隔内匹配 1 个数据包,并且只匹配 1 个数据包,而将其设置得更高则意味着您在严格接合之前在该计时器上创建一个缓冲区。

举个粗略的例子,假设您在 ACCEPT 规则上突发 10 次,计时器为 1/秒。假设您在一秒钟内收到 20 个匹配的数据包。前十个匹配并被接受,其余的则不匹配。十秒钟后,突发计数器恢复到最大值 10。现在有 5 个匹配(在一秒钟内),它们都匹配没有问题,计数器现在为 5。2 秒钟过去了,没有匹配,计数器为 7。又有 20 个匹配进来;前 7 个匹配并被接受,其余的则不匹配。

大部分内容转述自这个文件,在记录限制模块的部分中有更多示例。

答案2

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

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

相关内容