CDN缓存系统软件使用说明_第1页
CDN缓存系统软件使用说明_第2页
CDN缓存系统软件使用说明_第3页
CDN缓存系统软件使用说明_第4页
CDN缓存系统软件使用说明_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、简介CDN 缓存系统是公有云与终端用户之间的内容传输通道,它通过标准的 API 接口 与各大公有云系统实现对接,将云里的内容和应用快速、安全地分发到终端用户手中。 它可以实现系统内部流量的分配和调度,确保内容传输的高效、快速、安全。CDN 缓存系统将传输的内容及应用分为静态和动态两类 : 对于静态内容,如文字、 图片等,采用传统的 CDN 缓存方式, 将内容分发到离用户最近的地方; 对于动态内容, 如注册、登陆、搜索等,通过协议优化、文件压缩等技术手段,打造一条快速、安全、 稳定的通道,让用户快速的获取内容。CDN 服务对网站的作用是什么? 使网站的用户享受到高品质的服务网站的服务更安全网站建

2、设更简单,可以采用更 灵活的方式进行扩容从容应付各种突发访问量的冲击 ;CDN 技术用于虚拟主机的开发与 应用,是现行解决网络宽带拥挤、网站响应速度慢、南北网络互连互通问题最有效的方 法: (1)解决网站高流量、大并发的问题。我们知道,任何一个物理设备,其负载都有一 个极限。为了应对访问量突增,使用 CDN 服务是一个好的系统扩容方案。 (2)解决南北互联问题。我国的网络是划江而治的格局,因为利益之争,各网络服务 商之间并不是通力协作,而是采取各种手段相互限制。这就导致各网之间的互联互通存 在很大的问题,具体表现为:电信的用户访问放置在网通机房的服务器,响应时间特别 长,反之亦然。使用 CDN

3、 技术,可以让电信的用户访问电信的内容缓存服务器,网通 的用户访问网通的内容缓存服务器。通过这样一种策略,绕开了网络运营商之间人为设 置的障碍。(3 )访问加速。 CDN 采用缓存技术,把访问对象缓存起来,有的技术甚至能把对象缓 存到内存(如 Varnish ),这在效果上表现出来的即是访问加速。(4 )降低总体运营成本。使用 CDN 运营方案,把源站放在 BGP 机房,而把缓存服务 器放置在带宽费用较低的其他地方。因为 CDN 的大部分流量被转移到缓存服务器上, 源站只有较小的访问请求,因此总体运营成本大幅降低。(5)提高网站的可用性。源站的访问量变得很小,这意味着源站系统有更低的负载, 更

4、低的磁盘 I/O ,防故障的几率大大降低。对于缓存服务器,多个服务器做成集群,保 证了整个系统的高可用。CDN 服务与镜像站点的区别是什么?CDN 对用户完全透明,不需要用户手动选择需要访问的镜像站点;CDN 对节点有健康性检查,而镜像则没有,因此 CDN 可用性更高;CDN 的内容同步机制不需要人工的干预,而镜像站点需要一套复杂的系统来实现内容 同步;镜像站点的系统复杂,维护工作量大,对运维工作有很大的压力;CDN 部署便捷,几乎不需要对原有的站点做什么改动,很短的时间内就可以采用并产 生显著的效果;CDN 节点分布范围广,镜像站点很难做到同样的覆盖范围。哪些内容适合用 CDN 技术进行加速

5、?网站中所有的静态网页、图片等静态内容非常适合用 CDN 技术进行加速以外,很 多以动态方式制作的页面其实也是可以通过 CDN 进行加速的。这些内容主要是指通过 JSP/PHP 等数据库查询程序生成的页面,但同一个 URL 对不同用户看到的内容都是一 样的。这样的情况下, Cache 可以缓存下这个 URL 及相应的内容,就象是一个标准的 URL 一样,即使这个 URL 后面有?号,跟了很多查询条件都没有关系。网站中象这样 的准静态内容在采用 CDN 加速之后,同样能起到很好的效果。对于准静态内容如何来实现 cache ?对于准静态内容,主要是指通过 JSP/PHP 等数据库查询程序生成的页面

