二、CDN内容分发网络:
假设通过CDN加速的域名为 www.a.com ,接入CDN网络,开始使用加速服务后,当终端用户(北京)发起HTTP请求时,处理流程如下:
1.当终端用户(北京)向 www.a.com 下的指定资源发起请求时,首先向LDNS(本地DNS)发起域名解析请求。
2.LDNS检查缓存中是否有 www.a.com 的IP地址记录。如果有,则直接返回给终端用户;如果没有,则向授权DNS查询。
3.当授权DNS解析 www.a.com 时,返回域名CNAME www.a.tbcdn.com 对应IP地址。
4.域名解析请求发送至阿里云DNS调度系统,并为请求分配最佳节点IP地址。
5.LDNS获取DNS返回的解析IP地址。
6.用户获取解析IP地址。
7.用户向获取的IP地址发起对该资源的访问请求。
8.如果该IP地址对应的节点已缓存该资源,则会将数据直接返回给用户,例如,图中步骤7和8,请求结束。
9.如果该IP地址对应的节点未缓存该资源,则节点向源站发起对该资源的请求。
10.获取资源后,结合用户自定义配置的缓存策略,将资源缓存至节点,例如,图中的北京节点,并返回给用户,请求结束。
总结:(1)CDN的加速资源是跟域名绑定的。
(2)通过域名访问资源,首先是通过DNS分发查找离用户最近的CDN节点(边缘服务器)的IP
(3)通过IP访问实际资源时,如果CDN上并没有缓存资源,则会到源站请求资源,并缓存到CDN节点上,这样,用户下一次访问时,该CDN节点就会有对应资源的缓存了。
1.CDN回源包括回源地址和加速域名;
2.回源地址:可以使回源域名,也可以是回源IP,主要作用是CDN加速节点同步更新的一个地址;
3.加速域名:使用CDN服务器需要加速的一个域名,一般会将加速域名做别名解析为CDN运营商提供的域名,来做CDN加速访问;
4.网站解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务;
5.域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
延展阅读
1.域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定;
2.联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆;
3.人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的;
4.域名解析协议(DNS)用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。DNS是一种c/s的结构,客户机就是用户用于查找一个名字对应的地址,而服务器通常用于为别人提供查询服务。
DNS解析和CDN加速的对于这两者永远处于模糊的概念。其实二者是相辅相成的,二者搭配起来能使网站更加安全,快速。用户访问未使用CDN缓存网站的过程为:
用户向浏览器提供要访问的域名浏览器向本地DNS查询该域名的IP地址本地DNS向13根发起请求根服务器再向本地服务器返回一级服务器一级服务器把所授权的权威DNS返回给本地DNS,权威DNS服务器将IP地址作为解析结果送给本地DNS解析服务器本地DNS解析服务器把IP地址返回给用户,从而完成一个解析过程
使用了CDN缓存后的网站的访问过程变为:
用户向浏览器提供要访问的域名浏览器调用域名解析库对域名进行解析,由于CDN对域名解析过程进行了调整,所以解析函数库一般得到的是该域名对应的CNAME记录,为了得到实际IP地址,浏览器需要再次对获得的CNAME域名进行解析以得到实际的IP地址在此过程中,使用的全局负载均衡DNS解析,如根据地理位置信息解析对应的IP地址,使得用户能就近访问。此次解析得到CDN缓存服务器的IP地址,浏览器在得到实际的IP地址以后,向缓存服务器发出访问请求缓存服务器根据浏览器提供的要访问的域名,通过Cache内部专用DNS解析得到此域名的实际IP地址,再由缓存服务器向此实际IP地址提交访问请求缓存服务器从实际IP地址得得到内容以后,一方面在本地进行保存,以备以后使用,二方面把获取的数据返回给客户端,完成数据服务过程客户端得到由缓存服务器返回的数据以后显示出来并完成整个浏览的数据请求过程。
实现CDN的主要技术手段是高速缓存、镜像服务器。可工作于DNS解析或HTTP重定向两种方式,通过Cache服务器,或异地的镜像站点完成内容的传送与同步更新
CDN网络架构主要由两大部分,分为中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成。
当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。
每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器
负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。
很多用户都想要自己的IP不暴露出来,由于单纯只使用DNS解析,直接PING就会显示出自己的真实IP,如果又使用CDN,PING出来的IP就不是用户的真实IP而是CDN服务器的IP节点,导致用户有了一种想法,就是觉得DNS完全没有用处,只要使用CDN就可以,因为遭受攻击也不是攻击自己的真实IP.这个想法其实完全错误的。
CDN服务本身并不具备DNS解析功能,而是依托于DNS智能解析功能,由DNS根据用户所在地、所用线路进行智能分配最合适的CDN服务节点,然后把缓存在该服务节点的静态缓存内容返回给用户.所以在启用CDN后进行ping查询时IP发生了变化,是因为此时返回的是我司DNS根据用户所在网络和服务器情况等智能适配后得出的最佳CDN服务节点IP而并真实服务器。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)