← 返回题目列表

DNS 放大攻击是什么?为什么开放递归解析器会被 DDoS 利用?

中等 第 20 / 27 题 更新于 2026/08/02
DNSDDoS网络安全

简化版

DNS 放大攻击是一种反射型 DDoS。攻击者伪造受害者 IP,向开放 DNS 解析器发送小查询,请求较大的 DNS 响应,解析器把大响应发给受害者,从而放大攻击流量。

DNS 使用 UDP 时没有连接握手,源 IP 容易伪造;如果响应远大于请求,就形成放大效果。

防护包括关闭开放递归、限制响应大小、启用 RRL、过滤伪造源地址、合理配置权威 DNS 和 DDoS 清洗。

详细版

攻击流程:

Attacker spoof victim IP -> Open Resolver
Open Resolver -> large DNS response -> Victim

攻击者发送的请求可能只有几十字节,但响应可能上千字节。

如果同时利用大量开放解析器,受害者会收到巨量 UDP 53 响应。

常被滥用的查询包括 ANY、大 TXT、DNSSEC 相关响应等。

开放递归解析器不应对全网提供递归服务,应限制只服务可信客户端。

完整版教学

1. 先解释反射和放大

反射指攻击流量不是直接从攻击者打到受害者,而是借第三方服务器反射过去。

放大指攻击者发出的小请求触发了更大的响应。

DNS 放大攻击同时具备这两个特点。

攻击者花 1 份流量,诱导 DNS 服务器向受害者发出多份流量。

2. 为什么 DNS 容易被利用

DNS 常用 UDP。

UDP 没有 TCP 三次握手。

如果网络没有做源地址校验,攻击者可以伪造源 IP。

DNS 响应又可能比请求大很多。

例如:

小查询:几十字节
大响应:上千字节

这就形成了放大条件。

3. 开放递归解析器的问题

递归解析器本应服务特定用户群。

例如运营商用户、企业内网、云 VPC。

如果它对公网任何 IP 都提供递归解析,就叫开放递归解析器。

攻击者可以借它查询各种大响应记录。

开放递归越多,攻击者可用的反射器越多。

4. 典型攻击链路

1. 攻击者构造 DNS 查询
2. 源 IP 伪造成受害者
3. 查询发给开放解析器
4. 解析器把响应发给受害者
5. 大量解析器同时响应形成 DDoS

受害者看到的是来自很多 DNS 服务器的 UDP 53 流量。

它不一定能直接看到真正攻击者。

5. 常见放大因素

因素为什么会放大例子
UDP 源 IP 可伪造响应发给受害者反射攻击
响应比请求大流量倍增TXT、DNSSEC
开放递归多反射器多公网 misconfig
EDNS0 大响应UDP payload 变大4096 字节响应
ANY 查询可能返回多类记录现代常被限制

不同服务器配置会影响实际放大倍数。

6. 防护思路

防护要从多方入手。

  • 解析器不要开放递归给全网。
  • 权威 DNS 限制异常查询和大响应。
  • 使用 Response Rate Limiting。
  • 网络运营方做 BCP 38 源地址过滤。
  • 受害侧使用 DDoS 清洗和限速。
  • 监控异常 UDP 53 流量。

其中源地址过滤非常关键,它能减少伪造源 IP 的可能性。

7. 常见误区与追问

  • 误区:只有递归 DNS 会被攻击。 权威 DNS 也可能被打,但开放递归更常被用作反射器。
  • 误区:DNSSEC 一定不安全。 DNSSEC 增大响应体,需要配合合理响应大小和限速策略。
  • 误区:关闭 UDP DNS 就能解决。 DNS 依赖 UDP,工程上要限制滥用而不是简单关闭。
  • 追问:为什么攻击者要伪造源 IP? 这样 DNS 响应会被反射到受害者。
  • 追问:开放递归为什么危险? 它让任何人都能借你的解析器发起反射流量。
  • 追问:RRL 是什么? Response Rate Limiting,用于限制相似 DNS 响应速率。

8. 加强记忆

DNS 放大攻击记成“小请求、假地址、大响应”。

防护重点是不开开放递归、限速大响应、过滤伪造源。