6、,但同一 个 URL 对不同用户看到的内容都是一样的。这样的情况下, Cache 可以缓存下这个 URL 及相应的内容,就象是一个标准的 URL 一样,即使这个 URL 后面有?号,跟了 很多查询条件都没有关系。对于这类内容最需要考虑的是刷新时间,对频繁更新的,我 们可以设置成 10 分钟或更短,对于更新较少的可以相应延长刷新时间。设置刷新时间 可以按目录来设置,也可以按具体 URL 来设置,或按某个关键字段来设置,非常灵活。 对准静态内容使用 CDN 后,可以明显地降低数据的压力,同时提高页面响应速度,效 果是非常明显的。CDN 业务应用浅析 如何缓解网络拥塞,提高用户获取信息的速度,成为困

7、扰众多企业和服务商的一大 难题。 CDN 即内容分发网络( Content Delievery Network ),它可以认为是建立在现 有 IP 网络基础结构之上的一种增值网络。 CDN 技术将多点负载均衡、 镜像与 Cache 技 术结合起来,利用智能分配技术,将网站内容根据来访用户的地点,按照就近访问的原 则分配到多个节点。CDN 业务特点与优势 :(1 )CDN 业务具有如下特点:根据用户的地理位置和连接带宽,让用户连接到最近的 服务器上去,访问速度快;全局负载平衡,提高网络资源的利用率,提高网络服务的性能与质量;热点内容主动 push ,自动跟踪,自动更新;网络具有高可靠及可用性,能

8、 容错且很容易扩展;并无缝地集成到原有网络和站点上去。(2 )CDN 业务优势体现在以下几个方面:可减少消耗的网络带宽,减少网络访问的延 迟和用户响应时间,增加了网络性能和网站内容的可用性;提高 Web 资源的管理控制 能力,智能分配路由和进行流量管理;发送的内容受到保护,未授权的用户不能修改; 内容提供商可在本地自己决定服务的内容,内容提供商在降低成本的同时,提高了服务 质量;可线性、平滑地增加新的设备,保护原有投资。CDN 的四大关键技术简介随着宽带网络和宽带流媒体应用的兴起, CDN( 通常被称为内容分发网络 Content distribution network ,有时也被称作内容传

9、递网络 Contentdeliverynetwork) 作为一 种提高网络内容,特别是提高流媒体内容传输的服务质量、节省骨干网络带宽的技术, 在国内外得到越来越广泛的应用。CDN 的关键技术主要有内容路由技术、 内容分发技术、 内容存储技术、 内容管理技 术等。(1)内容路由技术CDN 负载均衡系统实现 CDN 的内容路由功能。 它的作用是将用户的请求导向整个 CDN 网络中的最佳节点。 最佳节点的选定可以根据多种策略, 例如距离最近、 节点负载 最轻等。负载均衡系统是整个 CDN 的核心,负载均衡的准确性和效率直接决定了整个 CDN 的效率和性能。通常负载均衡可以分为两个层次 :全局负载均衡

10、 (GSLB)和本地负载均衡 (SLB)。全局 负载均衡 (GSLB)主要的目的是在整个网络范围内将用户的请求定向到最近的节点(或者区域)。因此,就近性判断是全局负载均衡的主要功能。本地负载均衡一般局限于一定的 区域范围内,其目标是在特定的区域范围内寻找一台最适合的节点提供服务, 因此,CDN 节点的健康性、负载情况、支持的媒体格式等运行状态是本地负载均衡进行决策的主要 依据负载均衡可以通过多种方法实现, 主要的方法包括 DNS 、应用层重定向、传输层重 定向等等。对于全局负载均衡而言,为了执行就近性判断,通常可以采用两种方式,一种是静 态的配置,例如根据静态的 IP 地址配置表进行 IP 地

11、址到 CDN 节点的映射。另一种方 式是动态的检测,例如实时地让 CDN 节点探测到目标 IP 的距离(可以采用 RRT,Hops 作为度量单位 ),然后比较探测结果进行负载均衡。当然,静态和动态的方式也可以综合 起来使用。对于本地负载均衡而言, 为了执行有效的决策, 需要实时地获取 Cache 设备的运行 状态。获取的方法一般有两种,一种是主动探测,一种是协议交互。主动探测针对 SLB 设备和 Cache 设备没有协议交互接口的情况,通过 ping 等命令主动发起探测,根据返 回结果分析状态。另一种是协议交互,即 SLB 和 Cache 根据事先定义好的协议实时交 换运行状态信息,以便进行负

