由新浪DNS故障想到的——慎用CNAME记录

2012-02-01

近日,新浪因短暂DNS故障导致部分地区无法正常登陆新浪网。作为一个很少登陆新浪网的网友,整个事件对我而言并没有什么影响。不过,这次DNS解析故障倒让我担心起了正在使用的Sina App Engine服务。

照理说,新浪的DNS解析故障和Sina App Engine应该是没有关系的。但是,我注意到一个细节,SAE应用使用的yourname.sinaapp.com域名并不是直接A记录解析成IP地址,或者CNAME(别名记录)到sinaapp.com的某一个二级域名下,而是CNAME到了app.dpool.sina.com.cn!也就是说,对yourname.sinapp.com域名的解析过程实际上是分两个过程完成的——第一个,客户端发起对yourname.sinaapp.com的解析请求,DNS服务器返回一个CNAME记录app.dpool.sina.com.cn;第二个,客户端再发起一个对app.dpool.sina.com.cn的解析请求,DNS服务器进行解析,返回IP地址。

我经过查看发现,sinaapp.com和sina.com.cn使用的是不同的DNS服务器。类似于电路上的串联,两个域名只要有一个解析出现故障,DNS解析即受到影响。好在用户并非直接对域名的DNS服务器请求解析,而是对ISP处的Local DNS发起请求。由于Local DNS具有缓存作用,所以域名DNS服务器的故障并不一定对用户可见。当然,新浪的服务水平毋庸置疑,即使出现了短暂的解析故障,也是在所难免的事情。然而,并非所有的服务商都有新浪这样的服务水平。

作为一个业余站长,对CNAME记录应该再熟悉不过了。什么网站联盟,什么CDN加速,什么智能DNS,都会用到CNAME记录。起先,我认为这样子挺方便的,尽管一定程度上增加了DNS的解析时间。但是新浪的这次DNS故障改变了我的看法,我觉得CNAME记录还是应该慎重使用的—— 一旦使用了CNMAE记录,域名的成功解析与否会同时受到两个甚至多个域名的DNS服务器的影响。

我建议CNAME记录能少用就少用,能不用就不用。原来我对CloudFlare(一个国外的CDN服务提供商)要求必须使用其DNS服务感到非常不解,倒是新浪的这次故障让我明白了不少个中缘由。因为大多数诸如CDN之类的服务使用CNAME记录在所难免,所以,我建议相关服务商最好可以提供DNS托管服务,将不稳定因素降到最低。对于一些简单的CNAME记录,我觉得完全可以用自己域名的A记录替换掉。如果说你考虑到CNAME到的域名IP会发生变动的话,我认为完全没这个必要——如果一台服务器的IP地址经常变动的话,你就可以把它踹掉了;即使你不踹掉它,搜索引擎也会把你踹掉。


除非特殊说明,本博客文章均为原创,转载请以链接形式标明博文地址。

本文链接地址: 由新浪DNS故障想到的——慎用CNAME记录

分类:互联网 | 标签: |