免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 23663 | 回复: 26
打印 上一主题 下一主题

[DNS] 网站多站点部署 CDN原理之提高篇 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-03-11 14:20 |只看该作者 |倒序浏览
全球负载均衡  网站多点部署 多站点部署  智能DNS   双线机房? 多链路?  更新2007-08-15


假设某网站 ,如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 我们可以交流一下相关技术,也能提供完整的解决方案。

[ 本帖最后由 unsword 于 2007-8-15 12:03 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-03-13 14:02 |只看该作者
把那个图再整理一下就好了

论坛徽章:
0
3 [报告]
发表于 2006-03-13 14:29 |只看该作者
楼主这个讲解的很详细~~
主要是使用view和recursion no就能实现,个人觉得用静态的方法维护起来比较麻烦,如果IP段变更,就要重新添加。
UP

[ 本帖最后由 小小跳蚤 于 2006-3-13 14:38 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2006-03-14 01:40 |只看该作者

谢谢

当然想整理,不过需要时间,我最近忙得很,等下周时间空闲了再说.今天在SOHU的机房泡了半天,实在画不动了,谢谢!

论坛徽章:
1
白银圣斗士
日期:2015-11-23 08:33:04
5 [报告]
发表于 2006-03-14 11:49 |只看该作者
原帖由 unsword 于 2006-3-14 01:40 发表
当然想整理,不过需要时间,我最近忙得很,等下周时间空闲了再说.今天在SOHU的机房泡了半天,实在画不动了,谢谢!



那你講講sohu的機房是昨樣的?俺 學習

论坛徽章:
0
6 [报告]
发表于 2006-03-16 12:05 |只看该作者
大侠,你那有成功的例子吗?
参考一下

论坛徽章:
0
7 [报告]
发表于 2006-03-17 15:53 |只看该作者
原帖由 suyang 于 2006-3-16 12:05 发表
大侠,你那有成功的例子吗?
参考一下

我的网站就在使用,联盟成员也在用.
www.cdnunion.com

论坛徽章:
0
8 [报告]
发表于 2006-03-20 13:44 |只看该作者
很不错,辛苦LZ,不过还想知道sohu机房是啥样~~~

论坛徽章:
0
9 [报告]
发表于 2006-03-20 13:48 |只看该作者

附上

再补上自己根据lz的图制作的
希望大家喜欢。

[剑松原创].jpg (72.51 KB, 下载次数: 142)

[剑松原创].jpg

论坛徽章:
0
10 [报告]
发表于 2006-03-20 14:39 |只看该作者
ip段的信息可以通过查询apnic上的whois资料来判断。
有一个精华帖子就是做这个的脚本。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP