《Cdn设计与技术实现》由会员分享,可在线阅读,更多相关《Cdn设计与技术实现(26页珍藏版)》请在金锄头文库上搜索。
1、Cdn设计与技术实现解决高并发访问的一种途径需求的产生o南北互联问题导致北方的用户访问电信网内的服务器十分缓慢和艰难,南方的用户访问网通网内的服务器也是如此o高并发、大流量的站点o访问加速常见的应用场景:一般用于静态对象o网站的页面加速o下载服务:类似杀毒软件有客户端自动更新机制的下载,更需要cdno视频:特别是在线播放类型,如FLV传统的访问模式o所以的客户端访问同一个对象 众矢之的众矢之的Cdn的访问模式o把用户请求分散Cdn定义-摘自http:/ Delivery Network,即内容分发网络,是位于网络层与应用层之间的网络应用,其目的是通过在现有的Internet中增加一层新的网络架
2、构,通过智能的中心管理系统,使用广泛分布的服务器群来帮助网站、媒体运营商等满足用户的各类需求。 Cdn原理o内容缓存到不同地区的缓存服务器o就近访问原则oDns视图(view)区分用户的访问来源Cdn实现的技术o关键技术 (1) dns视图(view):bind (2)内容缓存:squido辅助技术 (1)负载均衡:lvs+keepalived (2)监控:nagios,mrtg Cdn设计要点o选定核心缓存节点(电信、网通各2个)o选定边缘缓存节点(覆盖到省)o归类ip地址:哪些ip地址属于哪些运营商?Dns的解析依赖一个庞大的地址库判定客户请求来源,然后才可能实现用户的就近访问。o容错和负
3、载均衡 如果自己做一个简单的cdn应用,可能只需要电信和网通2个节点,不必有边缘和核心的区分;ip库也简化成电信、网通、其他,即dns只涉及3个视图(VIEW)一个样例用户dns处理o一般情况下,用户的dns用A记录直接把主机名解析到源站IP.为了使用cdn,则需要在dns服务器上使用CNAME,把域名指向到cdn运营商解析出来域名上(注意:不能是某个固定IP),如:odl IN CNAME . 当用户访问这个域名时,实际访 问的域名是Cdn的DNS处理oCdn使用2套 DNS系统,一套对外(即对internet提供域名解析服务,亦即是前面所使用的别名);一套内部使用的DNS,供各cdn节点使
4、用(小规模的cdn可以使用Hosts文件来实现)。一、内部dnsoCdn姐妹( sibling )、父子(parent)名称解析o解析源站地址二、外部dnsoCdn最关键之处就是外部dns的视图功能(view)。至少需要定义3个视图:电信、网通和其他。为了更准确地提供cdn服务,建议每个省定义成一个View.o视图(View)一般以网段为单位,一个网段一行,更有效的方式是搜集DNS所属网段,这样视图(view)的列表就会变得比较小,可以大大加速检索速度。三、一个简单的dns视图片断o# KEYS FOR TSIG #okey telecomkey oalgorithm hmac-md5;ose
5、cret LaA4Y1MHlFSTTMz1mzwarA=;o;okey cnckey oalgorithm hmac-md5;osecret l/rlorcG+7hhabIFKe8Kjg=; o;okey anykey oalgorithm hmac-md5;osecret YMXXBAck4i5Sb4PlUg00Uw=;o;三、一个简单的dns视图片断oinclude cnc_acl.conf;oinclude telecom_acl.conf;oview view_cnc o match-clients key cnckey;CNC;o recursion yes;o allow-tran
6、sfer key cnckey;o server 61.135.210.20 keys cnckey; ;o server 61.135.210.10 keys cnckey; ;ozone . IN o type hint;o file named.ca;o ;ozone localhost IN o type master;o file localhost.zone;o allow-update none; ;o ;三、一个简单的dns视图片断ozone 0.0.127.in-addr.arpa IN o type master;o file named.local;o allow-upd
7、ate none; ;o ;ozone “ IN o type master;o file .zone;o allow-update none; ;o ;ozone 210.135.61.in-addr.arpa IN o type master ;o file 210.135.61.in-addr.arpa.zone;o allow-update none; ;o ;o;四、视图列表片断orootnagios /var/named# more cnc_acl.confoacl CNC o58.16.0.0/16;o58.168.225.0/24;o58.17.0.0/17;o58.17.12
8、8.0/17;o58.17.180.0/24;o58.17.186.0/24;o58.18.0.0/16;o58.19.0.0/16;o58.20.0.0/16;o58.21.0.0/16;o58.22.0.0/15;o58.22.0.0/16;o58.23.0.0/16;o58.240.0.0/15;o58.242.0.0/15;oo222.163.128.0/17;o222.163.32.0/19;o222.163.64.0/18;o;缓存服务器o分层设计(parent)o层间堆叠( sibling )o禁止使用ip地址访问一、分层设计o中心节点为父节点、边缘节点为子节点。用户的访问被分配
9、到边缘节点,当访问没有被命中时,子节点再向父节点请求,如果父节点仍然没有被命中,则继续向源站请求。这种机制保证了源站有更小的访问流量,大大降低源站的带宽耗费。oacl CNSERY dstdomain ocache_peer parent 80 3130 no-query originserverocache_peer_access allow CNSERY二、层间堆叠o用户访问每个边缘服务器,如未命中,则访问临近的节点。这也是为降低源站流量和减少源站带宽所采取的措施。在实际的部署中,往往由数个服务器组成一个集群,相邻节点出于一个网段内,所以这种邻接关系相互访问是很有保障的。ocache_
10、peer sibling 80 3130ocache_peer sibling 80 3130ocache_peer sibling 80 3130三、禁止使用ip访问o禁止ip访问既有基于安全的考虑也有出于效率的考虑oacl IP dstdom_regex 0-9+.0-9+.0-9+.0-9+$ohttp_access deny IP集群与负载均衡o所有节点都在各自的网段采取集群和负载均衡技术(不包括DNS)oLvs结合keepalived是最佳的选择Keepalived 配置文件片断o#guration File for keepalivedoglobal_defs o route
11、r_id LVS_sery_2oovrrp_sync_group VGM o group o VI_OUT1o oovrrp_sync_group VGB o group o VI_INT1o oovrrp_instance VI_OUT1 o state BACKUPo interface eth2o lvs_sync_daemon_inteface eth2o virtual_router_id 51o priority 150o advert_int 5o authentication o auth_type PASSo auth_pass 1111o o virtual_ipaddress o 61.135.210.4o 61.135.220.123o oo.监控:o服务及主机监控:nagios是很不错的选择。由于squid禁止使用访问,因此监控也应该使用域名来进行o流量监控: cacti或mrtgo报警:使用短信方式。可以外购短信服务,把它整合到监控平台中谢谢