Route 53通配符异常行为:未配置DNS却指向对应CloudFront分发
问题原因与技术实现解析
这是CloudFront基于**SNI(Server Name Indication)**的流量路由机制结合边缘节点请求处理逻辑导致的结果,具体拆解如下:
1. DNS解析与请求路由的分离
- 因为你配置了
*.example.com的Route 53别名记录指向distribution1的CloudFront域名,所以nslookup dynamic.example.com返回distribution1的边缘IP完全符合DNS规则——DNS仅按配置记录返回解析结果,不会感知CloudFront的分发配置。 - CloudFront边缘节点采用共享IP池设计,多个分发可复用同一组边缘IP,节点需要通过请求本身的信息区分流量归属。
2. CloudFront边缘节点的请求匹配逻辑
当HTTP/HTTPS请求到达边缘节点时,节点会执行以下判断:
- 提取请求的
Host头(HTTPS请求同时读取SNI扩展中的域名)。 - 在CloudFront全局分发配置库中,查找是否有**将该域名配置为备用域名(CNAME)**的分发实例。
- 由于你已把
dynamic.example.com设为distribution2的备用域名,边缘节点会匹配到distribution2,直接将请求转发到其对应的源站,而非默认的distribution1。
3. 核心原理补充
- 这种逻辑是SNI标准在CDN场景的延伸:SNI允许同一IP托管多个HTTPS域名,CloudFront进一步将该逻辑扩展到整个分发路由体系——只要请求的域名在CloudFront有对应分发配置,无论DNS解析到哪个CloudFront边缘IP,都能被正确路由。
- 若移除distribution2中
dynamic.example.com的备用域名配置,再次请求该域名时,边缘节点因找不到匹配分发,会转而使用DNS解析指向的distribution1配置处理请求。
内容的提问来源于stack exchange,提问作者Vitaly Karasik DevOps
相关产品推荐
相关产品推荐

