业务限流与高防清洗要分层部署,顺序永远是先在高防节点清洗流量型攻击,再在应用层做业务限流,两层各管一段,谁先谁后不能乱。
很多架构师第一次接触抗D时,容易把高防清洗和业务限流混为一谈,一个作用在机房入口,一个作用在程序门口,防守位置完全不同,搞清区别后,再谈分层部署就有章法了。
业务限流和高防清洗有什么区别?先分清各自防守位置
高防清洗是把你服务器的入站流量先牵引到清洗设备上,由设备识别并丢弃DDoS攻击包,再把正常流量回源到真实服务器,它对付的是流量型攻击,比如SYN Flood、UDP Flood、CC攻击中的连接耗尽部分,清洗发生在网络层到传输层,离业务代码很远。
业务限流是你自己在网关、中间件或应用代码里控制请求速率,比如某个接口一秒最多允许多少次调用,它对付的是业务峰值和接口滥用,发生在应用层。
两者的本质差异可以看这张表:
| 对比项 | 高防清洗 | 业务限流 |
|---|---|---|
| 部署位置 | IDC入口或云高防节点 | 应用网关、负载均衡、API层 |
| 防护目标 | DDoS攻击流量 | 突发业务请求、恶意刷接口 |
| 协议层 | 网络层到传输层 | 应用层 |
| 触发条件 | 入站流量超过清洗阈值 | 接口QPS超过设定上限 |
| 典型工具 | 运营商清洗设备、云高防IP | Nginx limit_req、Redis令牌桶 |
| 对业务感知 | 多数情况下透明回源 | 请求可能被拒绝或排队 |
说白了,高防清洗是在大门外把洪水挡掉一大部分,业务限流是在前台控制每个人能办多少事,两者不冲突,也不可互相替代。
高防清洗和限流哪个先执行?分层部署顺序别搞反
分层部署时,流量路径决定了执行顺序,真实服务器的DNS解析到高防IP,流量先进高防节点,清洗完再回源到业务网关,最后才到业务限流,所以高防清洗一定先执行,业务限流后执行。
如果顺序反了,会出现什么问题?攻击流量直接打到源站,业务限流模块自己先被DDoS打挂,限流逻辑根本来不及跑,即使能跑,大量攻击包也占满了带宽和连接表,正常用户进不来。
第一层:网络层高防清洗接入实操
接入高防清洗一般按这几步走:
- 购买或开通高防IP,选择离用户近的地域节点
- 把业务域名的A记录指向高防IP,源站IP不再暴露
- 在高防控制台配置回源地址和转发端口
- 设置清洗阈值,多数云厂商支持自动检测,也可手动指定触发值
- 配置源站白名单,只允许高防节点回源流量入站
- 源站防火墙封禁非高防回源段的入站流量
这一步做完后,源站只接受来自高防节点清洗后的干净流量,攻击者扫到的是高防IP,碰不到真实服务器。
第二层:应用层业务限流部署实操
回源流量到达业务网关后,再按接口维度做限流,常用的Nginx配置片段如下:
http {
limit_req_zone $binary_remote_addr zone=api_limit:10m rate=50r/s;
server {
location /api/ {
limit_req zone=api_limit burst=100 nodelay;
proxy_pass http://backend;
}
}
}
这个配置限制了单个客户端IP对/api/路径的平均请求速率为每秒50次,突发允许100次,对于秒杀、验证码、登录等高危接口,可以单独再开一个更小的限流区域。
Redis令牌桶则适合分布式限流场景,多个网关实例共享同一个Redis计数器,每个请求先尝试获取令牌,拿不到就返回限流提示或降级结果,令牌桶算法允许一定突发,比固定窗口计数更平滑,适合电商大促时保护库存扣减接口。
游戏业务限流怎么部署?从网关到接口的实操路径
游戏业务的流量模型和普通Web服务完全不同,游戏以长连接为主,UDP协议占比高,CC攻击往往集中在登录服、战斗服和支付回调接口上,针对游戏业务,限流要分层到连接层和协议层。
游戏网关接入层一般用高性能转发框架,比如Netty或DPDK,在接入层可以这样限流:
- 对单个来源IP限制TCP连接数,超过直接拒绝握手
- 对UDP包的来源IP做速率检查,非法包直接丢弃
- 登录接口限制每个设备ID每分钟尝试次数
- 战斗服内部对帧同步消息做队列长度限制,防止单局内恶意刷包
- 支付回调接口只允许支付平台IP段发起,其他来源一律拦截
很多游戏运营方还会把高防清洗节点部署在离主力玩家近的地域,比如华东和华南节点,清洗完的回源流量再经过网关限流,登录服就能避免被CC攻击刷爆,近年来不少手游项目在开新区或版本更新时,都会提前把高防阈值调高,源站侧同步收紧登录限流参数。
高防清洗价格一般多少?按需选择避免踩坑
高防清洗服务的价格没有统一标准,受防护带宽、清洗能力、地域节点、计费周期影响较大,市面上常见的计费模式有三种:
- 按月包年:适合持续有防护需求的业务,平均成本较低
- 按需弹性:平时只付保底费用,攻击时按实际清洗流量后付费
- 组合计费:保底带宽包月,超出部分按峰值计费
选择时不要只看标价,有些便宜的高防包在遭受大流量攻击时会封禁IP或黑洞处理,业务直接不可用,正规高防清洗服务会持续清洗并保持回源,两者的可用性差异明显。
对于预算有限的团队,可以先上云厂商的基础DDoS防护,再配合业务侧限流,多数情况下,5Gbps以下的小流量攻击靠基础防护加应用层限流能扛住,但超过一定规模就必须使用专业高防节点。
北京高防清洗服务节点和深圳节点怎么选?
地域选择主要看用户分布和备案要求,如果你的业务用户集中在华北和东北,北京高防清洗服务节点的回源延迟通常更低,访问体验更稳定,如果用户集中在华南或东南亚,深圳节点更合适。
选择时还要注意:
- 北京节点对北方运营商线路的BGP接入质量较好
- 深圳节点到港澳台及海外线路的延迟较小
- 跨地域回源会增加延迟,高防节点应尽量和源站同地域或同运营商
- 部分行业对数据不出境有要求,地域节点要和合规要求匹配
实际操作中,可以先申请测试IP,从目标用户所在地区ping或traceroute,观察延迟和丢包,多数云厂商支持高防IP的线路切换,可以根据实际攻击来源调整解析。
分层部署做完后,架构上就形成了三层防线:高防清洗层处理大流量DDoS,网关限流层处理接口级过载,业务降级层处理极端情况下的核心链路保护,每一层各司其职,能力边界清晰,运维排查时也知道先看哪一层。
业务限流与高防清洗分层部署常见问题
业务限流和高防清洗有什么区别?
业务限流在应用层控制请求速率,保护接口不被刷爆;高防清洗在网络层过滤DDoS攻击流量,保护带宽和服务器不被流量打挂,一个管应用,一个管网络,部署位置和作用对象不同。
高防清洗和限流哪个先执行?
高防清洗先执行,流量先经过高防节点清洗,再回源到业务网关,业务限流才生效,顺序不能反。
高防清洗价格一般多少?
没有统一价,由防护带宽、清洗能力、地域和计费周期共同决定,选择时需要比较保底费用、弹性计费和是否提供持续清洗能力。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/636760.html





