第219篇:Anti-DDoS 防护机制
关键词:Anti-DDoS、流量清洗、黑洞路由、Anycast、BGP Flowspec、弹性防护、攻击检测、响应机制、TCA
一、引言
在第218篇中,我们学习了 SYN Flood 和 ICMP Flood 这两种经典 DoS 攻击的原理和防护方法。面对日益增长的 DDoS 攻击威胁,仅靠单机防护设备已无法满足安全防护需求。现代 DDoS 攻击规模可达 Tbps 级别,攻击手段也从简单的流量洪泛演进为应用层攻击、反射放大攻击等复杂形式。
Anti-DDoS(抗分布式拒绝服务)是一套从检测、防护到清洗的完整防护体系,涵盖网络边缘、云端和本地多层次防御能力。理解 Anti-DDoS 的防护机制和部署方案,是企业网络安全规划的重要组成部分。
二、核心概念
2.1 DDoS 攻击分类
| 攻击层级 | 攻击类型 | 典型手段 | 攻击规模 |
|---|---|---|---|
| 网络层(L3/L4) | 流量洪泛 | SYN Flood、UDP Flood、ICMP Flood | Gbps-Tbps |
| 网络层(L3/L4) | 反射放大 | DNS 放大、NTP 放大、SSDP 放大 | Tbps |
| 应用层(L7) | HTTP Flood | CC 攻击、Slowloris、HTTP GET/POST Flood | RPS |
| 应用层(L7) | 协议滥用 | DNS Query Flood、SSL/TLS 握手攻击 | RPS |
| 混合型 | 组合攻击 | 同时发起多层级攻击 | 多维 |
2.2 Anti-DDoS 防护架构

2.3 防护层次
| 防护层次 | 位置 | 防护能力 | 适用场景 |
|---|---|---|---|
| 本地防护 | 企业防火墙/路由器 | 中小规模攻击(< 1Gbps) | SYN/ICMP/UDP Flood |
| 边缘防护 | ISP 网络边缘 | 中等规模攻击(1-10Gbps) | 流量牵引清洗 |
| 云端防护 | 云端清洗中心 | 大规模攻击(10Gbps-Tbps) | DDoS 大流量攻击 |
| CDN 防护 | CDN 节点 | 应用层攻击 | HTTP Flood、CC 攻击 |
三、技术细节
3.1 流量牵引与清洗流程

