在我的 DNS 服务器的 named.conf 中,我看到
rate-limit {
responses-per-second 5;
window 5;
};
这到底是什么意思?它会导致 DNS 客户端问题吗?这是配置太紧了吗?
在我的 DNS 服务器的 named.conf 中,我看到
rate-limit {
responses-per-second 5;
window 5;
};
这到底是什么意思?它会导致 DNS 客户端问题吗?这是配置太紧了吗?
您应该阅读BIND 9.9 的管理员参考手册。
基本上,
responses-per-second
是每秒可以发送到一个单一目的地的相同回复的数量。定义很棘手。单个目的地是网络地址块,其大小在中配置
ipv4-prefix-length
或ipv6-prefix-length
适用。因此,如果ipv4-prefix-length
是 24,并且两者192.0.2.1
都192.0.2.2
在查询 DNS 服务器,它们将共享此配额并且只能在它们两者之间发送这么多查询。相同的回复是对特定 RRtype 的特定存在名称或不存在名称的查询的回复。以下查询都是不同的:
但是,以下所有查询都是相同的(假设
nonexistent.domain.example.net.
etc. 名副其实):window
让事情更复杂一点。它是可以存储配额的秒数。乘以window
和responses-per-second
给出任何配额可以为正的最大值,或者用更基本的术语来说,即突发容量。举一个包罗万象的例子:
您是 的非递归权威名称服务器
example.net.
。想象一下,在过去 10 秒内根本没有看到任何 DNS 流量,并且问题中的配置适用于全局。以下事件依次发生:IN NS example.net.
。允许 25 个,其余 75 个将被忽略。IN A nonexistent.example.net.
。允许 25 个,其余 75 个将被忽略。IN MX nonexistent-domain.example.net.
由于已达到不存在域的限制,它将被忽略。IN A example.net.
。这是允许的。IN NS example.net.
。其中 25 人得到回复,其余 25 人被忽略;198.51.100.0/24 的配额不适用于这些主机,但它们共享 192.0.2.0/24 的配额。IN NS example.net.
。其中 5 个得到回复,其余 20 个被忽略,因为每秒仅通过 5 个查询补充配额。它限制了单个 DNS 客户端在一秒钟内可以获得的相同响应的数量。该
window 5
选项允许突发 5*5 响应。“相同的响应”和“单一 DNS 客户端”在这里有点不明显,请阅读以下内容了解更多信息:http ://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs/rl-arm.html。
一般来说,限制速率是一件好事 - 可能会在某天遇到 DOS 攻击时帮助您。对于大多数情况,默认值应该没问题。
IPtables 也可以工作。如果发现攻击,则将流量完全排除在服务之外。
我不认为限制速率是个好主意,问问你自己:你是否也对网络服务器响应进行速率限制?为什么您认为 DNS 响应不如网络服务器响应重要?
即使您限制速率,5 个请求/秒听起来也很低。
我在遭受放大攻击的可操作 bind 9 服务器上有一个非常接近的配置(没有 Window 5 值)。我已经完成了 DNS 数据包捕获,并且服务器正确地回答了合法查询并且没有响应攻击查询。这是在大约 30 分钟的时间内捕获了 5000 个数据包。从我的角度来看,这些价值观已经完全挫败了攻击。