知识卡片
CDN路由解析靠DNS的CNAME链条导流
内容
CDN把用户请求导向最近缓存节点的秘密,正是[[DNS递归解析与权威服务器的 智能线路能力]]中”权威DNS可以按策略返回不同结果”这个能力的具体应用。 接入CDN时,源站IP会被注册成CDN服务商的一个”源站”,得到一个CNAME;网站 自己的DNS服务商把这个CNAME设置为域名的解析记录。此后每次用户访问,本地 DNS递归查到的不再是源站IP,而是先解析出这个CNAME,再由CDN服务商架设的 权威DNS接管:这个权威DNS根据拓扑结构、容量、时延等参数,从全国各地的 CDN节点中挑一个当前最合适的,把它的IP当作最终结果返回。浏览器全程以为 自己访问的就是源站,实际上是被DNS的CNAME链条”调度”到了缓存节点——用户 和源站都对这次调度无感知,这正是CDN”透明”二字的技术根基:不是CDN节点 主动拦截流量,而是DNS解析结果一开始就没有指向源站。
结构图:
sequenceDiagram
participant U as 用户浏览器
participant L as 本地DNS
participant D as 网站DNS服务商
participant C as CDN权威DNS
participant N as CDN缓存节点
U->>L: 查询 icyfenix.cn
L->>D: 递归查询
D-->>L: 返回CNAME (icyfenix.cn.cdn.xxx.com)
L->>C: 查询该CNAME
C->>C: 按拓扑/容量/时延挑选最优节点
C-->>L: 返回该节点IP (代替源站IP)
L-->>U: 返回节点IP
U->>N: 访问该IP (以为是源站)
参考来源
- 位置:《凤凰架构:构建可靠的大型分布式系统》第4章"透明多级分流系统"
4.4.1节"路由解析"(源文件:_epub-src对应OEBPS/Text/chapter45.xhtml)
- 结论依据:原文用真实dig查询记录展示icyfenix.cn先解析出CNAME、再由
CDN权威DNS返回若干地区A记录的完整过程,并说明CDN权威服务器会根据拓扑
结构、容量、时延等参数挑选最适合的缓存节点,直接支撑本卡片结构梳理。
- 原始内容:本地DNS查询CNAME时,由于能解析该CNAME的权威服务器只有CDN
服务商所架设的权威DNS,这个DNS服务将根据一定的均衡策略和参数,如拓扑
结构、容量、时延等,在全国各地能提供服务的CDN缓存节点中挑选一个最
适合的。