我想配置 DNS 服务器以使用响应速率限制 (RRL) 来缓解 DNS DDoS 攻击。无论如何,我必须将其配置为使用 RRL,并将“slip”参数设置为 2。
我进行了一些搜索,但没有找到关于此参数的任何明确信息。我发现的唯一信息是它代表“有多少 UDP 请求可以用截断响应来回答。“ 然后 ”设置为“2”意味着其他所有查询都会得到一个简短的答案“。 来源: https://conference.apnic.net/data/37/apricot-2014-rrl_1393309768.pdf(幻灯片 26)
这是什么意思?如果 DNS 服务器收到 3 个 UDP 请求,最后一个请求将被截断?但是会持续多久?
答案1
该slip
参数会影响速率受限响应的处理方式。例如,8 个响应将受到速率限制。默认情况下slip=2
,这些响应中的 4 个(每隔一个)将是截断响应,而 4 个将不会发送。如果是slip=0
,则根本不会发送任何响应。如果是slip=1
,则会发送 8 个截断响应。如果是slip=4
,则会发送 2 个截断响应。
基本上,如果某些响应本来会被 RRL 阻止,则 slip 可让这些响应通过(“溜过”)。
更多官方信息BIND9.10 臂第 6.2.16.21 节“响应率限制”:
许多使用 DNS 的攻击涉及带有伪造源地址的 UDP 请求。速率限制可防止使用 BIND 9 向网络发送带有伪造源地址的请求的响应,但可能会让第三方阻止对合法请求的响应。有一种机制可以回答来自地址被伪造的客户端的一些合法请求。将 slip 设置为 2(默认值)会导致每隔一个 UDP 请求都以较小的截断 (TC=1) 响应进行回答。“漏掉”响应的大小小、频率低,因此放大率低,因此对反射 DoS 攻击没有吸引力。slip 必须介于 0 和 10 之间。值为 0 表示不“漏掉”:由于速率限制,不会发送截断响应,所有响应都会被丢弃。值为 1 表示每个响应都漏掉;值为 2 到 10 表示每第 n 个响应都漏掉。某些错误响应(包括 REFUSED 和 SERVFAIL)无法用截断响应替换,而是以漏掉速率泄露。