Domain-Name-System

為每秒響應和視窗綁定 DNS 速率限制和值

  • November 15, 2020

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

   rate-limit {
           responses-per-second 5;
           window 5;
   };

這實際上意味著什麼?它會導致 DNS 客戶端問題嗎?這配置太緊了嗎?

它限制了單個 DNS 客戶端在一秒鐘內可以獲得的相同響應的數量。該window 5選項允許突發 5*5 響應。

“相同的響應”和“單個 DNS 客戶端”在這裡有點不明顯,請閱讀以下內容以獲取更多資訊:http ://web.archive.org/web/20140209100744/http://ss.vix.su/~ vjs/rl-arm.html

一般來說,限制速率是一件好事 - 可能有一天會在 DOS 攻擊的情況下幫助你。在大多數情況下,預設值應該沒問題。

您應該閱讀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.

但是,以下所有查詢都是相同的(假設nonexistent.domain.example.net.等名副其實):

IN A nonexistent.domain.example.net.
IN A nonexistent.domain2.example.net.
IN SOA other.nonexistent.domain.example.net.

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 個查詢。

引用自:https://serverfault.com/questions/490245