CDN

来自中文百科专业版
跳转至: 导航搜索

  CDN(Content delivery network或Content distribution network,常简写成CDN),即内容分发网络,是一种通过互联网互相连接的电脑网络系统,提供高效能、可扩展性、及低成本的网络将内容传递给使用者。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络“边缘”,使用户可以就近取得所需的内容,解决Internet网络拥挤的状况,提高用户访问网站的响应速度。从技术上全面解决由于网络带宽小、用户访问量大、网点分布不均等原因所造成的用户访问网站响应速度慢的问题。

  狭义上,内容分发网络(CDN)是一种新型的网络构建方式,它是为能在传统的IP网发布宽带丰富媒体而特别优化的网络覆盖层;而从广义的角度,CDN代表了一种基于质量与秩序的网络服务模式。简单地说,内容发布网(CDN)是一个经策略性部署的整体系统,包括分布式存储负载均衡、网络请求的重定向和内容管理4个要件,而内容管理和全局的网络流量管理(Traffic Management)是CDN的核心所在。通过用户就近性和服务器负载的判断,CDN确保内容以一种极为高效的方式为用户的请求提供服务。总的来说,内容服务基于缓存服务器,也称作代理缓存(Surrogate),它位于网络的边缘,距用户仅有“一跳”(Single Hop)之遥。同时,代理缓存是内容提供商源服务器(通常位于CDN服务提供商的数据中心)的一个透明镜像。这样的架构使得CDN服务提供商能够代表他们客户,即内容供应商,向最终用户提供尽可能好的体验,而这些用户是不能容忍请求响应时间有任何延迟的。据统计,采用CDN技术,能处理整个网站页面的 70%~95%的内容访问量,减轻服务器的压力,提升了网站的性能和可扩展性。

  与目前现有的内容发布模式相比较,CDN强调了网络在内容发布中的重要性。通过引入主动的内容管理层的和全局负载均衡,CDN从根本上区别于传统的内容发布模式。在传统的内容发布模式中,内容的发布由ICP的应用服务器完成,而网络只表现为一个透明的数据传输通道,这种透明性表现在网络的质量保证仅仅停留在数据包的层面,而不能根据内容对象的不同区分服务质量。此外,由于IP网的"尽力而为"的特性使得其质量保证是依靠在用户和应用服务器之间端到端地提供充分的、远大于实际所需的带宽通量来实现的。在这样的内容发布模式下,不仅大量宝贵的骨干带宽被占用,同时ICP的应用服务器的负载也变得非常重,而且不可预计。当发生一些热点事件和出现浪涌流量时,会产生局部热点效应,从而使应用服务器过载退出服务。这种基于中心的应用服务器的内容发布模式的另外一个缺陷在于个性化服务的缺失和对宽带服务价值链的扭曲,内容提供商承担了他们不该干也干不好的内容发布服务。

  纵观整个宽带服务的价值链,内容提供商和用户位于整个价值链的两端,中间依靠网络服务提供商将其串接起来。随着互联网工业的成熟和商业模式的变革,在这条价值链上的角色越来越多也越来越细分。比如内容/应用的运营商、托管服务提供商、骨干网络服务提供商、接入服务提供商等等。在这一条价值链上的每一个角色都要分工合作、各司其职才能为客户提供良好的服务,从而带来多赢的局面。从内容与网络的结合模式上看,内容的发布已经走过了ICP的内容(应用)服务器和IDC这两个阶段。IDC的热潮也催生了托管服务提供商这一角色。但是,IDC并不能解决内容的有效发布问题。内容位于网络的中心并不能解决骨干带宽的占用和建立IP网络上的流量秩序。因此将内容推到网络的边缘,为用户提供就近性的边缘服务,从而保证服务的质量和整个网络上的访问秩序就成了一种显而易见的选择。而这就是内容发布网(CDN)服务模式。CDN的建立解决了困扰内容运营商的内容"集中与分散"的两难选择。无疑对于构建良好的互联网价值链是有价值的,也是不可或缺的。

  内容分发网络(CDN)目前已经在全球互联网上广泛部署和使用,应用范围覆盖了政府网站、新闻媒体网站、电子商务网站、跨国公司企业网等各领域。近年来,我国CDN服务市场也逐渐进入快速发展阶段,CDN在我国互联网产业中的重要地位日益突出。

  为促进中国互联网CDN服务市场规范健康发展,TC1于2010年4月19日成立了“互联网CDN技术与服务标准项目组”。该项目组由工业和信息化部电信研究院、Akamai、世纪互联、蓝汛、高明网络、华为、中兴、中国电信、UT斯达康、网宿科技、中科院声学所、神州坤达、中国互联网协会(排名不分先后)等13家单位联合发起成立。

  “互联网CDN技术与服务标准项目组”将紧密结合中国CDN产业发展实际的需求,广泛开展CDN技术交流,联合制定技术与服务标准,共同推动技术创新,提升CDN服务的规范化水平,推动这一新兴产业的健康发展。

  项目组在成立暨第一次工作会议上对《互联网内容分发网络 定义与基本指标》的制定进行了讨论,形成了标准草案,并将于近期提交中国通信标准化协会审查,计划2010年底完成起草。

  《互联网内容分发网络 定义与基本指标》是该组成立后启动的第一个CDN服务标准项目,也是中国首部专门针对互联网CDN服务设立的技术标准。随着CDN的广泛应用,CDN的服务质量成为客户关心的关键因素。而业界对CDN的概念缺乏统一认识,缺乏统一的标准来衡量CDN的服务质量,这对CDN市场健康发展带来很大困扰,不利于CDN服务商之间的公平竞争,也不利于市场监管的实施。该标准的制定对中国CDN服务市场的健康发展具有重要的意义。

