BIND DNS 速率限制:qps-scale 理解

BIND DNS 速率限制:qps-scale 理解

我对 qps-scale 以及在 BIND 中使用速率限制选项时如何使用它有几个问题。

引用:http://www.zytrax.com/books/dns/ch7/hkpng.html#rate-limithttps://ftp.isc.org/isc/bind9/9.10.8-P1/doc/arm/Bv9ARM.pdf第 119 页

定义:允许的范围是 1 到非常大的数字(实际上是 32 位无符号值,这仍然是一个很大的数字)。默认不应用 qps-scaling。速率限制功能计算来自所有来源(包括 TCP 查询)的 DNS 每秒查询负载的近似值。然后应用 qps-scale(如果已定义),这可能会导致用户提供的限制减少,例如高负载情况下的每秒响应数。因此,假设用户定义的每秒响应数为 10;和 qps-scale 为 200;那么如果 DNS 服务器以每秒 500 次的速率接收查询(来自所有来源,包括 TCP),则应用以下算法(qps-scale/DNS 查询到达率)* 每秒响应数 = 有效速率限制,代入实际值可得出(200/500)* 10 = 4,这意味着在定义的负载条件下,任何 1 秒内对任何特定客户端的第 5 次及后续相同响应都将被丢弃(或触发任何定义的 slip 参数操作)。因此,如果使用 qps-scale 值,应将其设置为服务器所需的最大 DNS 事务(查询响应)速率。 http://www.zytrax.com/books/dns/ch7/hkpng.html#rate-limit

我的问题:根据我对上述定义的理解,“DNS 查询到达率”是每秒发送到 DNS 服务器的当前查询数,该数是动态变化的,而不是 DNS 服务器能够处理的每秒查询容量。我的理解正确吗?

DNS服务器是如何计算“DNS查询到达率”的?

“DNS查询到达率”多久计算一次?

如果定义了 qps-scale,而不是 0,那么 qps-scale 公式是否始终可用?例如:qps-scale 500;每秒响应数 50;“DNS 查询到达率”200 (500 / 200) * 50 = 125 有效每秒响应数,还是仅当“DNS 查询到达率”近似或超过 qps-scale 值时才使用 qps-scale 公式?

谢谢 Brent D

答案1

首先,我要指出的是,您引用和询问的“定义”是由第三方编写的。
我认为一些混乱来自那里的一些奇怪的措辞,我建议关注手册的相关章节因为它至少涵盖了你所询问的一些内容。

  1. qps-scale设置用于确定回复速率限制功能,限制了相同回应
    据我所知,缩放仅作为 RRL 处理的一部分进行重新计算,并且仅在知道响应后才进行。

  2. 查询次数/秒数

  3. 每秒一次window(作为 RRL 处理的一部分,因此仅在实际有查询需要回答时才会发生)

  4. “当每秒查询速率的近似值超过 qps-scale 值时...”

相关内容