12、载均衡。比较而言,协议交互比探测方式要准确可靠,但 是目前尚没有标准的协议,各厂家的实现一般仅是私有协议,互通比较困难。 (2)内容分发技术内容分发包含从内容源到 CDN 边缘的 Cache 的过程。从实现上看,有两种主流的 内容分发技术 :PUSH 和 PULL。PUSH 是一种主动分发的技术。通常, PUSH 由内容管理系统发起,将内容从源或 者中心媒体资源库分发到各边缘的 Cache 节点。分发的协议可以采用 HTTP/FTP 等。 通过 PUSH 分发的内容一般是比较热点的内容,这些内容通过 PUSH 方式预分发 (Preload) 到边缘 Cache ,可以实现有针对的内容提供。对于

13、 PUSH 分发需要考虑的主 要问题是分发策略,即在什么时候分发什么内容。一般来说,内容分发可以由CP(内容提供商 )或者 CDN 内容管理员人工确定,也可以通过智能的方式决定,即所谓的智能分 发。它根据用户访问的统计信息, 以及预定义的内容分发的规则, 确定内容分发的过程。PULL 是一种被动的分发技术, PULL 分发通常由用户请求驱动。当用户请求的内容 在本地的边缘 Cache 上不存在 (未命中 )时, Cache 启动 PULL 方法从内容源或者其他 CDN 节点实时获取内容。在 PULL 方式下,内容的分发是按需的。在实际的 CDN 系统中,一般两种分发方式都支持,但是根据内容的类

14、型和业务模 式的不同,在选择主要的内容分发方式时会有所不同。通常, PUSH 的方式适合内容访 问比较集中的情况, 如热点的影视流媒体内容 ;PULL 方式比较适合内容访问分散的情况。 在内容分发的过程中,对于 Cache 设备而言,关键的是需要建立内容源 URL、内容发 布的 URL、用户访问的 URL ,以及内容在 Cache 中存储的位置之间的映射关系。当用户访问已经加入 CDN 服务的网站时,首先通过 CDN 公司的 3DNS 确定最接 近用户的最佳 CDN 节点,同时将用户的请求指向该节点。当用户的请求到达指定节点 时, CDN 的服务器负责将用户请求的内容提供给用户。用户访问的基本

15、流程如下:用户在自己的浏览器中输入要访问的网站的域名;浏览器向本地 DNS (域名解析系统)请求对该域名的解析;本地 DNS 将请求发到网站的主 DNS,主 DNS 再将域名解析请求转发到 3DNS ; 3DNS 根据一系列的策略确定当时最适当的 CDN 节点,并将解析的结果( IP 地址) 发给用户;用户向给定的 CDN 节点请求相应网站的内容;CDN 节点中的服务器负责响应用户的请求,提供所需的内容。一个典型 CDN 网络结构由以下五部分组成,如图所示内容缓存: 位于 POP 接入点或多点 IDC 中, 可缓存静态的 Web 内容和流媒体内容。 内容交换机 : 在 IDC 中,可对内容缓存

16、负载平衡及访问控制。内容路由器 : 在 POP 点或 IDC 中,负载为用户的请求选择最佳的访问站点。 内容分发系统 : 内容缓存只可缓存静态内容而对于一些要求对其所有分布站点的内容作 镜像的用户 ,我们需要一个内容镜像系统 ,这就是内容分发系统。CDN 管理系统: 由于 CDN 系统是提供给多个用户共享 ,所以需要一个中心管理系统作为CDN 的集中管理 。CDN 系统的关键构件 :一个完整的 CDN 网络主要由三个子系统组成。3DNS :3DNS 是 CDN 服务中的关键子系统。 当用户访问加入 CDN 服务的网站时, 域名解析请求将最终交给 3DNS 进行处理。 3DNS 通过一组预先定义