CDN技术起源

  随着互联网的发展,及各类INTERNET应用服务的出现,用户对网络访问速度的要求逐步提高。 CDN概念的提出是从1998年开始。当时美国麻省理工大学(MIT)的一批研究生通过分析Internet网络状况,提出 了一套能够实现用户就近访问的解决方案,最终设计并实现了其独有的系统,在此基础上于2000年建立了世界第一家提供商用CDN服务网的专业技术公司-- AKAIMA。Akamai致力于通过智能化的互联网分发(CDN)结束"World Wide Wait"(世界一起等待)的尴尬局面。公司1999年开始提供商业服务,并宣布世界上网络流量最大的互联网公司雅虎成为自己的合同客户。

  该公司的网络遍布世界各地,目前共有超过20,000台各类服务器分布在66个国家的100多个网络中,为诸如MS、YAHOO!、CNN.COM等世界级著名公司提供CDN服务。

  CDN(Content Delivery Network),即内容分发网络,是构筑在现有的Internet上的一种先进的流量分配网络。该网络将网站原服务器中的内容存储到分布于各地的缓存服务器 (Cache Server)中,通过网络的动态流量分配控制器,将用户请求自动指向到健康可用并且距离用户最近缓存服务器上,以提高用户访问的响应速度和服务的可用 性,改善Internet上的服务质量。由于内容分布网络可以有效地提高网络资源的利用效率,在提高ISP的广域网带宽利用率的同时提高用户的访问速度, 增加网站的服务可用性和抵抗黑客攻击的能力,因此受到广泛的重视,是一个正在兴起的并高速发展的技术产业。

  在互联网结构中,CDN位于网络层之上应用层之下,其目的就是减少网络中冗余数据的重复传输,使之最小化,将广域传输转为本地或就近访问。互联网上传递的内容,大部分为重复的Web/FTP数据。通过缓存服务器及应用缓存技术的网络设备,可大大优化数据链路性能,消除数据峰值访问造成的结点设备阻塞。

CDN技术原理

  传统的未加缓存服务的访问过程是:

99226.png

  由上图可见,传统的网站访问过程为:

  1. 用户在浏览器中输入要访问的域名;

  2. 浏览器向域名解析服务器发出解析请求,获得此域名对应的IP地址;

  3. 浏览器利用所得到的IP地址,向该IP对应的服务器发出访问请求;

  4. 服务器对此响应,将数据回传至用户浏览器端显示出来。

  与传统访问方式不同,CDN网络则是在用户和服务器之间增加Cache层,将用户的访问请求引导到Cache节点而不是服务器源站点,要实现这一目的,主要是通过接管DNS实现,下图为使用CDN缓存后的网站访问过程:

