“业务无感知”在DDoS防护中并不是指攻击不发生,而是指防护切换、流量清洗、策略下发和回源调整的整个过程对在线用户请求不产生可感知的中断、延迟抖动或功能异常。多数企业部署DDoS防护后最大的问题不是防不住,而是防护生效的同时把正常业务也“防掉线”了。要实现业务无感知,核心在于解决三个环节:检测与切换的时效、清洗链路的透明性、以及回源与策略回退的平滑性。
先说第一个关键点,旁路检测加秒级路由切换。传统串联部署防护设备虽然直观,但设备本身成为链路单点,一旦性能不足或策略误判,正常业务直接受损。更合适的做法是在核心交换或边界路由上做NetFlow、sFlow或BGP Flow Spec采样,检测到流量模型偏离基线后,通过BGP向全网通告更细粒度的引流路由,把目标IP的流量牵引到清洗中心。这个过程中业务服务器完全不感知,连接不中断,因为切换发生在网络层,而不是应用层。要实现秒级切换,建议在边界路由器上预置BGP会话和路由策略,清洗中心提前宣告备用下一跳,检测系统触发后只改变community值或local-pref,避免临时建立会话带来的收敛延迟。
第二个关键点是清洗链路必须保持源地址透明和会话保持。很多业务对源IP有依赖,比如登录风控、地域限制、CDN回源白名单等。如果清洗设备默认做SNAT,业务服务器看到的全是清洗设备地址,风控策略会误伤正常用户。因此清洗设备需要支持透明代理模式或二层回注模式,保证回源流量的源IP是真实用户IP。对于TCP长连接业务,清洗策略不能只做简单的包过滤,需要基于会话状态做合法性校验,例如TCP三次握手完成后才放行,UDP则结合应用层特征和速率基线判断。清洗策略的粒度要细到“先验证再放行”,而不是“先丢弃再观察”,这样正常用户请求在清洗期间依然可以完成交互。
第三个关键点是回源链路的冗余和灰度。清洗后的干净流量回注到业务网络时,如果回注链路只有一条,一旦该链路拥塞或故障,业务就会中断。建议清洗中心与业务网络之间建立至少两条物理路径,采用ECMP或策略路由分担回源流量。更精细的做法是灰度回源,即清洗中心先对部分源IP或部分业务域名回注,观察业务指标正常后再逐步扩大回注比例。灰度期间未回注的流量继续走清洗链路,避免一次性切回导致源站瞬时压力过大。
策略下发环节同样影响业务感知。很多DDoS防护平台在检测到攻击后会自动下发黑洞路由或限速策略,如果策略范围过大,会把正常用户一并限制。要实现无感知,策略下发需要分层:第一层是全局速率基线,只对超过基线的流量做标记;第二层是针对特定协议特征的过滤,例如DNS反射放大攻击的源端口53、NTP反射的源端口123等;第三层才是针对特定源IP或目标IP的精细化限速。每一层策略下发前都应经过模拟匹配,确认不会命中核心业务网段或关键接口。策略生效时间应控制在检测触发后的10秒以内,同时保留人工确认机制,对核心业务可设置自动防护只做告警不做阻断。
在架构设计上,推荐采用“检测平面、清洗平面、管理平面”分离的部署方式。检测平面由边界路由器采样和旁路分析集群组成,不参与业务转发;清洗平面由清洗中心和回注链路组成,只在攻击时被动态引入;管理平面负责策略编排和日志审计。三个平面之间通过带外管理网络通信,避免攻击流量冲击管理通道。这种分离架构的好处是,日常业务流量完全不经过清洗设备,只有攻击发生时才被牵引,从物理上保证了无感知的基础。
对于多机房或混合云场景,业务无感知的难度更高。跨机房引流需要依赖Anycast或智能DNS,但DNS切换本身有TTL缓存,无法做到秒级。更有效的做法是在各机房入口都部署检测点,攻击发生时只在本机房内部做清洗和回注,不跨机房调度。如果攻击规模超过单机房清洗能力,再通过BGP Anycast将目标IP的流量牵引到云清洗中心,此时需要确保云清洗中心与源站之间有专线或加密隧道回源,避免回源流量经过公共网络时被二次攻击。
回源链路的加密和完整性校验也容易被忽视。清洗中心回注的流量如果被中间设备篡改或注入,业务服务器可能收到异常数据包导致连接重置。建议在清洗中心与业务网络之间建立IPsec或WireGuard隧道,回源流量封装在隧道内传输。隧道两端配置双向转发检测(BFD),一旦隧道中断,业务网络侧自动切换回本地直连链路,清洗中心侧自动停止牵引,避免流量黑洞。
实际部署中,很多团队把精力放在攻击检测和清洗算法上,却忽略了防护切换时的会话表同步问题。对于有状态防火墙或负载均衡器,当流量从正常链路切换到清洗链路时,原有会话表项可能失效,导致已建立的连接被中断。解决方法是让清洗设备支持会话状态同步协议,或者在切换前将边界设备的会话表快照同步到清洗设备。对于HTTP类无状态业务,这个问题影响较小;但对于WebSocket、视频流、游戏长连接等业务,会话表同步是业务无感知的关键前提。
监控和验证体系同样重要。业务无感知不是部署完就结束,而是需要持续验证。建议在业务网络中部署主动探测节点,模拟真实用户请求,在防护切换前后持续记录TCP握手时间、TLS建连时间、首字节响应时间等指标。每次防护事件结束后,自动生成切换耗时、清洗延迟、回源丢包率等报告,用于评估无感知效果。如果切换耗时超过业务容忍阈值,需要调整BGP收敛参数或检测阈值,而不是等到下次攻击再被动应对。
最后要强调的是,业务无感知DDoS防护不是单一产品能解决的问题,而是检测、网络、清洗、回源、监控多个环节协同的结果。很多企业购买了高防IP或云清洗服务,但业务仍然在攻击时出现波动,原因往往不在清洗能力,而在切换机制和回源链路设计不合理。把注意力从“清洗多少Gbps”转移到“切换多少毫秒、回源丢多少包、策略误伤多少请求”,才能真正实现业务无感知。