17、好的策略,将 当时最接近用户的节点地址提供给用户,使用户能够得到快速的服务。同时,它还 与分布在世界各地的所有 CDNC 节点保持通信,搜集各节点的通信状态,确保不将 用户的请求分配到不可用的 CDN 节点上。CDN 节点 :对于普通的 Internet 用户来讲,每个 CDN 节点就相当于一个放置在 它周围的 WEB。通过 3DNS 的控制, 用户的请求被透明地指向离他最近的节点, 节 点中 CDN 服务器会像网站的原始服务器一样, 响应用户的请求。 由于它离用户更近, 因而响应时间必然更快。 每个 CDN 节点由两部分组成:负载均衡设备和内容加速 服务器 。负载均衡设备负责每个节点中各个

18、Cache 的负载均衡,保证节点的工作 效率;同时,负载均衡设备还负责收集节点与周围环境的信息,保持与 3DNS 的通信,实现整个系统的负载均衡。 内容加速服务器( Cache )负责存储客户网站的大量信息,就像一个靠近用户的网站服务器一样响应本地用户的访问请求。CDN 管理系统 :CDN 的管理系统是整个系统能够正常运转的保证。它不仅能对系 统中的各个子系统和设备进行实时监控,对各种故障产生相应的告警,还可以实时 监测到系统中总的流量和各节点的流量,并保存在系统的数据库中,使网管人员能 够方便地进行进一步分析。通过完善的网管系统,用户可以对系统配置进行修改。CDN 系统的设计原则鉴于 CDN

19、 网络系统在整个网络系统中的重要性,网络系统设计必须既适应当前应 用考虑,又面向未来信息化发展需求。在设计网络技术方案时,应遵循以下设计原则:1、实用性和先进性 :采用先进成熟的技术满足当前的业务需求,兼顾其他相关的业务 需求,尽可能采用先进的网络技术以适应更高的数据、多媒体信息的传输需要,使整个 系统在一段时期内保持技术的先进,并具有良好的发展潜力,以适应未来业务的发展和 技术升级的需要。2、安全可靠性 :为保证将来的业务应用,网络必须具有高可靠性。要对网络结构、网 络设备、服务器设备等各个方面进行高可靠性的设计和建设。在采用硬件备份、冗余等 可靠性技术的基础上,采用相关的软件技术,提供较强

20、的管理机制、控制手段、事故监 控和网络安全保密等技术措施,提高网络系统的安全可靠性。3、灵活性与可扩展性 :网络系统是一个不断发展的系统,所以它必须具有良好的扩展 性。能够根据将来信息化的不断深入发展的需要,方便地扩展网络覆盖范围、扩大网络 容量和提高网络各层次节点的功能。具备支持多种通信媒体、多种物理接口的能力,提 供技术升级、设备更新的灵活性。4、开放性 /互连性 :具备与多种协议计算机通信网络互连互通的特性, 确保网络系统基 础设施的作用可以充分发挥。在结构上真正实现开放,基于国际开放式标准,包括各种 广域网、局域网、计算机及数据库协议,坚持全国统一规范的原则,从而为未来的业务发展奠定基

21、础5、经济性 /投资保护 :以较高的性能价格比构建网络系统, 使资金的产出投入比达到最 大值。能以较低的成本、较少的人员投入来维持系统运转,提供高效能与高效益。尽可 能保留并延长已有系统的投资,充分利用以往在资金与技术方面的投入。6、可管理性 :在 CDN 环境中 , 所有相关设备是分布在不同的地域的 ,所以对设备的远 程管理便非常重要。由于系统本身具有一定复杂性,随着业务的不断发展,网络管理的 任务必定会日益繁重。所以在网络的设计中,必须建立一个全面的网络管理解决方案。 网络设备必须采用智能化、可管理的设备,同时采用先进的网络管理软件,实现先进的 分布式管理。最终能够实现监控、监测整个网络的

22、运行状况,合理分配网络资源、动态配置网络负载,可以迅速确定网络故障等。在将来,随着新的多媒体业务模型的增长,内容分发技术与 CDN 将成为以高可靠 性的、可扩展的与安全的方式提供托管业务的关键,在保障网络的可访问性(速度、安全、完整性)方面发挥出更大的作用云分发部署源站 Web 服务既可以是Apache ,也可以是 Nginx 。基于性能和部署简单考虑, 选用 Nginx 做 Web 工具。安装 Nginx :(1)下载最新的稳定版到当前目录:wget /download/nginx-0.7.63.tar.gz(2)解包:tar zxvf nginx-0.7.63