99225.png

  由上图可见,使用CDN缓存后的网站访问过程演变为:

  1. 用户在浏览器中输入要访问的域名;

  2. 浏览器向域名解析服务器发出解析请求,由于CDN对域名解析过程进行了调整,所以用户端一般得到的是该域名对应的CNAME记录,此时浏览器需要再次对获得的CNAME域名进行解析才能得到缓存服务器实际的IP地址。

  注:在此过程中,全局负载均衡DNS解析服务器会根据用户端的源IP地址,如地理位置(深圳还是上海)、接入网类型(电信还是网通)将用户的访问请求定位到离用户路由最短、位置最近、负载最轻的Cache节点(缓存服务器)上,实现就近定位。定位优先原则可按位置、可按路由、也可按负载等。

  3. 再次解析后浏览器得到该域名CDN缓存服务器的实际IP地址,向缓存服务器发出访问请求;

  4. 缓存服务器根据浏览器提供的域名,通过Cache内部专用DNS解析得到此域名源服务器的真实IP地址,再由缓存服务器向此真实IP地址提交访问请求;

  5. 缓存服务器从真实IP地址得到内容后,一方面在本地进行保存,以备以后使用,同时把得到的数据发送到客户端浏览器,完成访问的响应过程;

  6. 用户端得到由缓存服务器传回的数据后显示出来,至此完成整个域名访问过程。

  通过以上分析可以看到,不论是否使用CDN网络,普通用户客户端设置不需做任何改变,直接使用被加速网站原有域名访问即可。对于要加速的网站,只需修改整个访问过程中的域名解析部分,便能实现透明的网络加速服务。

  通过以上的分析我们可以得到,为了实现既要对普通用户透明(即加入缓存以后用户客户端无需进行任何设置,直接使用被加速网站原有的域名即可访问),又要在为指定的网站提供加速服务的同时降低对ICP的影响,只要修改整个访问过程中的域名解析部分,以实现透明的加速服务,下面是CDN网络实现的具体操作过程。

  1)作为ICP,只需要把域名解释权交给CDN运营商,其他方面不需要进行任何的修改;操作时,ICP修改自己域名的解析记录,一般用 cname方式指向CDN网络Cache服务器的地址。

  2)作为CDN运营商,首先需要为ICP的域名提供公开的解析,为了实现sortlist,一般是把ICP的域名解释结果指向一个CNAME 记录;

  3)当需要进行sorlist时,CDN运营商可以利用DNS对CNAME指向的域名解析过程进行特殊处理,使DNS服务器在接收到客户端请求时可以根据客户端的IP地址,返回相同域名的不同IP地址;

  4)由于从cname获得的IP地址,并且带有hostname信息,请求到达Cache之后,Cache必须知道源服务器的IP地址,所以在CDN运营商内部维护一个内部DNS服务器,用于解释用户所访问的域名的真实IP地址;

  5)在维护内部DNS服务器时,还需要维护一台授权服务器,控制哪些域名可以进行缓存,而哪些又不进行缓存,以免发生开放代理的情况。

CDN的四大关键技术

  随着宽带网络和宽带流媒体应用的兴起,CDN(通常被称为内容分发网络Content distribution network,有时也被称作内容传递网络Contentdeliverynetwork)作为一种提高网络内容,特别是提高流媒体内容传输的服务质量、节省骨干网络带宽的技术,在国内外得到越来越广泛的应用。

  CDN的关键技术主要有内容路由技术、内容分发技术、内容存储技术、内容管理技术等。

