防御DDoS攻击时,带宽监控不是简单地看流量图有没有“冒尖”,而是要在一堆噪声里快速分辨出攻击的规模、类型和当前防护策略是否有效。很多运维人员习惯盯着总带宽使用率,一旦看到跑满就认为攻击很大,实际上攻击量级的判断必须结合正常基线、包速率、协议分布和出口方向综合评估。只盯带宽峰值,容易把正常的业务高峰误判为攻击,也容易漏掉那些带宽不大但足以打死应用的慢速攻击。
判断攻击量级的第一步,是建立一条可信的正常带宽基线。没有基线,所有“高”和“低”都缺乏参照。基线至少要覆盖一周内不同时段的平均值和峰值,区分工作日与周末、白天与夜间。比如一个业务正常晚高峰总带宽是800Mbps,凌晨通常只有150Mbps,那么凌晨突然出现600Mbps的入向流量,即便没有跑满1Gbps出口,也极可能是一次中等规模的攻击。反过来,晚高峰出现1.2Gbps流量,如果只是略高于日常峰值,还要结合业务活动、发布节奏和CDN回源情况判断,不能直接定性为大规模DDoS。
带宽监控需要同时关注入向和出向流量。很多DDoS攻击是反射放大型,入向流量巨大,出向相对较小,比如NTP、DNS、Memcached反射。如果看到入向带宽突然飙升而业务请求量没有同步增长,基本可以判断是反射攻击。另一些攻击如CC攻击或慢速连接耗尽,带宽可能并不高,但出向会持续维持大量小包或半开连接,此时带宽图看起来平稳,但新建连接数、并发连接数和业务响应时间会明显恶化。只看带宽就会漏判。
包速率PPS比带宽更能反映攻击的真实压力。同样1Gbps的流量,如果是大包,每秒可能只有几万包,普通服务器还能处理;如果是64字节小包,每秒可能达到几百万包,足以耗尽网卡中断和内核协议栈资源。监控时要把带宽和PPS放在同一时间轴对比。比如带宽只有300Mbps,但PPS高达200万,这种攻击量级对网络设备的压力远大于1Gbps的大包流量。很多中小型攻击正是利用小包高速率打垮防火墙或负载均衡,而不是靠带宽撑满出口。
协议分布是判断攻击类型和量级的关键维度。正常业务流量中,TCP、UDP、ICMP的比例相对稳定。如果UDP占比突然从10%升到90%以上,且源端口集中在53、123、1900等常见反射端口,基本可以确认是UDP反射放大攻击。如果TCP SYN包占比异常升高,而后续ACK包没有对应增长,说明是SYN Flood。监控系统需要按协议、按目的端口、按源IP聚合统计,才能从带宽总量中拆解出攻击成分。
判断攻击量级还要看清洗设备或上游运营商的处置反馈。如果攻击流量在进入源站前已经被清洗,源站带宽监控可能只看到很小的残余流量,这时候不能认为攻击很小。要结合清洗平台的报表,看原始攻击峰值、清洗后的回注流量和丢弃率。比如清洗平台显示原始入向攻击峰值达到50Gbps,清洗后回注到源站的只有200Mbps,说明攻击量级很大,但防护有效。如果只看源站带宽,就会严重低估攻击规模。
攻击量级可以粗略划分为几个区间。小于1Gbps的攻击通常属于小规模,很多单机或小带宽源就能发起,但足以打死未做防护的普通服务器。1Gbps到10Gbps属于中等规模,常见于反射放大或小规模僵尸网络,对中小型IDC出口构成压力。10Gbps到100Gbps属于大规模攻击,需要专业清洗中心或运营商级防护。超过100Gbps的攻击属于超大规模,通常由大型僵尸网络或反射资源发起,对骨干网节点都可能产生影响。这个划分不是绝对的,判断时还要结合业务带宽和防护能力。
监控带宽时,要特别注意攻击的突发性和持续时间。有些攻击是瞬时脉冲,几秒钟内冲到很高带宽然后迅速回落,这种攻击可能只是为了探测防护阈值或制造告警疲劳。另一些攻击是持续加压,带宽缓慢爬升并维持在较高水平,目的是持续消耗带宽和连接资源。对于瞬时脉冲,单看五分钟平均流量可能完全看不到异常,必须使用秒级甚至毫秒级采样。对于持续攻击,要记录攻击开始时间、峰值出现时间、持续时间以及是否出现多波次。
出口带宽的利用率也是一个重要指标。如果出口总带宽是10Gbps,攻击流量达到9.5Gbps,说明攻击已经接近或达到出口上限,此时即使清洗设备在努力过滤,正常业务也可能因为出口拥塞而受到影响。监控时要同时看出口利用率和丢包率。带宽跑满但丢包率很低,说明设备还在勉强处理;如果带宽跑满同时丢包率急剧上升,说明出口已经过载,攻击量级已经超过当前基础设施的承受能力。
源IP的分散程度可以帮助判断攻击是否来自真实僵尸网络。如果攻击流量来自数千甚至数万个不同源IP,且分布在不同网段和地区,说明是分布式攻击,量级可能较大且难以通过简单封禁解决。如果攻击流量集中在少数几个源IP或网段,可能是单点攻击或伪造源地址的反射攻击。对于反射攻击,源IP往往是真实的反射服务器,封禁这些源IP可能有效,但数量可能非常庞大。监控时需要统计攻击期间的源IP数量和Top源IP的流量占比。
带宽监控数据要和业务指标联动分析。攻击期间,如果带宽升高但业务访问量、订单量、API调用量没有明显下降,说明攻击尚未对业务造成实质影响,或者防护已经生效。如果带宽只是小幅升高,但业务响应时间从200毫秒升到5秒以上,错误率从0.1%升到10%,说明攻击类型不是单纯的带宽消耗,而是针对应用层的资源耗尽。这种情况下,攻击量级不能只用带宽衡量,还要看请求速率、连接数和应用资源占用。
在实际监控中,可以使用以下思路快速判断攻击量级。先看总带宽是否偏离基线,再看入向和出向的比例是否异常,接着看PPS是否与带宽匹配,然后看协议分布和目的端口是否集中,最后结合清洗平台数据和业务指标确认影响。例如一次监控中发现入向带宽从200Mbps升至3Gbps,出向只有100Mbps,UDP占比95%,目的端口集中在53,PPS达到180万,源IP超过2万个,清洗平台显示原始峰值3.2Gbps,回注流量50Mbps,业务无影响。综合判断这是一次中等规模的DNS反射放大攻击,攻击量级约3Gbps,但防护有效。
对于没有专业清洗平台的场景,可以在服务器或边界设备上抓包分析。使用tcpdump或Wireshark抓取攻击期间的流量样本,统计包大小分布、协议分布和源IP分布。如果发现大量64字节小包且SYN标志位集中,可以判断是SYN Flood。如果发现大量UDP大包且源端口固定,可能是某种UDP反射。通过样本数据估算整体攻击速率,再结合网卡统计的PPS和带宽,可以更准确地判断攻击量级。
带宽监控工具的选择也很重要。简单的MRTG或Cacti只能看五分钟平均流量,对短时攻击几乎无能为力。建议使用支持秒级采样的监控系统,如Zabbix、Prometheus配合node_exporter,或者使用商业监控平台。对于高速网络环境,还需要启用NetFlow、sFlow或IPFIX,在路由器或交换机上采集流数据,分析攻击期间的流量特征。流数据可以按源IP、目的IP、端口、协议、包数和字节数聚合,是判断攻击量级和类型的有力工具。
在判断攻击量级时,不要忽略防护策略本身对监控数据的影响。如果已经部署了限速、黑洞或流量牵引,监控到的带宽可能是被限制后的结果,而不是攻击的真实规模。比如上游运营商在检测到攻击后自动触发黑洞路由,源站监控会看到流量突然归零,这并不代表攻击停止,而是流量被丢弃了。此时需要查看运营商的攻击告警和流量统计,了解真实的攻击峰值和持续时间。
攻击量级的判断还需要考虑攻击者的资源变化。有些攻击开始时规模较小,可能是试探性攻击,随后逐渐加大。如果监控发现攻击带宽在数小时内从500Mbps逐步上升到5Gbps,说明攻击者在持续增加资源,后续可能达到更高量级。这种情况下,即使当前攻击尚未造成严重影响,也要提前升级防护策略或联系上游运营商做好应对准备。攻击量级是动态变化的,不能只根据某一个时间点的数据下结论。
对于多出口或多机房架构,带宽监控要覆盖所有入口。攻击者可能同时对多个入口发起攻击,也可能只攻击其中一个入口。如果只监控主出口,而攻击流量打到了备用出口或某个单线入口,就可能漏判。需要将各出口的带宽数据汇总到统一监控平台,按时间对齐后分析总量和分布。例如主出口带宽正常,但电信线路入口带宽突然升高,说明攻击是针对该线路发起的,需要单独评估该线路的承受能力。
判断攻击量级的最终目的,是决定采取什么级别的响应措施。小规模攻击可能只需要在本地防火墙或WAF上调整规则。中等规模攻击需要启用云清洗或联系运营商进行流量牵引。大规模攻击则需要多层级联动,包括上游运营商、清洗中心和业务侧的限流降级。如果量级判断错误,比如把大规模攻击当成小攻击处理,可能导致防护失效;把正常高峰当成攻击处理,又可能误伤业务。准确判断量级是有效响应的前提。
带宽监控数据的留存和分析同样重要。攻击结束后,需要对整个攻击期间的带宽、PPS、协议分布、源IP等数据进行回溯分析,形成攻击档案。记录攻击的起始时间、峰值带宽、峰值PPS、主要攻击类型、持续时间、防护措施和最终影响。这些数据可以帮助后续识别类似攻击模式,优化告警阈值,也能在与运营商或安全厂商沟通时提供准确依据。长期积累的攻击数据还能用于分析攻击者的行为规律和资源变化趋势。
在实际工作中,很多团队对攻击量级的判断过于依赖单一指标,比如只看带宽峰值。一个更可靠的方法是建立多维度的攻击画像,将带宽、PPS、连接数、协议分布、源IP数量、业务影响等指标综合起来。比如一次攻击带宽只有800Mbps,但PPS达到300万,源IP超过5万个,业务响应时间显著升高,这种攻击的实际压力远大于一个2Gbps的大包流量攻击。只有多维评估,才能避免被单一指标误导。
对于防御方来说,带宽监控的最终价值在于提前发现和快速响应。设置合理的告警阈值,比如带宽超过基线的150%或PPS超过基线的200%时触发告警,并结合自动化的流量分析脚本,可以在攻击初期就识别出异常。告警信息中应包含当前带宽、基线值、PPS、协议分布和Top源IP,帮助值班人员快速判断攻击量级和类型。不要等到带宽跑满、业务中断才开始分析,那时候已经失去了最佳处置窗口。
判断DDoS攻击量级是一个需要持续积累经验的过程。不同的业务形态、网络架构和防护能力下,同样的攻击流量可能产生完全不同的影响。运维人员需要熟悉自己业务的正常流量特征,掌握多种监控工具的使用,能够在攻击发生时快速从海量数据中提取关键信息。只有把带宽监控、包速率分析、协议分析和业务指标联动结合起来,才能对攻击量级做出准确判断,为后续的防护决策提供可靠依据。