23、.tar.gz(3)切换目录:cd nginx-0.7.63(4)检查是否存在:pcre rpm -qa | grep pcre(5)配置:./configure prefix=/usr/local/nginx(6 )编译、安装:make;make install 配置 Nginx根据前面的规划,需要把源站做成高可用的负载均衡环境,因此,需要在一个物理Web 上同时运行 3 个站点,然后由这 3 个 Web 组成 LVS 集群。对于单个的 Nginx 配 置文件,就是运行 3 个虚拟主机。为了方便以后的维护,采取配置文件分割的方式进行处理。即配置文件分主配置文 件和虚拟机配置文件。主配置文件

24、include 指令包含各个虚拟机配置文件。对应于 3 个 不同的站点,其配置文件的名称分别为 www.conf 、 dl.conf 和 images.conf 。 主配置文件 /usr/local/nginx/conf/nginx.conf (部分参数来源于小毛) 。 user www;worker_processes 10;error_log /data/logs/error.log; events worker_connections 10240;use kqueue;http include mime.types;default_type application/octet-strea

25、m; include vhosts/*.conf;log_format main '$remote_addr - $remote_user $time_local$request ''"$status"$body_bytes_sent"$http_referer"' '"$http_user_agent""$http_x_forwarded_for"' access_log /data/logs/access.logmain; sendfile on;userid_e

26、xpires max; tcp_nopush on; tcp_nodelay on;server_names_hash_bucket_size 256; client_header_buffer_size 256k; large_client_header_buffers 4 256k; client_max_body_size 20m; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; output_buffers 1 32k; postpone_output 1460; keepalive_timeout

27、60 10; gzip on;gzip_types text/plain text/html text/css application/x-javascript;虚拟主机配置文件,一共 3 个。在 /usr/local/nginx/conf 下创建目录 vhosts ,然后在 这个目录下创建 3 个虚拟机配置文件,其内容分别如下: 配置文件 www.conf :server listen 80 server_name ; index index.htm index.html;access_log /data/logs/nginx-access/www.log combined; 配置文件 im

28、ages.conf :server listen 80server_name ; index index.htm index.html; root /mnt/html/images; error_page404 /404.htm; autoindex_exact_size on;access_log /data/logs/nginx-access/images.log combined; 配置文件 dl.conf :server listen 80server_name ; index index.htm index.html; root /mnt/html/dl;error_page 404

29、 /404.htm; autoindex_exact_size on;access_log /data/logs/nginx-access/dl.log combined; 配置文件的根文档所在的目录 /mnt/html 为 NFS服务的挂接点,3 个物理服务器共 享该目录,这样做的好处是修改站点时只需登录任意一个服务器做更改,而不必额外做 同步操作。如果条件许可,使用分布式文件系统共享存储,将会得到更好的可用性和更 快的访问速度。上述文件都配置好以后,安装配置文件的设定创建好相关的目录,然后把相关的站点文件复制到各自的目录。接着运行 /usr/local/nginx/sbin/nginxt

30、检查一下语法,无误后再执行命令 /usr/local/nginx/sbin/nginx 启动 Nginx 。接着,我们在 Windows 客户端机器修改系统的 hosts 文件,把如下的行追加进文 件 hosts :00 00 00 保存文件以后,再用浏览器分别访问这 3 个站点,以检验配置的正确性。(1 )安装和配置其他两个服务器的 Nginx ,并逐个检查其正确性。因为 3 个服务器均 以共享方式挂接网站的目录,因此只需要安装和配置好 Nginx ,而不必再复制站点的内 容到本地文件系统。(2)部署负载均衡,具体过程参见“负

31、载均衡”一章。负载均衡被正确配置和启动以 后,我们再回来修改客户端 Windows 的系统 hosts 文件,使负载均衡的 VIP 与域名绑 定,然后再用浏览器访问 3 个域名,检查加入负载均衡环境后,各站点的运行情况。记 住这个 VIP(9 ),以后我们在缓存服务器上会使用它。缓存服务器的部署和运行安装 Varnish(1 )下载 Varnish 到本地目录:wget /varnish-1.1.2.tar.gz/download(2)解包:tar zxvf varnish-1.1.2.tar.gz(3)切换目录:cd varnish-1.1.2(4)配置,编译和安装:.

32、/configure prefix=/usr/local/varnishmake make install配置 VarnishVarnish 的配置分两部分:源站名称的解析和 Varnish 本身的配置文件。在我的应 用中,总共有 3 个站点需要缓存,因此需要解析出 3 个源站和配置 3 个站点的缓存。 (1 )源站地址解析 :这里我们再来回顾一下源站地址解析的作用:缓存服务器通过这 个机制来寻找源站在何处。在我们这个小规模的场景,用本地 hosts 绑定域名即可实现 源站地址解析,而在复杂的 CDN 环境,则需要使用专门的 DNS 服务器来完成这个工作 修改后的服务器的 /etc/hosts

33、 文件如: 9 9 9 修改保存后,用域名检查其网络连通性,如 ping 。(2)配置 Varnish : Varnish 解包以后,可在解包后的目录找到一个名为 default.vcl 的配置样例文件,参考这个样例文件,则能编写出符合我们实际需求的配置。这里,我 先列出完整的配置文件,然后再做一些说明。运行 Varnish与其他开源软件相比, Varnish 的启动确实很复杂。为了能正确运行 Varnish 并检 验其是否正常运行起来,建议以如下的步骤进行操作。(1 )检查/etc/hosts 文件是否正确。在本案中,可以在缓

34、存服务器 ping 等 3 个域名,检查地址解析是否正确、网络是否连通。(2 )检查 Varnish 配置文件的书写是否有遗漏或错误。一般最容易犯的错误是少写花 括号“ ”。(3 )创建缓存目录。为提高可靠性,我把缓存目录创建到其他分区。 Varnish 安装的目 录为 /usr/local/varnish ,则创建的目录为 /var/vcache 。注:/var 与/usr 是不同的分区。 (4)修改系统内核参数,以优化系统的性能。我的某个服务器的系统内核参数新增内 容如下(可选):net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_ti

35、me = 30 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1net.ipv4.ip_local_port_range = 5000 65000 net.ipv4.tcp_max_syn_backlog = 8192 dev_max_backlog = 1000 net.ipv4.tcp_max_tw_buckets = 50000 net.ipv4.ip_conntrack_max = 655360 filter.ip_conntrack_tcp_timeout_established = 180 net.ipv4.tcp_rmem

36、 = 4096 87380 524288 net.core.rmem_max = 1048576(5 )启动 Varnish 。内容实在太长,得写成好几行才行: /usr/local/varnish/sbin/varnishd -n /var/vcache -f /usr/local/ varnish/sery.vcl -a :80-s file,/var/vcache/varnish_cache.data,2047M -w 30000,51200,10 -T :3500 -p client_http11=on(6 )检验 Varnish 是否正常运行: 检查进

37、程,正常运行的 Varnish ,应该是两个进程。 检查目录 /var/vcache ,查看是否有 varnish_cache.data 等文件自动生成。 检查 TCP 80 端口,是否处于监听状态。 查看系统日志, 了解 Varnish 的启动状态。 如果有问题的话, 会 在 系 统 日 志 得 到 有 用 的 排 错 信 息 。 查 看 Varnish 缓 存 情 况 , /usr/local/varnish/bin/varnishstatn /var/vcache 。接下来,在其他缓存服务器上进行相同的操作,这里不再赘述。(1 )配置:请参看第 6 章“负载均衡”相关内容。(2 )检验

38、Varnish 集群服务(负载均衡集群的 VIP 是 20 )。(3 )在其他 Windows 主机修改 hosts 文件,新增如下几项:20 20 20 (4 )用此 Windows 主机的浏览器访问 20 。正常情况下,应该访 问不到任何页面( 404 错误)。(5 )用此 Windows 主机的浏览器分别访问 等 3 个域名,如果都能正常 访问到页面文件,则表明 Varnish 完全按照我们的意愿进行工作。(6)在其他的机房做同样的部署和操作。智能 DNS 的部署和运

39、行智能 DNS 的部署和运行分为:收集 IP 地址、部署 DNS 以及运行这几个部分。1收集 IP 地址:1 )收集的策略 :根据前边的设计,我们需要3 份地址列表,以对应电信、网通及教育网的用户。已经分配出去的 IP地址那么多, 我们应当怎样收集和归类呢?如果地址列 表过大,可能会严重影响 DNS 服务器的性能( Bind 将遍历一个很大的文件) 。另外, 可能有些 IP 地址即使收集上来了, 也不会有什么帮助,如普通 ADSL 拨号自动分配的 IP。 在整个 CDN 环节,由哪些组件来进行寻址呢?答案是用户使用的 DNS (自己在电脑里 指定的,称本地 DNS )和做 CDN 名称解析 D

40、NS 的这部分。 因此,只需要收集互联网 上 DNS 服务器的 IP 地址,就可以达到目的。 这样一来, 收集下来的数量就会大大降低。 为了更进一步缩小范围,一般使用网络地址的形式,却可以囊括很多 DNS 服务器。 (2)收集的方法: 网上查找。 利用 shell 脚本,从 apnic ( http:/www. )抓取。我在网上找了一个 shell 脚本 get_ip.sh ,稍微修改了一下,其内容如下:#!/bin/shFILE=/root/apnic/ip_apnicwget -O $FILEgrep 'apnic|CN|ipv4|' $FILE | cut -f 4,5

41、-d'|'|sed -e 's/|/ /g' | whileread ip cnt doecho $ip:$cntmask=$(cat << EOF | bc | tail -1 pow=32;define log2(x) if (x<=1) return (pow);pow-;return(log2(x/2); log2($cnt) EOF)echo $ip/$mask>> NETNAME= ' whois $ip | sed -e /./H;$!d; ' e x;/netnum/!d ' |grep ne

42、tname | awk print $2 ' |awk -F- print $1 'case $NETNAME inCNC)echo $ip/$mask >> UNICOMCNCGROUP| UNICOM)echo $ip/$mask >> UNICOMCHINATELECOM|CHINANET)echo $ip/$mask >> TELECOMCERNET)echo $ip/$mask >>EUD ;*)echo $ip/$mask >> OTHEResac done执行这个脚本,将在目录 /root/apnic 生

43、成 UNICOM 、TELECOM 等几个文件。其 中 UNICOM 代表新联通的 IP 地址段, TELECOM 代表电信的 IP 地址段。 购买 IP 地址段或者通过与 CDN 服务商合作获得 IP 地址列表或 API 接口。(3)IP 地址列表处理。通过上述方法收集来的 IP,把它们各自合并【注 1】、排序、删 除重复的,备用。处理好后的 IP 列表文件分别为: unicom_ip 、telecom_ip 、 edu_ip 。 2 DNS 服务器部署 :(1)选择 DNS 服务器操作系统系统和软件。 操作系统选择 CentOS 或 FreeBSD ,DNS 的软件则选择 Bind ,理由

44、如下: 开源软件,免费且能按要求定制;支持视图 View 。其 他 DNS 软件可能没有这个功能。(2)安装和初步配置 Bind 。具体可参见本书第 4 章“域名服务 DNS ”相关内容。(3)产生主从 DNS 同步所需的 TSIG KEY。共有 4个视图,因此需要执行 4次 TSIG KEY 生成操作。其操作步骤如下:DNSsec-keygen -a hmac-md5 -b 128 -n HOST uincom DNSsec-keygen -a hmac-md5 -b 128 -n HOSTtelecom DNSsec-keygen -a hmac-md5 -b 128 -nanyHOST

45、edu DNSsec-keygen -a hmac-md5 -b 128 -n HOST执行完毕后,将生成以下 8 个文件,如图所示:这些文件都是文本文件,可以用任何文本编辑器打开。通过对比文件对,将发现K*.key 与 K*.private 之间的对应关系 (正因为如此, 我把它们叫做文件对) 。在 Bind 的 主配置文件里,我们所需的 TSIG KEY 就从这些文件中得到。具体的取值就是打开每个K*.private ,复制第 3 行“ key:”后面的字符串。当然,从对应的 K*.key 文件取值也是 可以的,仅仅是字符串的位置不同而已。指出了 TSIG KEY 的出处最好在 named 配置文件

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论