简单cdn(八)

7.8 杂项
 
7.8.1 部署 cdn 的重点和难点
 
整个 cdn 最重要的部分就是全局智能 dns 服务,这是 cdn 不可替代的组件。在没有出现视图 view 功能之前(或者当某些系统管理员不知道有这样的功能),甚至有人以 dns 轮询方式调度用户对缓存服务器的访问,这种形式会让用户的体验时好时坏。
 
7.8.2 取得和归类中国大陆 ip 地址列表
 
在本章“ 7.3.3 ”节,我们用了一个脚本 get_ip.sh 来取得和归类 ip 地址,而未说明是怎样一回事情。那么,在本章的结尾我把它补充一下。
 
我们知道,亚太地区的 ip 地址由 APNIC http://www.apnic.net )分配,通过访问 APNIC 官方站点的 url http://www.apnic.net/publications/research-and-insights/stats , 可以知道在何处得到 ip 地址分配的有用信息(如图 7-8 所示)。
简单cdn(八)_第1张图片
7-8 通过 ftp 方式可以取得原始数据
点击图 7-8 加下划线的那个链接,就进入 ftp 站点 ftp://ftp.apnic.net/, 再点几次鼠标,最后定位在 ftp://ftp.apnic.net/apnic/stats/apnic/README.TXT ,这个文件帮助我们了解该下载哪个文件以及文件的格式。让我们按照这个 README.TXT 的提示,在浏览器里打开页面文件 ftp://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest ,除去注释行,我们将看见形如“ apnic|JP|asn|173|1|20020801|allocated ”的文本行。把这个文件下载下来,过滤一下,变可以把分配给中国大陆(第 2 个字段为“ CN ”)单独提取出来。在前面的 get_ip 脚本,用 wget 下载这个 delegated-apnic-latest 文件,然后再用 grep CN 提取出来形成一个单独的文件。具体的操作就是一下两步:
(1)                             wget http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest -O /root/ipnic/ip_apnic
(2)                             grep 'apnic|CN|ipv4|' /root/ipnic/ip_apnic | cut -f 4,5 -d'|'|sed -e 's/|/ /g' | while read ip cnt
do
echo $ip:$cnt
    mask=$(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>> cn.net
done
在得到 ip 地址段以后,通过网站 www.cnnic.net.cn 查询这个地址段属于那个运营商,或者在 linux 下用 whois 工具查询。用访问网站的方式,一次只能查询一个地址段,根本无法完成所有地址的查询。而使用 whois 则可用遍历方式逐个查询,然后按关键字归类,形成几个单独的文件。
 
可能由于各 ip 地址租用方未能按同一的标准在 apnic 提交注册信息, get_ip.sh 脚本以正则表达式“ netname ”取得的值就未必能清楚反应运营商的名称,如“ netname:      KLSF-LID-BJ ”就很难从字面上连接是那个运营商的网络。如果你想判别更精准一些,则需要借助其他正则表达式如“ mnt-by ”作为辅助条件。
 
7.8.3 应急处理
 
Cdn 服务运营中,有可能出现某个运营上机房网络不可用的情况 -- 如设备故障或机房维护操作 -- 这样一来,就导致某个区域的用户彻底不能访问。出现这种极端情况时,我们需要把出故障的机房资源临时从 dns 的转发列表删除,然后把前往这些机房的访问转发到其它地方,接下来,还是以我的实例来做说明。
 
现在假定我们放置服务器的电信 idc 托管机房出故障,造成电信的用户不能访问我的网站。在我发现故障以后,打开区文件 telecom.sery.cn.zone ,把它里面的 A 记录做修改,如果要把它的流量切换到网通机房,则把 A 记录对应的 ip 改成跟 unicom.sery.cn.zone 的设置一样。
 
在进行流量切换操作时,很可能因为瞬间流量过大而使系统过载,因此在设计简单 cdn 容量的时候,每个点应该至少能承受整个系统用户的访问,否则当你从一个故障机房切换流量时,顺便也吧另一个点也撑死了,这种结果当然不是我们想要的。

你可能感兴趣的:(职场,CDN,休闲)