智能DNS及其工作原理

原文是:智能DNS及其工作原理 CDN实现原理

其实作者混淆了两个概念,智能DNS和CDN是两种不同的网站流量引导方式,智能DNS技术,用的是根据客户端ip回馈不同的服务器ip地址,从而让客户端访问不同ip的服务器而达到的加速方法。但是CDN是站长之间共享一部分主机空间,存储其余网站的缓存文件,比如静态web文件,然后根据客户端ip所在网络到最近的CND网络共享主机中下载静态缓存文件,从而达到节省访问时间的目的。

智能DNS,CDN加速,还有双线机房是站长常用的三种网站加速方式。

以下文章是引用bbs.unixtech.cn论坛的ID为ddt2000网友贴出来的文章,图文并茂的解释了智能DNS加速原理。
 

假设某网站 ,如www.a.com, 上海有服务器一台,给的IP是1.1.1.1 ,北京有一台,给的是2.2.2.2 处于不同IDC,要求实现上海的用户访问在上海的服务器, 而北京的用户访问到北京的服务器.

角色1 Client 上海电信用户5.5.5.10

角色2 Client的DNS服务器 5.5.5.1 根据Client的网络接入的方式不同,DNS服务器的IP地址是
不一样的

角色3 a.com的soa dns,ip 3.3.3.3 由com. 授权,

角色4 www.a.com的2台服务器, 上海的IP1.1.1.1 北京的2.2.2.2

角色5 上海的DNS服务器 1.1.1.10

角色6 北京的DNS服务器 2.2.2.10

在确定好所有的角色后,我们来看看这个工作过程以及解决方案

DNS解析分为递归与跌代.

假定上海电信dns 是递归查询, 通过一个图我们来说明智能解析过程. (请把该图放大再看比较清楚)

因为递归查询,那么情况比较复杂,因为 最终访问到a.com dns 服务器的是上海电信dns服务器, 是Client DNS. 这样只能判定Client DNS比较距离 上海或者北京比较近,而无法断定Client
是距离那里比较近。
不过,由于网络接入的方式不一样,例如 网通的ADSL方式,其IP、DNS地址均由动态获取,这样此时 Client DNS服务器与Client应该是属于相同运营商IP,这样就能够通过判定Client DNS地址来大约断定Client所属运营商所处地区,从而给予Client一个正确的IP地址解析。
但是假如某上海用户手工指定DNS,恰好又指定了一个北京的递归查询DNS服务器,这个时候,就比较麻烦了,因为没有办法得知Client的实际位置。
考虑此时是递归查询,所知Client DNS的IP地址为北京IP,则a.com会解析北京服务器地址给该 Client DNS,那么Client作为上海用户最终得到的IP将是 www.a.com = 2.2.2.2 (该地址为北京地址) ,这样就会导致此用户得到错误的服务器地址。
不过,好运的是,现在的大多数DNS服务器都是迭代查询,因为没有多少DNS服务器可以承受递归的流量,所以对于99%的用户来说,都能得到正确的地址解析,从而正确的访问服务器。


那么迭代查询的情况又会如何呢?则最终向a.com询问谁是 www.a.com的 ,将是Client.
这样,a.com的DNS服务器将得到Client 的IP,再根据Client IP地址距离那里比较近,就可以决定返回www.a.com 的IP 1.1.1.1 还是 2.2.2.2; 但是这种工作模式的问题是必须选择一个好的算法。为什么呢?
应为需要考虑到中国网络的实际情况,南北电信分拆后,telecom与cnc之间的互相访问非常慢, 例如 某上海网通用户访问位于上海电信的www.a.com.,其速度可能还不如去访问位于北京网通的www.a.com.
关于如何解决这个问题,我已经再另外一个精华贴中有所解答,请大家参考在本论坛web子论坛中发表的文章
http://bbs.chinaunix.net/viewthread.php?tid=711346&extra=page%3D2

另外也可以使用静态算法,通过收集Client IP是属于某个地区的(上海还是北京),就可以决定返回某个IP地址,不过需要收集所有IP所处实际地区;目前网上已经有很多查询ip地址是属于某个地区的技术,看来这种方法还是有可能实现的。
目前手工配置DNS服务器来实现以上目的,好象没有什么现成的程序能做到,需要自己开发一些相关工作流程脚本程序,以及收集电信、网通IP地址段,所处地区等,工作内容比较复杂。

好消息是,现在已经有相关的商业产品能够做到这一点。 如果网站的级别已经到达需要做CDN的话,我想boss考虑问题时,钱应该不是首要问题了吧?

有兴趣的话,可以跟我联系msn: moon_yagami@126.com, qq 11892426 我们可以交流一下相关技术,也能提供完整的解决方案。

本文转自www.chinaunix.com




如果您喜欢本篇文章,也许您也会喜欢下面推荐的文章!
其实我不想帮你找... (轩辕网的日志真乱 -_-#.. )
[本日志由 admin 于 2008-04-30 11:41 AM 编辑]
文章来自: Unix/linux技术交流站
引用通告: 查看所有引用 | 我要引用此文章
Tags: 网站 DNS 建站

在线RSS阅读器订阅:
feedsky
抓虾 pageflakes Rojo
google reader my yahoo newsgator
bloglines 有道

手机订阅:


本站订阅地址:
RSS2:  【点击复制
Atom:  【点击复制
免责说明:
本站提供的文件均通过卡巴斯基最新版扫描无毒,请放心使用
本站所发表内容或来自互联网,或本人原创,只为学习交流之用,不存在任何商业用途
遵循创作共同协议,您可自由复制等方式传播本作品。
如果本站内容不慎侵犯了您的版权,请及时联系我们,我们将尽快处理。

遵循创作共同协议,您可自由复制,发行,广播或通过信息网络传播本作品。
但须遵守下列条件:
◎ 署名. 您必须按照作者或者许可人指定的方对作品进行署名。
◎ 非商业性使用. 您不得将该作品用于商业目的。
◎ 禁止演绎. 您不得修改、转换或者以本作品为基础进行创作。
任何再使用或者发行,您都必须向他人清楚地展示本作品使用的许可协议条款。
如果得到著作权人的许可,您可以不受任何这些条件的限制。
评论: 0 | 引用: 0 | 查看次数: - | TOP ↑
发表评论
昵 称:
密 码: 游客发言不需要密码.
内 容:
验证码: 验证码
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.