内容路由技术

  CDN负载均衡系统实现CDN的内容路由功能。它的作用是将用户的请求导向整个CDN网络中的最佳节点。最佳节点的选定可以根据多种策略,例如距离最近、节点负载最轻等。负载均衡系统是整个CDN的核心,负载均衡的准确性和效率直接决定了整个CDN的效率和性能。

  通常负载均衡可以分为两个层次:全局负载均衡(GSLB)和本地负载均衡(SLB)。全局负载均衡(GSLB)主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。本地负载均衡一般局限于一定的区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务,因此,CDN节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要依据。

  负载均衡可以通过多种方法实现,主要的方法包括DNS、应用层重定向、传输层重定向等等。

  对于全局负载均衡而言,为了执行就近性判断,通常可以采用两种方式,一种是静态的配置,例如根据静态的IP地址配置表进行IP地址到CDN节点的映射。另一种方式是动态的检测,例如实时地让CDN节点探测到目标IP的距离(可以采用RRT,Hops作为度量单位),然后比较探测结果进行负载均衡。当然,静态和动态的方式也可以综合起来使用。

  对于本地负载均衡而言,为了执行有效的决策,需要实时地获取Cache设备的运行状态。获取的方法一般有两种,一种是主动探测,一种是协议交互。主动探测针对SLB设备和Cache设备没有协议交互接口的情况,通过ping等命令主动发起探测,根据返回结果分析状态。另一种是协议交互,即SLB和Cache根据事先定义好的协议实时交换运行状态信息,以便进行负载均衡。比较而言,协议交互比探测方式要准确可靠,但是目前尚没有标准的协议,各厂家的实现一般仅是私有协议,互通比较困难。

内容分发技术

  内容分发包含从内容源到CDN边缘的Cache的过程。从实现上看,有两种主流的内容分发技术:PUSH和PULL.

  PUSH是一种主动分发的技术。通常,PUSH由内容管理系统发起,将内容从源或者中心媒体资源库分发到各边缘的Cache节点。分发的协议可以采用HTTP/FTP等。通过PUSH分发的内容一般是比较热点的内容,这些内容通过PUSH方式预分发(Preload)到边缘Cache,可以实现有针对的内容提供。对于PUSH分发需要考虑的主要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发可以由CP(内容提供商)或者CDN内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分发。它根据用户访问的统计信息,以及预定义的内容分发的规则,确定内容分发的过程。

  PULL是一种被动的分发技术,PULL分发通常由用户请求驱动。当用户请求的内容在本地的边缘Cache上不存在(未命中)时,Cache启动PULL方法从内容源或者其他CDN节点实时获取内容。在PULL方式下,内容的分发是按需的。

  在实际的CDN系统中,一般两种分发方式都支持,但是根据内容的类型和业务模式的不同,在选择主要的内容分发方式时会有所不同。通常,PUSH的方式适合内容访问比较集中的情况,如热点的影视流媒体内容;PULL方式比较适合内容访问分散的情况。

  在内容分发的过程中,对于Cache设备而言,关键的是需要建立内容源URL、内容发布的URL、用户访问的URL,以及内容在Cache中存储的位置之间的映射关系。

内容存储技术

  对于CDN系统而言,需要考虑两个方面的内容存储问题。一个是内容源的存储,一个是内容在Cache节点中的存储。

  对于内容源的存储,由于内容的规模比较大(通常可以达到几个甚至几十个TB),而且内容的吞吐量较大,因此,通常采用海量存储架构。如NAS和SON.

  对于在Cache节点中的存储,是Cache设计的一个关键问题。需要考虑的因素包括功能和性能两个方面:在功能上包括对各种内容格式的支持、对部分缓存的支持,在性能上包括支持的容量、多文件吞吐率、可靠性、稳定性。

  其中,多种内容格式的支持要求存储系统根据不同文件格式的读写特点进行优化,以提高文件内容读写的效率,特别是对流媒体文件的读写。

  部分缓存能力指流媒体内容可以以不完整的方式存储和读取。部分缓存的需求来自用户访问行为的随机性,因为许多用户并不会完整地收看整个流媒体节目,事实上,许多用户访问单个流媒体节目的时间不超过10分钟。因此,部分缓存能力能够大大提高存储空间的利用率,并有效地提高用户请求的响应时间。但是部分缓存可能导致内容出现碎片问题,需要进行良好的设计和控制。

  Cache存储的另一个重要因素是存储的可靠性,目前,多数存储系统都采用了RAID技术进行可靠存储。但是不同设备使用的RAID方式各有不同。

