前言

CDN由于以下几大部分组成

  • 分布式的边缘节点:将源站的静态网页、图片、音频、视频内容合理地分散在全球各个CDN节点
  • 权威DNS配置:CDN提供商在权威DNS配置NS记录到该CND提供商自己的GSLB(智能DNS请求调度系统)
  • 在CDN提供商的智能DNS中配置源站域名到CND提供商的CNAME记录
  • GSLB对应的智能调度系统:选择最佳的CDN节点,即CDN服务器集群对应的SLB的IP地址Answer给客户端

CDN概念

随着网站业务的发展,用户量增多、访问路径过长、网络链路流量突增,不同地区的用户访问网站的速度就会出现差异;

CDN即内容分发网络(Content Delivery Network)是建立并覆盖在承载网上;

由不同区域的服务器组成的分布式网络将源站资源缓存到全国各地的边缘服务器,供用户就近获取,降低源站压力。

CND采用规避网络拥堵,分而治之的思想, 将源站的内容分布到网络边缘节点,在现有互联网基础上构建一层智能虚拟网络;

当用户访问服务端时,在DNS解析环节,通过GSLB全局负载均衡器即智能调度系统,将用户请求重新导向到距离用户最近、负载均衡最佳、响应时间最短的CDN节点的SLB上

其目的是使用户能以最快的速度、从最接近用户的地方获取所需的信息不再构成网络拥塞的目的; 

DNS工作原理

由于CDN是在DNS解析环节发挥作用的,来分析下DNS解析过程;

DNS:Domain Name System 域名系统,核心作用是将1个域名解析为1个IP地址;

DNS记录类型

DNS记录Resource Record 简称 RR,RR有几大记录类型;

A记录(Address)

A记录用于描述目标域名到IP地址的映射关系

NS记录(Name Server)

NS记录用户描述目标域名到负责解析该域名DNS的映射关系,当设定完成后,相当于把他的解析权交给了对应的DNS。

CNAME记录(Canonical Name)

CNAME记录用于描述目的域名和别名的关系

访问源站DNS解析过程

如上图所示:如果用户访问的网址为   www.le.com

  • 客户端首先会在本机的hosts文件和hosts缓存中查找该域名对应的IP地址;
  • 如果客户端本机中不存在该域名对应的IP地址信息,则客户端询问LDNS进行域名查询;(递归查询
  • 如果LDNS中没有缓存信息,则LDNS会依次向根DNS、顶级域DNS、权威DNS进行域名查询,最终由LDNS将域名对应的IP地址应答客户端;(迭代查询
  • 客户端通过LDNS应答的IP地址向服务端的服务器发出HTTP请求并获取所需的数据内容

CDN工作原理

CDN技术需要结合DNS解析技术才能实现,将用户请求导向距离用户较近的最优CDN节点,而非源站;

本地DNS

Local DNS通常是由用户对应的网络业务提供商(Internet Service Provider,简称ISP)提供的最近用户网络最近的DNS;

SLB

Server Load Balancer  负载均衡服务器是针对集群内部主机的负载均衡器

GSLB

Global Server Load Balancer全局负载均衡服务器,GSLB是对集群外部的负载均衡器,就近性判断是全局负载均衡的主要功能,通常为CDN服务商开发的DNS智能调度系统;

GSLB实现方式

基于DNS协议、基于HTTP协议、基于路由协议的Anycast 的调度

1.基于DNS协议的调度

站点使用CDN加速服务后DNS解析过程

  • 客户端首先会在本机的hosts文件和hosts缓存中查找该域名对应的IP地址;
  • 如果客户端本机中不存在该域名对应的IP地址信息,则客户端询问LDNS进行域名查询;(递归查询)
  • 如果LDNS的缓存中没有该域名的记录,则LDNS向根DNS发送DNS查询报文
  • 根DNS发现域名www.le.com的后缀为com,则应答负责解析com的顶级DNS的IP地址给LDNS
  • LDNS向顶级DNS发送DNS查询报文
  • 顶级DNS发现域名www.le.com包含le.com后缀,在本地记录中查找负责该后缀的权威DNS的IP地址应答给LDNS;
  • LDNS向权威DNS发送DNS查询报文
  • 权威DNS查找到1条NAME字段为www.le.com的CNAME记录(由CDN服务提供者配置在权威DNS。例如阿里云、网宿科技)该CNAME记录的值为www.le.cdn.com,
  • LDNS通过再次向DNS系统发起对CNAME域名的解析
  • 权威DNS通过NS记录发现负责解析www.le.cdn.com这个CNAME的DNS服务器IP地址为为CDN提供商的GSLB的IP地址
  • 本地DNS向GSLB发送DNS查询报文
  • GSLB根本LDNS的IP地址位置判断用户所在位置,筛选出距离用户所在地最近的最佳SLB的IP地址应答给LDNS
  • LDNS应答客户端的DNS请求,将距离用户所在地最近、最佳的SLB的IP地址应答给客户端
  • 客户端向距离自己所在地最近、最佳的SLB发起HTTP请求

总结

① 提交域名
② 客户端解析域名
③ 通过NS记录解析到CDN服务商提供的智能DNS( GSLB)
④ GSLB解析并返回IP
⑤ 客户端请求IP
⑥ 返回结束

这个技术对原业务的侵入性最小,被商业ADC广泛实现,如A10,F5等。

但是可以得到的信息很有限,IP的定位只能得到Local DNS的IP地址得不到客户端的源IP

2.基于HTTP协议调度实现

① 提交域名
② 客户端解析域名
③ DNS解析域名为GSLB
④ 客户端提交请求给GSLB服务器
⑤ GSLB解析出目标IP并发起HTTP转发
⑥ 客户读转发请求到目标IP
⑦ 返回结束

特点:

这个方案只适用于HTTP.

这个方案的实现可以是L7负载均衡工具如Nginx、HTTPD等

 

 

参考

posted on 2024-07-14 08:53  Martin8866  阅读(24)  评论(0编辑  收藏  举报