从 BGP 看 DDoS 清洗:高防线路为什么会突然改道
解释 DDoS scrubbing 在 BGP 层面的常见表现,以及 VPS 用户如何区分清洗、绕路和普通拥塞。
高防不是一条固定线路
很多高防 VPS 或高防 IP 的卖点是“被打不死”,但实际工作方式通常不是简单加大带宽,而是在攻击发生时把流量牵引到清洗中心,再把干净流量回注到源站或业务节点。
这个过程会改变 BGP 宣告、AS Path、下一跳和地理路径。所以攻击期间延迟升高、路径变长,不一定是线路坏了,也可能是清洗策略生效。
BGP 层面的常见信号
高防清洗可能出现这些现象:
- 前缀由原始 AS 改为清洗服务商 AS 宣告。
- 出现更细的 /24 宣告,用于流量牵引。
- AS Path 中突然插入清洗网络。
- 多个地区的 traceroute 同时改变入口。
- 攻击结束后路径回到原来的 transit 或 peering。
如果商家使用 GRE/IPIP 回源,你可能只看到边缘清洗节点,源站真实路径会被隐藏。
国外高防讨论里的共同经验
在国外主机论坛和网络安全社区里,高防服务经常被分成两类:一种是一直通过清洗网络 Anycast 接入,另一种是攻击时才牵引。前者路径更稳定,但延迟可能长期高一些;后者平时体验更接近普通线路,但攻击触发时路径变化明显。
APNIC 关于从 BGP 识别 DDoS scrubbing 的研究说明,清洗不是一个黑盒。只要观察前缀、origin AS 和 AS Path 变化,就能推断部分清洗行为。对 VPS 用户来说,这不是为了绕过防护,而是为了理解业务为什么在被攻击时变慢。
Cloudflare Radar、bgp.tools、RIPEstat 等工具能帮助确认某个前缀是否突然由清洗服务商宣告。如果商家声称“无感清洗”,但每次被打都出现 10 分钟以上路由收敛和大范围不可达,说明它的牵引流程并不平滑。
清洗质量看什么
不要只看“防御多少 Gbps”。更实际的指标是:
- 牵引触发时间。
- 误封比例。
- 清洗后 TCP 握手成功率。
- 回源链路带宽。
- 是否支持常用业务端口。
- 是否有攻击报告。
- 攻击结束后恢复原路径的速度。
对 Web 业务来说,HTTP 5xx、TLS 握手失败和首包时间比 ICMP 更重要。对游戏或语音业务来说,UDP 抖动和包序更重要。
购买高防 VPS 前的工单问题
可以直接问商家:
- 是否为 Always-on scrubbing。
- 清洗中心在哪些地区。
- 回源是否独享或共享。
- UDP 是否完整支持。
- 攻击时是否会更换 IP 或黑洞。
- 是否提供攻击日志或 NetFlow 摘要。
回答越模糊,越不适合生产业务。
如何区分清洗和普通绕路
普通绕路往往只影响部分方向,且没有明显的前缀宣告变化。清洗触发则更像一个策略切换:多个观察点同时看到路径变化,目标 IP 仍可达,但 RTT 和 TCP 建连时间上升。
建议记录:
- 攻击前后的 BGP origin。
- 前缀长度是否变化。
- 是否出现清洗服务商 ASN。
- ICMP、TCP 443、业务端口表现是否一致。
- 回源链路是否成为瓶颈。
VPS 购买前该问什么
- 防护是本地清洗还是远端清洗。
- 清洗后回源带宽多少。
- 是否按攻击流量、干净流量或端口数计费。
- 是否支持自定义 ACL。
- 被牵引时是否会影响同机房其他方向。
对建站用户来说,高防 IP 的核心不是峰值 Tbps,而是误封率、回源质量和攻击结束后的恢复速度。
测试建议
不要主动制造 DDoS 测试。合法的方式是做小流量健康检查和路径观测:
mtr -rwzc 100 <高防IP>
curl -w "@curl-format.txt" -o NUL -s https://example.com/
nexttrace <高防IP>
同时用 bgp.tools、RIPEstat 或 RouteViews 观察前缀宣告变化。
参考来源
- APNIC Blog: Detecting and characterizing DDoS scrubbing from global BGP routing
- Cloudflare Radar: DDoS and Internet traffic insights
- bgp.tools: BGP lookup and routing visibility