為每秒響應和視窗綁定 DNS 速率限制和值
在我的 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-length
或ipv6-prefix-length
適用時。因此,如果ipv4-prefix-length
是 24,並且兩者192.0.2.1
都192.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
使事情更複雜一點。它是可以儲存配額的秒數。乘以window
並responses-per-second
給出任何配額可以為正的最大值,或者更基本的術語,突發容量。舉一個包羅萬象的例子:
您是
example.net.
. 想像一下,在過去 10 秒內根本沒有看到任何 DNS 流量,並且問題中的配置適用於全域。以下事件依次發生:
- 主機 198.51.100.1 發送 100 次查詢
IN NS example.net.
. 將允許 25 個,其餘 75 個將被忽略。- 主機 198.51.100.1 發送 100 次查詢
IN A nonexistent.example.net.
. 將允許 25 個,其餘 75 個將被忽略。- 主機 198.51.100.1 發送 1 個查詢,
IN MX nonexistent-domain.example.net.
因為已達到不存在域的限制,它將被忽略。- 主機 198.51.100.1 發送 1 個查詢
IN A example.net.
。這是允許的。- 主機 192.0.2.1 到 192.0.2.50 分別發送一個針對
IN NS example.net.
. 其中 25 個得到回复,其餘 25 個被忽略;198.51.100.0/24 的配額不適用於這些主機,但它們共享 192.0.2.0/24 的配額。- 一秒過去
- 主機 192.0.2.26 到 192.0.2.50 重複他們的查詢
IN NS example.net.
。其中 5 個得到回复,其餘 20 個被忽略,因為配額每秒僅補充 5 個查詢。