绑定 DNS 速率限制和每秒响应和窗口的值

Red*_*ket 9 domain-name-system bind named-conf

在我的 DNS 服务器的 named.conf 中,我看到

    rate-limit {
            responses-per-second 5;
            window 5;
    };
Run Code Online (Sandbox Code Playgroud)

这实际上意味着什么?它会导致 DNS 客户端问题吗?这配置太紧了吗?

Fal*_*mot 12

您应该阅读BIND 9.9 的管理员参考手册

基本上,responses-per-second是每秒可以发送到一个单一目的地的相同回复的数量。定义很棘手。

单个目的地是一个网络地址,其大小配置在ipv4-prefix-lengthipv6-prefix-length适用。所以,如果ipv4-prefix-length是24,并且都192.0.2.1192.0.2.2正在查询的DNS服务器,它们将共享此配额,只能送他们两人之间如此多的疑问。

相同的答复是对针对特定存在名称或不存在名称的特定 RRtype 的查询的答复。以下查询都是不同的:

IN A example.net.
IN A www.example.net.
IN AAAA example.net.
IN A nonexistent.domain.example.net.
Run Code Online (Sandbox Code Playgroud)

但是,以下所有查询都是相同的(假设nonexistent.domain.example.net.等符合它们的名称):

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.
Run Code Online (Sandbox Code Playgroud)

window使事情变得更加复杂。它是可以存储配额的秒数。乘以windowresponses-per-second给出任何配额可以为正的最大值,或者更基本的术语,突发容量。

举一个包罗万象的例子:

您是example.net.. 想象一下,过去 10 秒内根本没有看到 DNS 流量,问题中的配置适用于全局。以下事件依次发生:

  1. 主机 198.51.100.1 发送 100 个查询IN NS example.net.。25 个将被允许,其余 75 个将被忽略。
  2. 主机 198.51.100.1 发送 100 个查询IN A nonexistent.example.net.。25 个将被允许,其余 75 个将被忽略。
  3. 主机 198.51.100.1 发送 1 个查询IN MX nonexistent-domain.example.net. 它将被忽略,因为已达到不存在域的限制。
  4. 主机 198.51.100.1 发送 1 个查询IN A example.net.。这是允许的。
  5. 主机 192.0.2.1 到 192.0.2.50 各发送一个查询IN NS example.net.。其中 25 个得到回复,其余 25 个被忽略;198.51.100.0/24 的配额不适用于这些主机,但它们共享 192.0.2.0/24 的配额。
  6. 一秒过去
  7. 主机 192.0.2.26 到 192.0.2.50 重复它们的查询IN NS example.net.。其中 5 个得到回复,其余 20 个被忽略,因为配额仅由每秒 5 个查询补充。


小智 7

它限制了单个 DNS 客户端在一秒钟内可以获得的相同响应的数量。该window 5选项允许突发 5*5 响应。

“相同的响应”和“单个 DNS 客户端”在这里有点不明显,请阅读此处了解更多信息:http ://web.archive.org/web/20140209100744/http: //ss.vix.su/~ vjs/rl-arm.html

一般来说,限制速率是一件好事 - 有一天可能会在 DOS 攻击的情况下为您提供帮助。大多数情况下,默认值应该没问题。