3.2 黑洞路由(Blackhole Routing)
黑洞路由是应对超大规模 DDoS 攻击的最后一道防线。当攻击流量超过网络承载能力时,运营商将目标 IP 的路由指向一个"黑洞"(Null0 接口),所有到达该 IP 的流量被直接丢弃。
| 维度 | 说明 |
|---|---|
| 触发条件 | 攻击流量超过预设阈值(如出口带宽的 80%) |
| 执行方式 | BGP 通告指向 Null0 的路由 |
| 影响范围 | 目标 IP 完全不可达(包括合法流量) |
| 持续时间 | 通常 30 分钟至数小时 |
| 适用场景 | 攻击流量远超清洗能力时的紧急措施 |
3.3 BGP Flowspec
BGP Flowspec(RFC 8955)是一种通过 BGP 协议分发流量过滤规则的技术。它允许在网络的任何 BGP -speaking 设备上同步应用流量过滤策略,实现分布式的 DDoS 防护。
| 特性 | 说明 |
|---|---|
| 规则分发 | 通过 BGP 更新报文分发过滤规则 |
| 匹配条件 | 源/目的 IP、协议、端口、DSCP、ICMP 类型等 |
| 执行动作 | 丢弃、限速、重定向、修改 DSCP |
| 部署位置 | 支持 BGP Flowspec 的 PE/CE 路由器 |
| 响应速度 | 秒级规则下发 |
3.4 Anycast 防护原理
Anycast(任播)防护利用多个地理位置分散的 Anycast 节点共享同一个 IP 地址。当 DDoS 攻击到达时,攻击流量被 BGP 路由到最近的 Anycast 节点,攻击流量被分散到多个节点进行吸收和清洗。
| 优势 | 说明 |
|---|---|
| 流量分散 | 攻击流量被分散到多个节点,单点压力降低 |
| 就近清洗 | 用户流量就近接入,减少延迟 |
| 冗余性 | 单节点故障不影响整体服务 |
| 扩展性 | 通过增加节点线性扩展防护能力 |
3.5 DDoS 检测指标
| 指标 | 正常基线 | 攻击特征 |
|---|---|---|
| 总带宽利用率 | < 60% | 接近或达到 100% |
| 新连接速率 | 平稳 | 突然激增 |
| 协议分布 | 正常比例 | 单一协议占比异常 |
| 源 IP 分布 | 分散 | 大量唯一源 IP 或极少数源 IP |
| 包大小分布 | 正常范围 | 异常小包或大包 |
| SYN/ACK 比例 | 接近 1:1 | SYN 远大于 ACK |
| DNS 查询量 | 正常水平 | 突增数倍至数十倍 |
四、实战配置/案例分析
4.1 华为 USG 防火墙:Anti-DDoS 配置
# ========== Anti-DDoS综合防护配置 ==========
system-view
sysname HQ-Firewall
# 1. 启用Anti-DDoS全局功能
anti-attack enable
# 2. 配置SYN Flood防护
anti-attack
ip-frequency
syn
enable
reference-time 5
# 学习模式:先学习正常流量基线
learning-time 300
# 阈值:每秒SYN报文数
threshold 500
# 超过阈值的动作
action black-list
# 黑名单持续时间(秒)
black-list-time 600
quit
quit
quit
# 3. 配置ICMP Flood防护
anti-attack
icmp
echo-flood
enable
reference-time 5
threshold 200
action black-list
black-list-time 300
quit
quit
quit
# 4. 配置UDP Flood防护
anti-attack
udp-flood
enable
reference-time 5
threshold 1000
action deny
# 配置UDP端口保护(仅允许特定端口)
protected-port 53
protected-port 123
protected-port 161
quit
quit
# 5. 配置HTTP Flood防护(应用层)
anti-attack
http-flood
enable
# 限制单个IP的HTTP请求速率
request-rate 50
reference-time 5
# GET请求频率限制
get-rate 30
# POST请求频率限制
post-rate 10
action black-list
black-list-time 600
quit
quit
# 6. 配置连接数限制
anti-attack
connection
# 全局最大连接数
max-connection 100000
# 单个IP最大连接数
ip-max-connection 1000
# 新建连接速率限制
new-connection-rate 500
reference-time 5
quit
quit
# 7. 配置安全策略联动
security-policy
rule name Anti-DDoS-Protection
source-zone untrust
destination-zone dmz
action permit
service any
attack-defense enable
anti-ddos profile Default
quit
quit
# 8. 配置攻击日志
info-center source anti-attack
log level informational
info enable
quit
4.2 配置黑洞路由联动
# ========== 黑洞路由联动配置 ==========
# 当攻击流量超过阈值时自动配置黑洞路由
anti-attack
blackhole
enable
# 触发黑洞路由的流量阈值(Mbps)
threshold 800
# 黑洞路由持续时间(秒)
duration 1800
# 黑洞路由前发送告警
alarm-before-blackhole enable
alarm-time 60
quit
quit
# 配置黑洞路由告警通知
trap-channel 1
destination 10.100.1.100
trap-type anti-ddos blackhole
4.3 故障排查案例:DNS 放大攻击导致服务中断
故障现象:企业 DNS 服务器(10.100.1.53)对外提供服务,某日起大量用户反馈网站无法访问。监控显示企业出口带宽利用率达到 95%,但正常业务流量并未增加。
排查步骤:
- 分析出口流量特征
display interface GigabitEthernet 1/0/0
显示出口接口入方向流量达到 950Mbps(带宽 1Gbps),远超正常水平(约 50Mbps)。
- 分析流量协议分布
display anti-attack statistics
发现 UDP 53 端口(DNS)的入方向流量占比达到 85%,且大量 DNS 响应报文的源 IP 为公网各种 DNS 服务器。
- 检查 DNS 查询日志
display dns-filter log | begin "query"
发现大量来自不同源 IP 的 DNS 查询,查询大小通常为 40 字节,而响应大小为 3000-4000 字节,放大倍数超过 50 倍。
-
根因分析 这是一次典型的 DNS 放大攻击。攻击者伪造企业的 DNS 服务器 IP(10.100.1.53)作为源地址,向公开的 DNS 递归服务器发送大量查询。公开 DNS 服务器将放大后的响应发送到企业网络,导致出口带宽被耗尽。
-
解决方案
# 立即措施:限制UDP 53入方向流量
security-policy
rule name Limit-DNS-Inbound
source-zone untrust
destination-zone dmz
destination-port eq 53
protocol udp
action permit
attack-defense
udp-flood enable
threshold 100
reference-time 5
quit
quit
quit
# 长期措施:入站流量过滤(Ingress Filtering)
# 在企业边界路由器上配置uRPF
interface GigabitEthernet 1/0/0
ip verify reverse-path
quit
# 配置BCP38源地址验证
acl 2000
rule 5 permit source 10.100.0.0 0.0.255.255
rule 100 deny
quit
interface GigabitEthernet 1/0/0
packet-filter 2000 inbound
quit
# 联系ISP在入口处部署源地址验证
部署入站流量过滤和 UDP Flood 防护后,DNS 放大攻击的流量在企业网络入口处即被丢弃,服务在 15 分钟内恢复正常。同时联系了 ISP 在骨干网入口部署 BCP38 源地址验证,从网络层面根除伪造源 IP 的攻击流量。
五、总结
| 知识点 | 要点 |
|---|---|
| DDoS 分类 | 网络层(L3/L4)洪泛、反射放大、应用层(L7)攻击 |
| 防护层次 | 本地防护、边缘防护、云端清洗、CDN 防护 |
| 流量清洗 | 通过 BGP 牵引攻击流量到清洗中心进行分离 |
| 黑洞路由 | 最后一道防线,丢弃所有到达目标 IP 的流量 |
| BGP Flowspec | 通过 BGP 分发流量过滤规则,实现分布式防护 |
| Anycast | 多节点共享 IP,分散和吸收攻击流量 |
| DNS 放大攻击 | 利用公开 DNS 服务器放大攻击流量,需入站过滤 |
| 综合防护 | 多层防护 + 实时检测 + 自动响应 + 人工干预 |
思考
- DNS 放大攻击利用的是公开 DNS 递归服务器的响应放大效应。从 DNS 运营商的角度,有哪些技术手段可以防止其服务器被利用进行放大攻击?
- 黑洞路由是应对超大规模 DDoS 攻击的有效手段,但它会将所有流量(包括合法流量)丢弃。如何在启用黑洞路由的同时保障关键业务的可用性?
- Anycast 防护通过将攻击流量分散到多个节点来缓解 DDoS 攻击。如果攻击者集中攻击某一个 Anycast 节点(如地理上最近的节点),Anycast 防护是否仍然有效?
下篇预告:第220篇:全局白名单与黑名单策略