1) 目标:在遭受DDoS攻击时保持站点可用,同时控制回源流量,保护源站带宽和CPU/内存资源。
2) 架构要点:边缘CDN节点清洗恶意流量,回源通过速率与带宽控制,源站做最后防线。
3) 要素组合:高防CDN + 本地防火墙(iptables/ufw) + 应用限流(nginx) + 黑白名单策略。
4) 指标设定:回源峰值限额、每IP速率阈值、白名单IP名单、异常流量报警阈值。示例目标:将回源峰值控制在500Mbps以内。
5) 运维要求:日志可追溯、告警及时、策略可回滚、定期演练与容量评估。

1) 思路:在边缘节点对回源请求做聚合与限速,避免攻击时把全部流量回源到源服务器。
2) 常用方式:在CDN控制台设置回源阈值(例如回源限速500Mbps),或在边缘NAT上使用限速策略。
3) 具体配置示例:CDN控制台回源限速项设为500Mbps;源站防护网关设置回源上限为200Mbps作二次保护。
4) 回源降级:当回源达到阈值时,启用缓存扩展或返回静态页面,减少源站写入。
5) 监控与告警:设置5分钟平均回源流量阈值报警(例如阈值:300Mbps),并配置自动切换到“只读缓存”模式。
1) 原理:对同一IP或会话设置请求速率阈值,常用Token Bucket或漏桶算法实现。
2) 边缘实现:在CDN或边缘Nginx上使用limit_req限制访问速率,示例配置:limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s; limit_req zone=one burst=20 nodelay;
3) 源站防护:在Linux上可用iptables+hashlimit限制单IP连接速率,示例:iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit 10/sec --hashlimit-mode srcip --hashlimit-name http_limit -j ACCEPT;
4) 并发连接限制:nginx配置 limit_conn_zone $binary_remote_addr zone=addr:10m; limit_conn addr 20; 可防止某IP建立过多并发连接。
5) 数据指标:针对应用层接口设置不同速率,例如登陆接口10r/s、静态资源50r/s,保证关键接口优先级。
1) 黑白名单作用:白名单允许可信IP绕过限速,黑名单拦截高危IP或已知恶意地址段。
2) 配置位置:可在CDN控制台、边缘WAF、以及源站防火墙同时配置,确保多层防护。
3) 示例白名单:允许运维网段 203.0.113.0/24、监控IP 198.51.100.10。示例黑名单:封禁已知攻击IP 198.51.100.200/32。
4) 自动化:结合异常行为检测(如单IP1分钟内请求数>5000)自动加入临时黑名单,TTL为30分钟后自动移除。
5) 日志与审计:记录每次白名单/黑名单变更,保留操作日志90天以便追溯审计。
1) 背景:某电商在双11遭遇大规模HTTP GET放大攻击,攻击峰值流量达到7Gbps。
2) 源站配置:Origin:8核16GB内存,SSD 500GB,公网带宽10Gbps,Nginx + PHP-FPM,限并发20/s。
3) CDN策略:200个POP,边缘缓存率提升至90%,回源限速设为500Mbps,速率限制:每IP 20r/s。
4) 应对结果:边缘清洗后回源流量最大降至420Mbps,源站CPU利用率从95%降到40%。
5) 教训:提前设置好回源阈值与自动封禁规则,以及在业务高峰前进行压测与演练。
1) 部署流程:评估流量模型 -> 配置CDN回源限速 -> 在边缘部署速率限制 -> 同步黑白名单 -> 压测并观测指标。
2) 常见阈值建议:回源限速设置为源站带宽的20%~50%;单IP速率根据业务调整(静态资源50r/s,登录类10r/s)。
3) 日常运维:开启每分钟流量统计,设置异常检测(单IP流量、突增率、连接数)。
4) 回滚与演练:定期用流量生成器模拟攻击演练,验证黑白名单与限速策略的有效性及回滚能力。
5) 合作建议:与ISP和高防CDN服务商建立联动机制,发生大规模攻击时可请求流量清洗与BGP黑洞策略。