买 10G 还是 300G?保底还是弹性?规格选小了被打穿,选大了白花钱。本文用 10 个问答讲清 DDoS防护规格 怎么定档、峰值怎么取、超量计费有哪些坑。
Q:防护规格到底指什么?为什么常被混为一谈?
- 清洗能力:能扛多大的攻击,单位 Gbps 或 Mpps。这才是”规格”的本体。
- 保底额度:套餐里含多少清洗流量或保底带宽,超出部分另外计费。
- 弹性上限:攻击超过保底时自动扩到多大,扩到顶了会怎样。
- 还有两个不写在广告里的:回源带宽上限和新建连接数上限。前者决定清洗完能不能回得来,后者决定 SYN Flood 会不会打穿。
- 一句话:规格回答的是”能扛多大攻击”,不是”我的业务带宽多大”。
Q:该按攻击峰值还是业务峰值定?
- 业务峰值只决定正常流量留多少余量;决定规格的是攻击峰值。
- 峰值别取历史最高值——一次偶发的 200G 会把规格顶到用不起。取过去 12 个月的 P95,再乘 1.5 安全系数。
- 没有历史数据的站:先买能弹性扩容的中档,跑一个月看真实峰值再调。第一次就买顶配,多半是浪费。
- 常见错误是按带宽峰值选规格。SYN Flood 是小包攻击,Gbps 不高但 Mpps 打满,只看带宽必然选错。
Q:攻击类型不同,规格的算法也不一样?
- 流量型(UDP 反射、DNS 放大):看 Gbps,几十 G 到几 T 都可能。
- 协议型(SYN Flood、ACK Flood):看 Mpps 和新建连接数,Gbps 往往不高,但设备先被包速率打挂。
- 应用层(CC):看 QPS,几乎不占带宽——几十 Mbps 就能打挂一个没做限流的站。
- 所以向供应商要参数时要三个:Gbps、Mpps、QPS。只报”多少 G”的报价单等于没说明白。
- 补一句常识:清洗设备对小包和大包的吞吐差很多,1Gbps 的小包攻击约等于十几 Gbps 大包的压力。
Q:保底和弹性怎么选?
- 保底=固定月费,适合”确定会被打”的站:游戏、支付、竞争激烈的行业。
- 弹性=按需触发,单价高,适合偶发被打的中小站。
- 买弹性必须问清四件事:触发条件(阈值多少)、生效方式(自动还是工单)、生效时间(分钟级还是小时级)、封顶值。
- 最容易被忽略的是封顶:宣传写”弹性无限”,合同里常有一行”超过 X G 后进入黑洞”。那个 X 才是你真实的规格。
- 折中方案:低保底 + 高弹性。日常不烧钱,被打时顶得住,代价是单价贵。
Q:超量计费怎么算,哪里容易踩?
- 三种计价方式差别巨大,签合同前必须确认是哪一种:
- 按攻击流量计费:攻击 1T 你付 1T 的钱,等于替攻击者买单。这种条款尽量避开。
- 按清洗后回源流量计费:相对合理,但攻击一旦穿透清洗,回源流量会暴涨。
- 按峰值带宽计费(95 计费):短尖峰被削掉,但连续 36 小时以上的攻击会顶到整月账单。
- 还有两个隐藏项:保底是按月累计还是按次;清洗费按”超出保底部分”还是按”全部流量”。一字之差,账单差一倍。
Q:预算有限的小站,怎么用最小成本压住风险?
- 优先级不是买规格,是先让源站不可见:换 IP、只允许回源 IP 访问、域名走 CNAME 接入。源站 IP 暴露,买再大的高防也没用。
- 第二层:用 CDN 的免费额度兜住小流量攻击,把攻击面推到边缘。
- 第三层:给登录、下单、搜索这几个关键接口单独加规则,攻击者打的往往是这些。
- 兜底:准备静态兜底页和备用域名,被打穿时至少能告诉用户”稍后回来”。
# 源站只放行清洗节点回源,其余一律拒绝(放在 server 块最前)
set_real_ip_from 203.0.113.0/24; # 清洗/回源节点网段
real_ip_header X-Forwarded-For;
real_ip_recursive on;
allow 203.0.113.0/24;
allow 10.20.0.0/16; # 内网运维
deny all;
- 判断标准很直白:被打一次的业务损失 < 一年防护费,就先别上大规格,把应急流程和兜底页做好更划算。
Q:规格买大了浪费,能降配吗?
- 能,但有窗口条件:连续 6 个月无攻击、攻击峰值明显下降、业务迁移或下线。
- 降配顺序讲究:先降保底、保留弹性,观察一个计费周期再做第二步。直接砍掉防护,等于把之前交的学费退回去。
- 降配前确认三件事:弹性是否保留、SLA 是否随之降级、剩余合同期的违约金。
- 别忘了记录降配原因。半年后再被打一次,这份记录能帮你快速回到原来的档位。
Q:怎么验证规格到底够不够?
- 不要真打自己。自打会被上游限速甚至封端口,也不构成有效测试。
- 用供应商的演练或清洗测试服务,提前报备时间和源 IP,让对方在边缘放行。
- 阶梯加压:从业务峰值的 1.5 倍起,逐级加到防护规格的 70% 就停,留 30% 缓冲。
- 每一步看四个数:清洗后回源流量、误杀率、业务可用性、切回正常的时间。四个数都稳才算通过。
# 演练期间从业务侧观察(不要用压测工具直接打生产域名)
# 1) 回源 QPS 是否随攻击量线性上升(线性=清洗没起作用)
curl -s "http://127.0.0.1:9090/api/v1/query?query=sum(rate(nginx_http_requests_total[1m]))"
# 2) 关键接口状态码与耗时
curl -s -o /dev/null -w "code=%{http_code} total=%{time_total}s\n" https://www.example.com/api/health
# 3) 清洗后带宽在边缘控制台看,不要看源站网卡
# 4) 演练结束核对误杀工单,超过 1% 就要回头调规则
Q:报价单上还该问哪些参数?
- 清洗节点数量与分布:单节点和多地分布,抗打能力不是一个量级。
- 是否支持 IPv6 与 QUIC:只支持 IPv4 的防护,遇到 IPv6 攻击等于裸奔。
- 回源方式:CNAME、NS、高防 IP 三种,迁移难度和暴露风险完全不同。
- 日志导出与保留天数:没有日志,事后既没法溯源也没法优化规则。
- 超规格后的行为:是限速、是黑洞,还是继续清洗但按量计费。三种结果对应三种完全不同的故障表现。
Q:还有什么补充建议?
- 把防护费和业务损失换算成同一单位再决策:年防护费 vs 单次停机损失 × 年攻击次数,比争论”多少 G 才够”有效得多。
- 看清洗能力的同时看回源带宽上限。见过标称 300G 清洗、回源只给 100M 的套餐,清洗完照样回不去。
- 规格不是买完就完事,每年复核一次:攻击峰值在涨、业务在变,两年前合适的档位今天可能已经不够。
- 反常识的一条:真正决定你能不能扛住的,常常不是清洗带宽,而是源站的连接数和应用层 QPS 上限。清洗把 500G 压到 5G,源站该挂还是挂——先做源站抗压,再谈买多大规格。