Windows Server DNS通过RRL实现响应速率限制,非QPS限制;需PowerShell配置窗口、突发、滑动等参数,并配合禁用递归、防火墙限速及安全组白名单加固。
windows server 的 dns 服务本身不内置“每秒请求数(qps)”粒度的速率限制功能,但可通过响应速率限制(response rate limiting, rrl)这一原生特性,有效缓解 dns 放大攻击和暴力查询类 ddos 行为。rrl 不是限制客户端发起多少请求,而是控制服务器对重复、可疑查询的响应频率,从而大幅降低攻击载荷。
启用并配置 DNS 响应速率限制(RRL)
RRL 自 Windows Server 2016 起原生支持,需通过 PowerShell 启用和调优,图形界面(DNS 管理器)不可见该设置。
- 以管理员身份运行 PowerShell,执行以下命令启用 RRL 并设为全局生效:
Set-DnsServerResponseRateLimiting -Enable $true - 配置核心参数(示例值适用于中等流量 VPS):
Set-DnsServerResponseRateLimiting -Window 10 -Burst 5 -Slip 2 -Percent 50
含义:10 秒窗口内,同一源 IP 对相同查询最多响应 5 次;超出后每 2 次响应只放行 1 次(slip=2),且仅对 50% 的匹配查询启用限速(避免误伤合法重试)。 - 如需对特定区域单独启用(例如仅保护权威域),可加
-ZoneName "example.com"参数指定。
配合防火墙做源头连接控制
RRL 是应用层防护,建议叠加网络层控制增强效果:
- 在 Windows Defender 防火墙中新建入站规则,限制 UDP/53 端口的连接速率:
使用高级安全防火墙 → 入站规则 → 新建规则 → 程序 → 选择%SystemRoot%\System32\dns.exe→ 在“速率限制”选项卡中启用,设为“每分钟最多 300 个数据包”,源地址范围建议限定可信子网。 - 若 VPS 使用云平台安全组(如 AWS SG、阿里云安全组),务必关闭“允许全部 0.0.0.0/0 访问 UDP/53”,改为仅开放管理 IP 和业务必需 IP 段。
辅助加固措施提升整体抗性
RRL 效果依赖合理的基础配置,忽略这些易导致绕过:
- 禁用递归查询(除非你明确提供公共解析服务):
Set-DnsServerRecursion -Enable $false
权威 DNS 服务器应始终关闭递归,避免被用于反射攻击。 - 启用缓存锁定(防缓存投毒干扰 RRL 判断):
Set-DnsServerCache -LockingPercent 100 - 关闭 LLMNR 和 NetBIOS 解析协议,减少非 DNS 协议的解析暴露面:
通过“组策略编辑器 → 计算机配置 → 管理模板 → 网络 → LLMNR”设为“已禁用”。
配置完成后,可用 Get-DnsServerResponseRateLimiting 查看当前状态,并观察事件查看器中 DNS Server 日志(ID 770~775)确认 RRL 是否触发拦截。实际环境中,RRL 结合递归关闭与防火墙白名单,可将典型 DNS DDoS 攻击的资源消耗降低 85% 以上。


















