DDoS攻击流量超过高防套餐上限之后服务器还能撑多久
DDoS攻击流量超过高防套餐上限之后,服务器还能撑多久
这个问题在实际排障里经常被问到,尤其是买了100Gbps高防、200Gbps高防之后,业务方会很自然地问:如果对面打到300Gbps,是不是服务器还能硬扛一会儿?
先把概念拆开看。DDoS流量超过高防套餐上限之后,真正决定“还能撑多久”的,往往不是服务器CPU、内存、硬盘,而是清洗中心、上游线路、黑洞策略、回源带宽、业务层限速这些东西。很多时候服务器并不是被打死的,是公网入口先被限流、牵引、封堵,用户访问不到了。
超过防御上限之后,流量不一定会直接打到源站
高防套餐里的“100Gbps防御”“200Gbps防御”,通常指的是清洗能力或者单IP防护阈值。攻击流量进来以后,会先进入高防清洗集群,清洗掉UDP flood、SYN flood、ACK flood、ICMP flood、反射放大这类脏流量,再把相对干净的流量回源到服务器。
当攻击超过套餐上限,常见处理方式有三种。
第一种,清洗中心还能顶一段时间,但防护质量下降。比如买的是100Gbps防御,攻击峰值打到120Gbps,持续时间不长,上游资源还有冗余,这种情况下未必马上黑洞,可能只是丢包变高、TCP重传增加、部分地区访问抖动。
第二种,触发黑洞或者限流。这个在国内高防里很常见,尤其是攻击持续超过阈值,或者攻击包型明显影响机房出口时,上游会直接对被攻击IP做null route。用户侧看到的现象就是IP不通了,ping不通,TCP连不上,业务看起来像“服务器宕机”,但实际上机器可能还在机房里正常跑。
第三种,脏流量漏到源站。这个对业务最危险。清洗没完全挡住,或者回源策略没配好,源站公网IP暴露,攻击者绕过高防直接打源站。这种情况下服务器能撑多久,就看网卡、内核协议栈、conntrack、应用连接池和带宽上限了,通常不会太久。
实际能撑多久,要按场景看
| 场景 | 常见现象 | 大致可撑时间 | 关键因素 |
|---|---|---|---|
| 攻击略超套餐,例如100Gbps防御遇到110Gbps到130Gbps | 部分丢包,访问变慢,海外或跨网波动明显 | 几分钟到几十分钟都有可能 | 清洗集群冗余、上游策略、攻击包型 |
| 攻击明显超套餐,例如100Gbps防御遇到300Gbps | 高防IP被限流或黑洞,业务公网不可达 | 通常几十秒到几分钟内触发 | 机房黑洞阈值、运营商策略、是否持续攻击 |
| 源站IP暴露,被绕过高防直接打 | 源站带宽跑满,CPU软中断升高,连接数爆炸 | 几十秒到几分钟 | 源站带宽、网卡、内核参数、防火墙性能 |
| HTTP CC攻击,流量不大但请求量高 | 带宽没满,Web进程、数据库、缓存先扛不住 | 几秒到十几分钟 | QPS、WAF策略、缓存命中率、业务接口复杂度 |
| 攻击持续但被黑洞保护 | 服务器本身正常,公网访问中断 | 机器可以一直运行,但业务不可访问 | 黑洞时长、解封策略、备用IP和切换能力 |
这里补充一点,很多人把“服务器还能撑多久”和“业务还能访问多久”混在一起了。服务器进程没挂,不代表业务可用。高防IP被黑洞后,源站SSH可能还在,内网监控也正常,但外部用户已经完全打不开。
超过上限后的真实链路变化
正常情况下,访问路径大概是:用户访问高防IP,高防节点清洗,干净流量回源,源站返回数据。这个链路里,高防节点是挡在前面的盾。
当DDoS流量超过防御上限后,链路会变成几种状态。
一种是高防节点继续清洗,但开始丢弃更多包。TCP业务会明显变慢,因为握手、确认、重传都受到影响。用户侧表现不是完全打不开,而是时好时坏,登录接口、支付接口、游戏网关这类对延迟敏感的业务会先出问题。
一种是高防IP被黑洞。黑洞不是服务器宕机,而是运营商或机房为了保护整体网络,把这个IP的路由直接丢掉。流量到不了清洗节点,也到不了源站。对于业务来说,这比丢包更直观:直接不通。
还有一种更麻烦,攻击者拿到了源站真实IP。比如DNS历史解析泄露、邮件服务器暴露、回源白名单没做、源站还开着公网访问。高防IP还在前面清洗,攻击却从另一条路直接打源站,源站的普通带宽可能只有20Mbps、50Mbps、100Mbps,根本不是一个量级。
源站被直打时,服务器通常撑不了太久
拿一台普通8C16G服务器举例,公网带宽100Mbps。如果遇到UDP flood,攻击不需要多大,几百Mbps就能把入口带宽打满。带宽满了之后,业务请求进不来,SSH也可能卡死。这个阶段CPU可能并不高,因为瓶颈在机房入口或者网卡队列。
如果是SYN flood,情况会变得更细。Linux开启syncookies、调大半连接队列、优化tcp_max_syn_backlog之后,确实能多撑一会儿。但攻击量到一定程度,软中断、连接跟踪、iptables规则匹配都会消耗CPU。特别是开了conntrack的机器,连接表被打满后,正常连接也会异常。
如果是HTTP CC,带宽看着可能只有几十Mbps,但应用已经被拖死。攻击者请求的是动态接口,比如登录、搜索、库存查询、排行榜、验证码接口,每个请求都要查数据库或调用后端服务。这个时候高防的Gbps指标意义不大,QPS和业务消耗才是重点。
实际使用中发现,源站直打最常见的崩溃顺序是:公网带宽先满,SSH变卡;然后Web连接数堆积;接着数据库连接池耗尽;再往后是应用线程池打满、健康检查失败、负载均衡摘节点。机器不一定马上重启,但业务已经不可用了。
高防上限不是硬墙,更像带容量的排水系统
可以把高防理解成排水系统。100Gbps防御不是说100Gbps以内一滴不漏,101Gbps马上全灭。真实情况更接近:水量接近排水能力时,水位开始上涨;超过太多时,为了不淹掉整个区域,会打开泄洪或者封堵某个入口。
攻击包型也很关键。同样是100Gbps,UDP反射放大、NTP放大、CLDAP放大这类流量,对清洗集群和上游出口的压力不一样。小包攻击更吃PPS,大包攻击更吃带宽。很多套餐只写Gbps,但没写PPS,实际压测和被打时差异很明显。
例如64字节小包打到20Mpps,和1500字节大包打到100Gbps,压力点完全不同。前者更容易打爆设备包转发能力,后者更容易占满线路。看高防套餐时只盯Gbps,会漏掉PPS这个指标。
被打超过套餐后,为什么有的业务还能断断续续访问
这种情况一般说明还没进入完全黑洞,或者攻击不是持续满流量。DDoS很多时候是波峰式的,30秒冲一波,停十几秒,再冲一波。监控里看到的峰值可能是200Gbps,但平均值没那么高,高防节点有机会在波谷期间恢复一部分连接。
还有一种情况是多线路入口差异。BGP高防会接入多家运营商,电信、联通、移动、海外方向的攻击压力不一定均匀。可能电信方向丢包严重,移动方向还能打开;国内打不开,海外还能访问;或者反过来。业务方看到“有人能打开,有人打不开”,排查时就不能只看服务器状态。
如果业务面向海外用户,线路质量也会影响感知。CN2、GIA这类线路平时延迟和丢包控制更好,但遇到大规模DDoS时,仍然要看是否有高防清洗能力和足够的入口容量。优质线路不是防御本身,别把低延迟线路当成抗攻击能力。
购买高防时,防御上限要按峰值而不是平均值估
选高防套餐时,不能只看平时带宽。业务平时只有20Mbps,不代表100Gbps防御就一定安全。攻击者关心的不是你的日常流量,而是你的业务价值、攻击成本、竞争环境、游戏开服节点、活动时间窗口。
游戏、棋牌、语音、私服、金融活动页、API网关这类业务,攻击峰值经常比日常业务流量高出几个数量级。100Gbps防御在一些普通企业站点上够用,在游戏开区、支付接口、活动抢购场景里可能只是入门。
如果你也在找这种高防服务器或者大带宽服务器,可以看看129云。它家产品线里有宁波高防-D型,8C、16G DDR4 ECC、90G U.2、上行35Mbps峰值、下行300Mbps、单IP 100Gbps防御,适合预算敏感但又需要基础抗DDoS能力的业务。需要电信单线和更强硬件的场景,可以看西安电信-C型,金牌6138双路,40核80线程,64GiB内存,500G企业级SSD,上行200Mbps,单机100Gbps防御。香港方向如果更看重访问速度和精品带宽,香港大宽带-E型是16C16G、300Mbps峰值、1TB双向流量,适合海外访问和跨境业务,但要根据攻击风险搭配防护。咨询时可以直接打客服热线400-9177118,把业务类型、用户地区、历史攻击峰值说清楚,别只问价格。
超过上限后最怕源站IP泄露
高防方案里,源站隐藏比很多人想得重要。只要源站IP暴露,攻击者就可以绕过高防。高防IP再贵,前面清洗再强,源站被直连打满还是一样掉线。
常见泄露点有这些:历史DNS记录、子域名解析、邮件头、对象存储回源、第三方监控、SSL证书透明日志、应用接口返回源站地址、运维临时开放的测试域名。实际处理攻击时,经常不是高防不行,而是源站旁路太多。
源站侧建议只允许高防回源IP访问业务端口,Web端口不要对全网开放。SSH、数据库、Redis、管理后台更不要暴露在公网。安全组、iptables、云防火墙都要配,不要只在应用层做鉴权。
多说一句,源站隐藏不是配一次就结束。迁移、扩容、加CDN、换证书、接监控、开测试环境,都可能重新把源站露出去。攻击发生后再清历史解析,通常已经晚了。
黑洞时间通常不是按服务器状态解除
很多人被黑洞后会问:服务器已经恢复了,为什么IP还不通?因为黑洞解除看的是上游攻击流量是否下降,不是看你的服务器有没有重启。
黑洞时间常见有30分钟、1小时、2小时,也有按攻击持续时间动态延长的。攻击一直不停,黑洞就可能一直续。部分机房支持人工申请解封,但如果解封后攻击还在,可能几秒到几十秒又被打进黑洞。
这也是为什么关键业务要准备备用IP、备用高防节点、DNS切换策略。DNS切换要注意TTL,平时TTL设得太长,真正切换时用户侧缓存还在旧IP上,恢复速度会很慢。
业务层攻击不能只看Gbps
HTTP CC、WebSocket连接耗尽、API慢请求,这些攻击不一定超过高防Gbps上限,但一样能让服务不可用。高防清洗对三四层攻击效果明显,但七层攻击要结合WAF、限速、验证码、行为分析、缓存、接口降级。
比如一个接口正常QPS只有500,攻击者打到5000 QPS,每个请求都查数据库,数据库CPU直接拉满。外网带宽可能才几十Mbps,高防面板看着也不夸张,但用户就是打不开。这个场景下继续加100Gbps防御不一定解决问题,得看请求特征、URL分布、User-Agent、Cookie、来源ASN、是否支持挑战验证。
游戏业务还要关注连接保持。很多游戏网关不是被带宽打死,而是被连接数、握手频率、心跳包异常拖死。高防能挡一部分SYN和UDP flood,但登录服、匹配服、网关服本身也要有限流和熔断。
判断还能撑多久,看监控不要只看一张图
攻击来了以后,单看服务器CPU很容易误判。CPU低不代表没事,可能是流量根本进不来;CPU高也不一定是应用问题,可能是软中断或防火墙规则在烧。
更有价值的监控包括:高防入口攻击峰值、清洗后回源流量、PPS、SYN包数量、TCP重传率、源站网卡流量、软中断CPU、conntrack使用量、Web QPS、5xx比例、数据库连接数、缓存命中率、负载均衡健康检查状态。
如果高防入口300Gbps,清洗后回源只有50Mbps,源站CPU正常,但用户打不开,大概率是高防入口或上游被限流、黑洞、跨网丢包。反过来,如果高防入口不高,回源QPS异常,源站CPU和数据库连接数爆了,那就是七层压力或绕过防护的流量。
临时应急时,不要在源站上硬扛大流量
攻击已经超过套餐上限,还在源站上改Nginx参数、重启服务、加swap,通常只能缓解很小一部分。三四层大流量压上来,源站不是合适的战场。
应急优先级一般是:确认是否黑洞,确认源站是否暴露,切换更高防御IP或更大清洗节点,限制回源来源,封掉非必要端口,业务层加限速和挑战,必要时临时关闭高消耗接口。
如果攻击持续超过现有套餐,比如100Gbps被长期打到300Gbps以上,就要升级防御或者换防护架构。继续等“对方停手”不算技术方案,只是赌攻击成本和对方耐心。
不同业务的预期要提前说清楚
企业官网被攻击,能接受十几分钟不可访问,和游戏开服被攻击一分钟掉线,设计完全不一样。官网可以用CDN缓存、静态化、备用页面撑一下;游戏网关和实时API就要考虑高防回源、会话保持、节点切换、客户端重连策略。
对于只需要基础防护的业务,100Gbps高防已经能挡掉大量普通攻击。对于经常被针对的业务,防御上限要预留冗余,最好按历史峰值的1.5倍到2倍去选。曾经被打到150Gbps,就别只买150Gbps,攻击者下一次很可能加量。
服务器能撑多久这个问题,实际答案通常在攻击发生后的前几分钟就会显现:如果是高防入口扛不住,表现为丢包或黑洞;如果是源站暴露,表现为带宽、连接、CPU快速异常;如果是七层攻击,表现为应用和数据库先崩。继续观察高防入口流量、清洗后回源、源站连接数这三条线,基本能判断下一步该升级防御、切换IP,还是处理业务层限流。