ANY类型查询之所以成为DNS放大攻击的首选工具,核心在于它用一次极小的请求就能让服务器回吐一整套域名记录,攻击者只需伪造受害者的IP地址,就能借他人之口把流量灌向目标,这种“以小博大”的特性,让UDP 53端口成了DDoS战场上的高音喇叭。
DNS放大攻击原理是什么:一次查询换来几十倍流量
要理解ANY查询的杀伤力,先得看清放大攻击的两级跳板,整个链条分三步:伪造源地址、发送小请求、接收大响应,攻击者把DNS请求的源IP改成受害者的IP,再丢给一台开放的递归解析器,解析器正常情况下不会怀疑“你是谁”,它会根据请求内容把答案原路返回回到那个被伪造的IP上,也就是受害者。
放大攻击的威力取决于“请求/响应”的字节数比,A记录查询的响应通常只有几百字节,放大倍数有限,而ANY查询会让解析器把该域名下所有类型的资源记录A、AAAA、MX、NS、TXT、CNAME、SOA等全部打包进一个响应包里,请求可能只有60字节左右,响应却能膨胀到4000字节以上,放大倍数普遍在数十倍量级,如果域名配置的记录种类越多,响应包就越肥,攻击效率越高。
业内专家指出,这种攻击之所以屡禁不止,根源在于DNS协议设计时过度信任UDP的无连接特性,UDP不需要握手、不验证来源,天然适合做“借刀杀人”,再加上互联网上仍存在大量配置不当的开放解析器,等于给攻击者免费提供了成千上万台放大器。
ANY查询是怎么变成攻击武器的
ANY类型在协议里叫“所有记录查询”,它的本职功能是让运维人员一次性获取某个域名的全量配置,方便排查问题,但攻击者看中的不是它方便,而是它贪心,它不像A记录那样只回一个IP,而是把整个“家底”都亮出来。
从攻击者的实操视角看,利用ANY查询只需要下面四步:
- 扫描互联网上的开放递归解析器,收集一份“放大器名单”
- 选择一个记录条目丰富的目标域名,比如大型网站、CDN节点域名
- 构造源IP为受害者地址的ANY查询包,通过脚本批量发送到各个解析器
- 解析器将庞大的ANY响应发往受害者,瞬间塞满其带宽
这里有个关键细节:攻击者自己并不需要收到响应,所以查询包里的源IP随便填,受害者的IP填得越准,打击越精准,由于UDP没有握手确认,解析器根本无从分辨这个请求是真是假。
ANY与普通查询的放大效果差距
| 查询类型 | 典型请求大小 | 典型响应大小 | 放大倍数 |
|---|---|---|---|
| A记录 | 约60字节 | 约250字节 | 约4倍 |
| TXT记录 | 约60字节 | 约500字节 | 约8倍 |
| ANY查询 | 约60字节 | 4000字节以上 | 数十倍以上 |
表中数据为行业通用测试基准,实际数值因域名记录数量和EDNS0支持情况浮动,EDNS0协议允许响应包突破512字节上限,让ANY查询的响应可以轻松撑到数千字节。开启EDNS0的解析器,等于默认放开了攻击者的“流量水龙头”。
DNS任一查询类型的安全边界
很多人会问DNS ANY查询是什么意思,简单说:它就是“把全部记录都给我”的请求,问题在于,正常的业务场景下几乎没有终端用户会发ANY查询,这类请求在现网流量中的占比极低,一个解析器如果每秒收到大量ANY请求,基本可以断定是扫描或攻击行为,而不是正常流量波动。
因此行业共识认为,禁用ANY查询不会影响正常用户的上网体验,RFC 8482明确支持服务器对ANY请求返回精简响应(如只回HINFO记录),既保留协议的兼容性,又避免了放大风险,这种“最小化响应”方案,目前已被主流DNS软件广泛采纳。
防御端到端实操:从递归层到权威层
理解了利用方式,防御思路就清晰了:要么让放大器的“喇叭”变小,要么让攻击者找不到放大器,要么让流量在靠近源头处被清洗。
递归解析器侧的加固策略
如果你的DNS服务器本身是开放的递归解析器,优先做三件事:
- 禁掉ANY查询:BIND 9.12以上版本在
options块里加minimal-any yes;,或直接配置disable-any;Unbound在配置文件中设置deny-any: yes,这一步直接砍掉了放大攻击的“弹药包” - 限制递归服务范围:通过ACL只允许内网或指定网段的客户端发起递归查询,拒绝来自公网的任意源请求,绝大多数家庭和企业场景根本不需要给陌生人提供递归服务
- 启用响应速率限制(RRL):对相同源IP或目的IP的DNS响应做限速,比如每秒最多发10个响应,超出即丢弃,这能有效压制单台解析器被利用造成的流量洪峰
权威服务器侧的裁剪方案
权威DNS承载着对外解析的职能,不能随便禁ANY,但可以削减响应的“体型”:
- 删除冗余的TXT记录、历史遗留的陈旧记录,降低单条ANY响应的体积
- 对EDNS0的最大响应大小做限制,比如设置
max-udp-size不超过1232字节,防止响应包被路由器分片放大 - 部署Anycast网络,让全球多个节点同时承接攻击流量,分散单点压力
链路侧的流量清洗手段
当攻击流量已经指向你的业务IP时,需要依赖上游ISP或云服务商的DDoS高防服务,选购时参考“DNS防护哪家好”的评估标准,重点看三方面:清洗能力是否覆盖UDP大流量攻击、是否支持DNS协议层的自定义过滤规则、是否提供实时告警和流量报表,国内主流云厂商的高防产品普遍支持UDP反射攻击的专项清洗,其中针对QUIC和DNS专属防护策略的配置能力差异也较大,建议试用后再接入。
源地址验证技术的前置防护
从长远角度看,真正治本的是全行业部署BCP38(网络入口过滤规范),在ISP接入层丢弃源地址伪造的流量包,但在部署率达到理想状态之前,应用层还有最后一层保险:DNS Cookie机制(RFC 7873),解析器和客户端通过交换Cookie来验证对方是否真实存在,伪造源IP的攻击请求因为没有正确的Cookie会被直接丢弃,相当于给UDP信道加了一把轻量级的锁。
2026年攻击趋势与生态治理展望
随着基础网络设施的完善,纯粹靠“裸奔”的开放解析器已经比以前少,但攻击手法也在同步进化,近年来观察到的新动向包括:
- 利用IPv6扩展头部绕过ACL限制,让过滤规则难以通过IP段简单匹配
- 针对云上托管解析服务的定向打击
,通过高并发ANY请求干扰特定区域的解析响应
- 结合DoT/DoH加密通道的隐蔽扫描,常规流量审计难以发现异常ANY流量
这意味着加固工作不能只停留在解析器配置层面,应对2026年后的攻击形态,需要把视角拉高到整个DNS滥用检测链条:部署实时流量分析、建立异常ANY查询的封禁基线、与清洗服务商保持联动,没有一套“一劳永逸”的完美配置,只有持续跟进补丁和监控告警,才能让放大攻击无隙可乘。
回到最开始的判断:ANY类型查询是DNS放大攻击中最趁手的工具,但它的杀伤力完全取决于网络上还有多少“愿意回答”的开放解析器,关闭不必要的ANY响应、验证请求来源、限制响应速率,这三板斧能让你的DNS基础设施不再成为攻击链条上的放大器,无论协议如何演进,“默认不信任UDP来源”这条原则始终是接入互联网的立身之本。
Q&A
为什么我的域名解析日志里出现大量ANY请求?
这通常是攻击者正在对你的DNS服务器进行侦查或放大测试,目的是确认解析器是否支持大型ANY响应,如果日志显示来自不同IP的ANY请求持续不断,说明你的服务器已被列入放大器的潜在名单,应立即启用RRL限速策略,并检查ACL规则确保只有授权客户端才能发起查询。
禁掉ANY查询会不会影响邮件服务或SSL证书验证?
不会,邮件服务依赖的是MX和TXT记录查询,SSL证书验证依赖CNAME或TXT记录,这些都属于“精确类型查询”,与ANY无关,目前主流解析器在收到ANY请求时返回HINFO记录或直接返回“NOTIMP”,业务系统无需做任何适配,只有极少数老旧网络管理脚本会依赖ANY获取全量记录,这类脚本应修改为分别查询A、AAAA、MX记录。
大响应包一定会造成放大攻击吗?
不一定,放大攻击需要同时满足“响应大于请求”和“源地址可伪造”两个前提,如果客户端和解析器之间启用了DNS Cookie验证,伪造源IP的请求会被识别并丢弃;如果响应包被限速,即使单个包再大,也无法形成持续流量洪峰,放大风险取决于响应体量、验证机制和限速策略三者共同作用的结果。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/637408.html