内容管理技术

  内容管理在广义上涵盖了从内容的发布、注入、分发、调整、传递等一系列过程。在这里,内容管理重点强调内容进入Cache点后的内容管理,我们称为本地内容管理。

  本地内容管理主要针对一个CDN节点(由多个CDN Cache设备和一个SLB设备构成)进行。本地内容管理的主要目标是提高内容服务的效率,提高本地节点的存储利用率。通过本地内容管理,可以在CDN节点实现基于内容感知的调度,通过内容感知的调度,可以避免将用户重定向到没有该内容的Cache设备上,从而提高负载均衡的效率。通过本地内容管理还可以有效地实现在CDN节点内容的存储共享,提高存储空间的利用率。

  在实现上,本地内容管理主要包括如下几个方面。

  一是本地内容索引。本地内容管理首先依赖于对本地内容的了解。包括每个Cache设备上内容的名称、URL、更新时间、内容信息等。本地内容索引是实现基于内容感知的调度的关键。

  二是本地内容拷贝。通常,为了提高存储效率,同一个内容在一个CDN节点中仅存储一份,即仅存储在某个特定的Cache上。但是一旦对该内容的访问超过该Cache的服务提供能力,就需要在本地(而不是通过PUSL的方式)实现内容的分发。这样可以大大提高效率。

  三是本地内容访问状态信息收集。搜集各个Cache设备上各个内容访问的统计信息,Cache设备的可用服务提供能力及内容变化的情况。

  可以看出,通过本地内容管理,可以将内容的管理从原来的Cache设备一级,提高到CDN节点一级,从而大大增加了CDN的可扩展性和综合能力。

  综上所述,CDN作为一种支持大规模高质量的流媒体服务的关键技术,目前已经基本成熟,具备了广泛应用的能力。

CDN的技术手段

  实现CDN的主要技术手段是高速缓存、镜像服务器。可工作于DNS解析或HTTP重定向两种方式,通过Cache服务器,或异地的镜像站点 完成内容的传送与同步更新。DNS方式用户位置判断准确率大于85%,HTTP方式准确率为99%以上;一般情况,各Cache服务器群的用户访问流入数据量与Cache服务器到原始网站取内容的数据量之比在2:1到3:1之间,即分担50%到70%的到原始网站重复访问数据量(主要是图片,流媒体文件等内容);对于镜像,除数据同步的流量,其余均在本地完成,不访问原始服务器。

  镜像站点(Mirror Site)服务器是我们经常可以看到的,它让内容直截了当地进行分布,适用于静态和准动态的数据同步。但是购买和维护新服务器的费用较高,另外还必须在各个地区设置镜像服务器,配备专业技术人员进行管理与维护。大型网站在随时更新各地服务器的同时,对带宽的需求也会显著增加,因此一般的互联网公司不会建立太多的镜像服务器。

  高速缓存手段的成本较低,适用于静态内容。Internet的统计表明,超过80%的用户经常访问的是20%的网站的内容,在这个规律下,缓存服务器可以处理大部分客户的静态请求,而原始的WWW服务器只需处理约20%左右的非缓存请求和动态请求,于是大大加快了客户请求的响应时间,并降低了原始WWW服务器的负载。根据美国IDC公司的调查,作为CDN的一项重要指标-缓存的市场正在以每年近100%的速度增长,全球的营业额在2004年将达到45亿美元。网络流媒体的发展还将剌激这个市场的需求。

