ISC BIND提供什么速率限制选项?

这是ISC BIND域名服务器软件中限速的规范性问题 。

最近我听说过BIND的速率限制function。 特别是DNS RRL似乎越来越普遍。

我有点困惑。 有些文档似乎认为这些function不应该与recursionDNS服务器一起使用,但是其他文档非常具体地涉及recursionDNS基础结构。 谁是对的?

虽然我非常希望国际学习中心能够为经验水平低于“专家”的用户更好地logging这些function,那就是一厢情愿的想法。 从9.11开始,在BIND中有两种不同的速率限制实现scheme,它们的目标是解决两个完全不同的问题。

DNS RRL

速率限制的第一种forms是DNS响应速率限制 ,通常称为DNS RRL。 你可以在这里阅读更多关于规范。 它由多个权威的域名服务器守护程序实现,并不是特定于ISC BIND。

DNS RRL旨在保护权威的DNS服务器,但BIND不会阻止您在recursion服务器上激活此function。 许多用户在BIND文档中遇到了相关的选项,并假设这些选项是用于recursionDNS服务器的。 不是这种情况。 不要在recursion服务器上启用它。

如果您正在运行提供权威数据recursion的服务器,则不应该这样做。 通过运行该configuration,您已经接受了附带的其他问题。 我们无法帮助你。

FETCHLIMIT

BIND的fetchlimit代码的ISC知识库文章标题为BIND 9.9.8和9.10.3中的recursion客户端速率限制 ,这使得事情混淆不清。 这与DNS RRL无关。

与DNS RRL不同,fetchlimit代码旨在解决导致recursion服务器参与攻击权威服务器的DNS攻击策略。 特别是,这些选项旨在减lessrecursion服务器对个人权威DNS服务器IP和/或单个DNS域的同步查询数量。 这使得您的服务器在Psuedo Random Subdomain攻击(针对其他攻击者)中使用时不那么有吸引力,而且还有助于限制您在使用这种攻击时对自己的DNS服务器的影响。 (短暂端口耗尽等)


放弃

虽然这个问答提供的目的是澄清ISC BIND提供的速率限制代码中经常混淆的区别, 但这些都不是滥用recursionDNS服务器的全面解决scheme。 只有后者才能用于recursionDNS服务器,即使这样,它也被devise用来解决经常困扰高容量recursionDNS环境的运营商的特定forms的攻击。

如果您的recursionDNS环境被用来攻击他人, 除非您已经实施了所有其他的最佳实践, 否则 BIND的速率限制function是一个红色的鲱鱼。 (不要运行一个开放的parsing器,避免一般的recursionDNS服务器上的互联网接口,在到达recursion服务器之前丢弃来自未知networking的stream量等)。速率限制是一种增加的价值,除了其他滥用减less战略。 这不是他们的替代品。