【案例分享】CDN+WAF流量突增排查案例

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
Web应用防火墙 3.0,每月20元额度 3个月
.cn 域名,1个 12个月
简介: 阿里云CDN结合WAF使用,WAF作为CDN的源站,是较为常见的使用方式,可以充分发挥CDN的分发加速以及WAF的安全防护能力,一般架构为CDN-->WAF-->SLB-->ECS;但复杂的架构往往也会增大问题排查的复杂程度,本文和大家分享一起由于WAF配置问题引发CDN流量异常增长的案例。

背景

阿里云CDN结合WAF使用,WAF作为CDN的源站,是较为常见的使用方式,可以充分发挥CDN的分发加速以及WAF的安全防护能力,一般架构为CDN-->WAF-->SLB-->ECS

问题概述

某阿里云客户反馈2020年5月13日XX:XX分左右,部分CDN域名流量异常增长约400%;
客户内部排查一天,基本排除内部操作影响,请求阿里云协助查看问题原因。

业务架构:CDN-->WAF-->SLB-->ECS

排查过程

1、首先查看CDN域名监控,确认用户反馈时间点,CDN域名带宽出现突发式增长;

2、查看CDN域名QPS指标,趋势平滑无明显增长,判断不是由于请求量增多导致的带宽增长,进而判断是由于平均请求大小变大,导致带宽增长;

3、通过查看CDN回源带宽,发现源站响应的带宽明显增长,进一步确认上面的结论:请求量没有变化,源站响应内容变大

4、基于上面的结论,做出判断:CDN的带宽突增,是由于源站(WAF)带宽突增导致的,进一步查看了WAF、SLB的流量监控,也都在对应时间突增,因此该问题变成了——为什么SLB在请求数量不变的情况下,带宽突增?

SLB带宽显著增长:
SLB.png

5、首先怀疑的是,源站有调整,响应的文件大小发生了变化,在和客户确认问题期间无任何发布后,暂时排除;

6、由于SLB带宽的变大是因为后端应用响应大小变大导致,因此着手和客户分析应用日志;
通过客户应用日志发现,同一个url,带宽突增后,响应大小明显变大,13k变为68k,响应内容无变化,进一步发现由响应内容由gzip压缩变成非压缩响应;

7、至此问题原因变得清晰:源站的http响应由gzip变成非压缩响应,因此源站流出流量增长,引发SLB、WAF、CDN同步增长

8、分析源站响应由gzip压缩变为不压缩的原因:
<1>客户端更改逻辑,不再携带请求头Accept_Encoding: gzip(由于客户业务的客户端都是浏览器,排除该项)
<2>CDN丢了请求头Accept_Encoding: gzip
<3>WAF丢了请求头Accept_Encoding: gzip
<4>SLB丢了请求头Accept_Encoding: gzip
<5>源站关闭Gzip压缩(和客户了解后端应用未做发布,排除该项)

HTTP知识点:客户端通过Accept_Encoding请求头,声明可以接受的压缩方式,服务端收到请求后,如果支持的话,响应对应形式的压缩内容,例如gzip压缩;通过这种方式减小传输大小,节约流量同时提升传输速度;

9、下面要做的就是验证原因<2><3><4>,究竟是谁丢了请求头Accept_Encoding
通过携带'Accept-Encoding: gzip, deflate'直接指定WAF和SLB请求,发现:
• 直接请求CDN响应大小是68k
• 直接请求WAF,响应大小也是68k
• 直接请求SLB,响应大小是13k
CDN(68k)——>waf(68k)——>slb(13k)——>k8s(13k)
截止到这里可以判断问题出在了WAF ,即WAF丢了Accept_Encoding请求头;

工具知识点:
curl是一个命令行工具,可以发起http请求,通过如下方式指定IP请求,相当于PC的绑host操作,其中-H 指定请求头
❯ curl -voa "https://www.domain.com/xxx" -H 'Accept-Encoding: gzip, deflate' --resolve www.domain.com:443:1.1.1.1

10、问题定位到是WAF后,通过检查WAF配置,发现是由于客户自行开启了数据风控功能导致WAF回源过滤掉了Accept-Encoding头,客户评估关闭该功能后带宽下降到原有水位,问题恢复;
waf.png

关于WAF数据风控:https://help.aliyun.com/document_detail/147834.html

总结

通过以上排查分析,CDN流量突增的原因明朗:
CDN-->WAF-->SLB-->ECS
由于客户开启了WAF数据风控功能,导致CDN经过WAF回源的时候,后者丢了Accept-Encoding请求头,因此源站应用不再响应压缩的内容,响应变大,从而导致域名整体流量突增,带宽上涨。

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
6月前
|
测试技术 网络架构
【技术干货连载 一】业务经过WAF HTTP 400问题排查
教你如何排查和解决业务经过WAF 七层代理HTTP 400问题原因?
246 1
|
11月前
|
定位技术 调度 UED
在进行CDN流量调度时,要考虑的因素有哪些?
在进行CDN流量调度时,要考虑的因素有哪些?
160 3
|
1月前
|
缓存 网络安全 数据安全/隐私保护
使用阿里云国际CDN加速后网站无法访问的排查步骤
使用阿里云国际CDN加速后网站无法访问的排查步骤
|
5月前
|
安全 网络协议 网络安全
【红队APT】反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置
【红队APT】反朔源&流量加密&CS&MSF&证书指纹&C2项目&CDN域前置
136 1
|
5月前
|
存储 负载均衡 应用服务中间件
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
Web架构&OSS存储&负载均衡&CDN加速&反向代理&WAF防护
|
编解码 缓存 容灾
带你读《多媒体行业质量成本优化及容灾方案白皮书》2. CDN及直播出流量优化方案
带你读《多媒体行业质量成本优化及容灾方案白皮书》2. CDN及直播出流量优化方案
352 0
|
存储 运维 前端开发
带宽、流量、CDN
带宽、流量、CDN
688 0
|
调度 CDN
《飞天技术汇—百T级CDN智能流量调度系统的实战分享 曾福华》电子版地址
飞天技术汇—百T级CDN智能流量调度系统的实战分享 曾福华
272 0
《飞天技术汇—百T级CDN智能流量调度系统的实战分享 曾福华》电子版地址
|
Web App开发 移动开发 编解码
斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量?
斗鱼 H5 直播原理解析,它是如何省了 80% 的 CDN 流量?
485 0
|
存储 缓存 负载均衡
什么是CDN:Content Delivery Network内容分发网络(案例详解)
☕️本篇一起入门学习CDN : Content Delivery Network内容分发网络;
389 0
什么是CDN:Content Delivery Network内容分发网络(案例详解)