CDN的网络架构

  CDN网络架构主要由两大部分,分为中心和边缘两部分,中心指CDN网管中心和DNS重定向解析中心,负责全局负载均衡,设备系统安装在管理中心机房,边缘主要指异地节点,CDN分发的载体,主要由Cache和负载均衡器等组成。

  当用户访问加入CDN服务的网站时,域名解析请求将最终交给全局负载均衡DNS进行处理。全局负载均衡DNS通过一组预先定义好的策略,将当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还与分布在世界各地的所有CDNC节点保持通信,搜集各节点的通信状态,确保不将用户的请求分配到不可用的CDN节点上,实际上是通过DNS做全局负载均衡。

  对于普通的Internet用户来讲,每个CDN节点就相当于一个放置在它周围的WEB。通过全局负载均衡DNS的控制,用户的请求被透明地指向离他最近的节点,节点中CDN服务器会像网站的原始服务器一样,响应用户的请求。由于它离用户更近,因而响应时间必然更快。

  每个CDN节点由两部分组成:负载均衡设备和高速缓存服务器

  负载均衡设备负责每个节点中各个Cache的负载均衡,保证节点的工作效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与全局负载DNS的通信,实现整个系统的负载均衡。

  高速缓存服务器(Cache)负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。

  CDN的管理系统是整个系统能够正常运转的保证。它不仅能对系统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。

  理论上,最简单的CDN网络有一个负责全局负载均衡的DNS和各节点一台Cache,即可运行。DNS支持根据用户源IP地址解析不同的IP,实现就近访问。为了保证高可用性等,需要监视各节点的流量、健康状况等。一个节点的单台Cache承载数量不够时,才需要多台Cache,多台Cache 同时工作,才需要负载均衡器,使Cache群协同工作。

为什么要使用CDN技术

  为什么要使用CDN技术呢,原因有以下几条:

  (1)飞速发展的互联网 2012年7月19日,中国互联网络信息中心(CNNIC)在京发布《第30次中国互联网络发展状况统计报告》(下称《报告》)。《报告》显示,截至2012年6月底,中国网民数量达到5.38亿,互联网普及率为39.9%。

  (2)越来越丰富的内容 类型多样的互联网内容对网络内容传输的要求越来越高。影视音乐在线视听、网络游戏、海量新闻资讯满足了广大网民生活工作娱乐的信息需求;视频分享、博客、维基百科、论坛、RSS内容定制等WEB2.0概念的空前火爆,让广大网民参与了整个互联网内容的繁荣;在线购物、企业ERP系统应用、网络广告等无处不在的网络营销手段,令企业看到了互联网应用的效益增长点。报告显示:即时通信、搜索引擎和电子邮件是网民经常使用的三大互联网基础应用,使用率分别为77.2%,69.2%,62.6%

  (3)网站及应用必须重视的客户体验 以在线购物为例,糟糕的图像品质,及不尽人意的网页下载速度,是64%的被调查者没有完成在线购物全程的原因;而接近50%的互联网使用者由于页面下载速度过慢或网站中网页速度不稳定,终于停止访问曾经推崇的网站;高效率的网络内容传输是高质量客户体验的基础。

CDN技术优势具有独特的优势

  (1)提高网站的访问速度和访问质量 CDN大大提高了用户的访问速度和访问质量,同时可以避免源站因访问量过大而造成的服务器负载过量与带宽资源不足等问题。

  (2)使用方便 使用CDN服务,对于互联网用户的访问是完全透明的,网站方面的切换过程简单易行,操作方便。

  (3)提高了冗错能力 由于网络中有健康检测和众多的站点,一个节点有故障时,用户的请求会被自动解析到其它健康相对较近的节点上,始终保证内容可以被访问到。

  (4)网络覆盖全 利用CDN服务提供商的众多的CDN节点,保证在世界各地不同地区和不同网络中的用户都能得到良好的访问质量。

  (5)强大的安全保障机制 可以有效地屏蔽黑客入侵和各种D.D.o.S攻击对网站的影响,保证较好的服务质量。

  (6)降低成本 有别于传统的网站架设镜像服务站点的方式,网站无需投资昂贵的各类服务器、租用各地运营商地网络带宽,设立分站点。CDN可以大大降低网站的建设和运维成本。

  CDN解决由于互联不互通、网络带宽小、用户访问量大、网点分布不均、源服务器负载太重、DDOS攻击、流量突发等问题带来的影响,提高用户访问网站的响应速度。

