1. 准备与合规确认
- 与云服务商签署测试协议并获取书面许可,明确允许的流量类型、测试时间窗与IP白名单。
- 确认测试目标(公网IP、负载均衡入口或 CDN),记录被测IP、端口与服务类型(HTTP/HTTPS、游戏端口等)。
- 准备好备用控制通道(例如另一台管理服务器或控制台),以便测试中断时快速响应。
2. 搭建监控与日志采集环境
- 在被测主机和上游边界路由器启用流量监控:安装iftop、bmon或nload用于实时观测;启用vnstat做时序统计。
- 在被测实例启用tcpdump或使用sflow/NetFlow到集中collector(例如nfcapd + ntopng)以保存抓包和流量分布。
- 部署主机层性能监控(Prometheus + node_exporter 或 Zabbix),采集CPU、内存、网卡队列、socket状态(netstat)等指标。
3. 常用测试工具与安装命令
- 带宽/吞吐:iperf3(安装:apt-get install iperf3 / yum install iperf3)。
- 模拟攻击包:hping3(用于TCP/UDP/SYN floods,apt-get install hping3),nping(来自nmap,用于自定义流量)。
- HTTP压测:wrk、hey 或 ApacheBench(ab)。
- 数据包回放:tcpreplay(用于重放抓包流量)。
4. 基础带宽与吞吐测试步骤
- 在目标实例运行 iperf3 server:iperf3 -s -p 5201。
- 在测试机运行 iperf3 client(单向测试):iperf3 -c 目标IP -p 5201 -t 60 -P 4(-P 并发流)。记录 Mbps、丢包与重传。
- 做双向测试(-R)并在不同并发与连接数下重复,绘制吞吐随并发变化曲线。
5. 清洗能力(DDoS mitigation)测试的合法流程
- 仅在获得云厂商书面同意后进行;明确峰值速率与攻击类型。
- 先做低强度验证(例如每秒几十kpps或几百Mbps),确认厂商检测与转发路径。再在同意范围内逐步放大到目标带宽。
- 每一步都记录上游路由(traceroute)、BGP变更(若可查)、以及厂商的scrubbing中心告警与事件ID。
6. 逐步放大攻击流量的操作示例
- UDP Flood(hping3示例):hping3 --udp -p 目标端口 --flood --rand-source 目标IP (注意:先小流量测试,逐步增加)。
- TCP SYN Flood(hping3):hping3 -S --flood -p 目标端口 --rand-source 目标IP。
- HTTP层压力(wrk示例):wrk -t12 -c400 -d60s http://目标域名/。每次放大后等待监控稳定再继续。
7. 如何判断清洗是否生效——关键指标与判断方法
- 带宽削峰:观察到到达被测IP的攻流量在上游被下降到厂商约定值,同时真实业务流量(合法请求)保持可达。
- 丢包与延迟:使用ping、mtr、tcpdump对比清洗前后丢包率与RTT变化;若丢包主要在上游scrubber节点,则清洗在工作。
- 日志与事件:要求厂商提供清洗报表(清洗前后流量曲线、攻击签名统计、清洗时间与触发阈值)。
8. 数据采集与结果分析模板
- 每次测试记录:开始/结束时间、流量类型、峰值pps/pps、峰值带宽(Mbps/Gbps)、合法流量可达率、响应时间分位数(P50/P95/P99)。
- 用CSV记录并绘图(例如使用Excel或Grafana)。给出结论:是否触发清洗、清洗后剩余攻击量、对业务影响等级。
9. 常见问题与故障处理建议
- 如果业务全黑:迅速切换到备用IP或启用厂商的流量切换/回退策略,并联系厂商技术支持。
- 如果清洗后仍大量攻击流量到达:要求厂商上游扩大scrubbing能力或建议使用更高等级的防护产品;同时提供抓包样本供分析。
10. 问:在没有厂商配合的情况下能否自行测试清洗能力?
答:不能。未经授权的攻击或流量放大会违反法律与云厂商条款,可能导致封禁或法律责任。必须获得书面许可并在协商的时窗和条件内测试。
11. 问:如何确认清洗后的业务性能仍可接受?
答:在每轮攻击测试同时注入代表性合法流量(API请求、页面加载),用真实业务脚本测试响应时间与成功率;若P95/P99延迟与成功率在可接受范围内,则认为性能可接受。
12. 问:测试完成后如何形成有说服力的报告?
答:报告应包含测试前提与授权书、测试方法(工具与命令)、时间序列图(流量、丢包、延迟)、清洗事件时间点与厂商响应、结论与建议(如需要升级线路/产品)。附上抓包与日志作为证据。
来源:评估高防香港云服务器带宽与清洗能力的实用测试方法