Answers:
限制模块设置一个计时器,指示允许附加的iptables规则与数据包匹配的频率。
limit-burst参数设置允许匹配的数据包数。限制时间设置限制突发恢复自身的频率。
为了简化它,我们首先假设突发位不存在(或设置为1,相同的事情)。指定的实际限制参数只为规则和限制突发设置计时器。因此将其设置为5 /秒将使计时器为1/5秒,并将其设置为4 /小时将使计时器为15分钟。在计时器运行时,没有数据包会匹配规则(因此,如果它是一个ACCEPT目标规则,则不会在1/5秒或15分钟内接受数据包,具体取决于)。
所以要复杂化... limit-burst参数就像一个包计数器。对于匹配的每个数据包,计数减1,计时器启动(如果已经运行,则重新启动)。该规则仍然匹配任何进入的内容。当计时器结束时,计数加1。如果计数器达到0,则规则停止匹配,直到计时器结束并且计数再次返回到1,并且计时器继续计数,直到它返回到您设置的爆发。
因此,将突发设置为1意味着您非常精确地匹配1并且每个定时器间隔只有1个数据包,并且将其设置得更高意味着您在严格使用之前在该计时器上创建缓冲区。
作为一个粗略的例子,假设您在ACCEPT规则上有一个10的突发和1 /秒的计时器。假设您在一秒钟内收到20个匹配的数据包。前十场比赛被接受,其余的没有。十秒后,爆发计数器回到最大值10.现在5次匹配进入(一秒内),它们都没有问题,计数器现在是5. 2秒没有匹配,将计数器放在7.另有20场比赛进场; 前7个匹配并接受,其余不匹配。
主要从该文档中解释,该文档在记录限制模块的部分中有进一步的示例。
--limit
:指定令牌重新填充到存储桶中的速率。4/hour
意味着每小时4个代币(每15分钟1个代币)。
--limit-burst
:指定可以在存储桶中填充的最大令牌数量。(这也是桶开始使用的令牌数量)。