CDN示例

  商业化的CDN网络是用于服务性质的,高可用性等要求非常高,有专业产品和CDN网络解决方案,本文主要从理论角度,理解CDN的实现过程,并利用已有网络环境和开源软件做实际配置,更深刻理解CDN的具体工作过程。

  Linux 是开放源代码的免费操作系统,已经成功应用于许多关键领域。Bind是Unix/FreeBSD/Linux等类unix平台上非常有名DNS服务程序,Internet上超过60%的DNS运行的是bind。Bind的最新版本是9.x,用的比较多的是8.x,bind 9有很多新特性,其中一项是根据用户端源地址对同一域名解析不同的IP地址,有了这种特性,能把用户对同一域名的访问,引导到不同地域节点的服务器上去访问。Squid是Linux等操作系统上有名的Cache引擎,与商业Cache引擎相比,Squid的性能比较低,基本功能工作原理与商业Cache产品是一致的,作为试验,是非常容易配置运行起来。以下简要介绍CDN的配置流程。

  1、要加入CDN服务的网站,需要域名(如www.linuxaid.com.cn, 地址202.99.11.120)解析权提供给CDN运营商,Linuxaid的域名解析记录只要把www主机的A记录改为CNAME并指向 cache.cdn.com即可。cache.cdn.com是CDN网络自定义的缓存服务器的标识。在/var/named/linuxaid.com.cn域名解析记录中,由:

99224.jpg

  2、CDN运营商得到域名解析权以后,得到域名的CNAME记录,指向CDN网络属下缓存服务器的域名,如cache.cdn.com,CDN 网络的全局负载均衡DNS,需要把CNAME记录根据策略解析出IP地址,一般是给出就近访问的Cache地址。

  Bind 9的基本功能可以根据不同的源IP地址段解析对应的IP,实现根据地域就近访问的负载均衡,一般可以通过Bind 9的sortlist选项实现根据用户端IP地址返回最近的节点IP地址,具体的过程为:

  1)为cache.cdn.com设置多个A记录,/var/named/cdn.com 的内容如下:

99223.jpg

  2) /etc/named.conf中的内容为:

99222.jpg

  3、Cache在CDN网络中如果工作在服务器加速模式,因为配置里已经写明加速服务器的url,所以Cache直接匹配用户请求,到源服务器获得内容并缓存供下次使用;如果Cache工作在客户端加速模式,Cache需要知道源服务器的IP地址,所以CDN网络维护和运行一个供Cache使用的DNS服务器,解析域名的真实IP地址,如202.99.11.120 ,各域名的解析记录与未加入CDN网络之前一样。

  4、工作在CDN网络中缓存服务器必须工作在透明方式,对于Squid来说,需要设置以下参数:

99221.jpg

CDN新应用和客户

  目前的CDN服务主要应用于证券、金融保险、ISP、ICP、网上交易、门户网站、大中型公司、网络教学等领域。另外在行业专网、互联网中都可以用到,甚至可以对局域网进行网络优化。利用CDN,这些网站无需投资昂贵的各类服务器、设立分站点,特别是流媒体信息的广泛应用、远程教学课件等消耗带宽资源多的媒体信息,应用CDN网络,把内容复制到网络的最边缘,使内容请求点和交付点之间的距离缩至最小,从而促进Web站点性能的提高,具有重要的意义。CDN网络的建设主要有企业建设的CDN网络,为企业服务;IDC的CDN网络,主要服务于IDC和增值服务;网络运营上主建的CDN网络,主要提供内容推送服务;CDN网络服务商,专门建设的CDN用于做服务,用户通过与CDN机构进行合作,CDN负责信息传递工作,保证信息正常传输,维护传送网络,而网站只需要内容维护,不再需要考虑流量问题。

  CDN能够为网络的快速、安全、稳定、可扩展等方面提供保障。

  IDC建立CDN网络,IDC运营商一般需要有分部各地的多个IDC中心,服务对象是托管在IDC中心的客户,利用现有的网络资源,投资较少,容易建设。例如某IDC全国有10个机房,加入IDC的CDN网络,托管在一个节点的Web服务器,相当于有了10个镜像服务器,就近供客户访问。宽带城域网,域内网络速度很快,出城带宽一般就会瓶颈,为了体现城域网的高速体验,解决方案就是将Internet网上内容高速缓存到本地,将Cache部署在城域网各POP点上,这样形成高效有序的网络,用户仅一跳就能访问大部分的内容,这也是一种加速所有网站CDN的应用。