1.
CDN 加速与 DNS 的基本关系
解析的基本逻辑:DNS 将域名解析到 CDN 提供的边缘节点或 CNAME;
解析与缓存:DNS TTL 决定解析缓存时长,影响切换速度与分发延迟;
隐藏源站:通过将 A/CNAME 指向 CDN,源站 IP 可隐藏,提升抗 DDoS 能力;
多出口策略:配合负载均衡和 GEO-DNS 可将流量引导到最近边缘或备用源站;
安全联动:DNS 与 CDN 的 WAF、速率限制、TLS/证书验证联合构成DDoS防护链;
部署提示:上线前在测试域设置低TTL(例如300秒)以便快速回滚和验证。
2.
常用的 DNS 记录与推荐值(实操示例)
记录类型选择:域名 www.example.com 使用 CNAME 指向 cdn.provider.net;根域用 A 记录或 ALIAS/ANAME;
TTL 建议:边缘指向记录 TTL=300(5分钟),非紧急静态二级记录可设3600;
健康检查:为备用源站设置 dns failover,健康检查间隔 10s,重试次数 3;
MX/TXT:邮件相关记录不应走 CDN,保留真实源站或独立邮箱服务;
示例 IP 与值:源站 IP 203.0.113.45(VPS),CDN CNAME: edge123.cdn.example.net,TTL=300。
3.
回源策略对比:IP 直连 vs CNAME 回源 vs 反代
直接回源(A记录):CDN 指向源站 A,适合私有协议但会泄露源 IP(不推荐对外暴露);
CNAME 回源:CDN 使用 CNAME 到边缘节点再回源到隐藏的源站 IP,是最常见方式;
反向代理(Proxy):在边缘或中间层做二级反代,可做 origin-shield 减少源站连接压力;
端口与协议:回源常用 80/443,若使用非标准端口(如8443)需在 CDN 后端配置允许端口;
验证机制:启用 Origin Pull 验证(来源校验、客户端证书或自定义 Header)防止直接攻击源站。
4.
实战 DNS 配置表(示例:example.com 指向 CDN,源站隐藏)
| 域名 |
记录类型 |
值 |
TTL |
是否代理 |
| example.com |
A (根域备用) |
203.0.113.45 |
300 |
否(仅备用) |
| www.example.com |
CNAME |
edge123.cdn.example.net |
300 |
是(边缘代理) |
| api.example.com |
CNAME |
api-edge.cdn.example.net |
60 |
是(短缓存) |
注:表中示例为常用生产值,api设短TTL便于频繁策略调整。
5.
原站(VPS/主机)配置与 Nginx 示例
VPS 规格示例:4 vCPU / 8GB RAM / Ubuntu 20.04,公网 IP 203.0.113.45;
Nginx 基本配置示例:listen 443 ssl; server_name example.com www.example.com; proxy_pass http://backend;(省略证书块);
真实IP 处理:在 nginx 中使用 real_ip_header X-Forwarded-For; set_real_ip_from CDN_IP_RANGE; 列表按 CDN 提供商公开网段添加;
回源安全:启用 TLS 验证(origin-pull),在 CDN 后端设置 SNI 为 example.com,并在源站配置仅接受 CDN 的客户端证书或自定义 Header;
性能调优:keepalive_timeout 65; worker_processes auto; sendfile on; gzip on; 缓存静态文件到本地 /var/cache/nginx。
6.
真实案例:应对 1.2Gbps 流量的 DDoS 并发定位与处理
背景:某电商域名上线促销遭遇峰值攻击带宽 ~1.2Gbps 并发请求峰值 80k RPS;
策略:立刻将域名 CNAME 指向 CDN 并启用“挑战/JS 令牌+WAF+速率限制”;
回源调整:在 CDN 后端启用 origin-shield,源站仅允许 CDN 网段访问并关闭直接 A 记录解析;
效果数据:攻击前源站带宽使用 900Mbps,切换后源站带宽峰值降至 45Mbps,请求命中率由 0% 提升到 92%(缓存命中);
落地建议:预留低 TTL、准备备用域/备用源、在 DNS 提供商设置快速切换联系人,并定期同步 CDN 提供商的 IP 列表到防火墙和 fail2ban。