jqc521
新新人类
帖子
46
精华
0
无忧币 4
积分 59
阅读权限 20
|
发表于:2008-6-24 08:40
标题:智能DNS解析+双线路接入
<上一帖 |
下一帖>
其实双线技术的实现方式并不是什么新的技术问题了,说白了就是智能DNS解析+双线路接入,不过最近不少朋友都在讨论这个问题,其中群友老孤同志也提供了不少非常有参考价值的资料,所以我们再把这些资料再整理一次,从比较底层的技术原理上重新进行一次分析。
我们知道,因为南电信北网通现象的存在,我们的服务器或网络内容、服务等提供商对网络的选择也至为重要。每位站长或网络内容、服务提供商都希望自己的网站在全国乃至全球都能快速被用户访问到,但现实国情中,单一服务器是很难实现的。国外网络的速度慢,站长和网友还能够理解并接受,但国内的南北之阻塞,相信站长们是很难理解也很难接受的。但事实如此,站长们也只能根据自己网站主流用户群是在南方还是在北方,服务重点是在南方还是北方而进行取舍,如是南方选取电信网络,如为北方则选取网通网络。当然谁也不想自己的网站因网速而少了另一部分的用户及访问者,都在想办法解决网络瓶颈,希望实现南北快速互通互联。
目前电信、网通瓶颈问题可以说主要是人为因素造成的,只有靠增加成本或用技术来补救,部分IDC提供商分别提出了“双线路”、智能域名DNS和CDN方案。“双线路”方案又包括双线路单IP通过路由解决方案和双线路双IP解决方案。智能域名DNS方案是基于域名的分网解析的(主要通过上网者使用的DNS服务器来判断);CDN(Content Delivery Network)方案,即“内容发布与速递网络” ,此为内容提供商比较全面的解决方案。
而国内大部分运营商开出的双线方案其实是双线双IP的方案,只有少数地区和少数运营商有办法实现BGP方式的双线单IP。
这里顺便说说:什么是BGP双线呢?建立BGP双线又需要什么条件呢?
首先,BGP(Border Gateway Protocol边界网关协议)主要用于互联网AS(自治系统)之间的互联,是一种在自治系统之间动态交换路由信息的路由协议。而自治系统的经典定义是在一个管理机构控制之下的一组路由器,它使用IGP和普通度量值向其他自治系统转发报文。BGP(边界网关协议)是不同自治系统路由器之间进行通信的外部网关协议,作为的EGP替代品,BGP系统之间交换网络的可达到信息,这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径,通过这些信息构造自治系统链接图,然后根据连接图删除选路环,制定选路策略。
BGP双线的实现方式跟早期的双网卡双线相比最大的特色就是服务器只需要一个网卡,因此在客户的服务器上不存在任何需要改动的地方,不过运营商就需要购置一台较为昂贵的BGP路由器,因此这种双线技术也称为“全路由双线”。电信及网通的网络接入运营商的BGP路由器,再由交换机将线路分配到每一台客户的服务器上。由于中国网通与中国电信都具有AS号(自治系统号),全国各大网络运营商多数都是通过BGP协议与自身的AS号来互联的。使用此方案来实现双线路需要在CNNIC(中国互联网信息中心)申请IDC自己的IP地址段和AS号,然后通过BGP协议将此段IP地址广播到网通、电信等其它的网络运营商,使用BGP协议互联后网通与电信的所有骨干路由设备将会判断到IDC机房IP段的最佳路由,以保证网通、电信用户的高速访问。
其实目前的BGP双线(单IP双线)主要集中在北京和上海,因为北京就是网络管理部门和电信部门的根据地,所以要办BGP并不难;上海则是成立了一个ISP互联互通组织来进行调解,从而解决了BGP问题;但广东是电信一家独大,而且地管部不去受理BGP的办理手续,所以尽管很多华南的IDC运营商拿到了自治AS域,但还是只能一直使用双IP双线。
双线路双IP方案
例如广东地区IDC机房惯用的双IP双线方案是指在一台服务器上安装两块网卡,分别接入电信网线与网通网线并设置一个网通IP与一个电信IP,这样一台服务器上就有了两个IP地址,需要在服务器上添加网通或电信的路由表来实现网通用户与电信用户分别从不同的线路访问。这种方案虽然成本低,但网络不够稳定并且占用大量的服务器资源,另外一些低端服务器只有一个网卡接口,又是1U的,要扩展一张网卡就比较麻烦,得通过转接卡,还要额外购置一张千兆网卡。
该方案出现时间早,而且技术已经比较成熟,但是存在一些弊端,首先是浪费IP资源,另外是需要服务器有两个网卡接口。
那么,这种技术的工作原理是什么呢?首先,客户端的浏览器会提交一个域名,这个域名当然是提交给用户网络连接使用的DNS服务器,不过用户的DNS服务器是无法解析的,它会询问它上一级的DNS服务器,一直这么问,问到这个域名指定的NS服务器时,OK,这个NS服务器就去判断用户的线路是电信的还是网通的,如果是电信的,就返回被访服务器的电信IP,如果是网通的自然就返回被访服务器的网通IP,所以DNS服务器经过这么一连串复杂的查询之后,终于得到一个用户访问起来最快的IP地址返回给客户端,然后客户端的浏览器就向这个IP地址发送请求,双方建立起TCP对话,这大概就是双线双IP的实现过程了。
既然这个过程已经十分明确,还要拿出来讨论什么呢?
其实就是一个问题,但是这个问题研究起来却非常有意思,那就是,NS服务器是如何去判断用户的线路是电信的还是网通的?(NS服务器就是在进行域名管理时设置的那个NS记录,只能指定为IP,在双线双IP方案中,NS服务器就是进行域名智能解析的那台服务器)
很多人会说,先获得用户的IP,然后服务器在一个庞大的IP地址表里面查询,就可以知道这个IP是属于哪个ISP甚至是那个地区的,没错,QQ显IP显地址基本也是这么一个原理。
那么,大家可能都有类似经历,QQ显地址经常不准确,一个广东的朋友跟你聊天时你看到他的地址居然是广西的,这个不奇怪,因为IP地址的划分不是固定的,这就让人担心,既然IP地址不固定,那么会不会某个IP原来是电信的,后来被划给了网通,但是IP地址数据库是第三方机构收集的,更新肯定不及时,这样这个用户访问双线双IP的服务器时就被解析到错误的地址去了。
理论上确实是这样的,因为NS服务器的IP地址数据库不可能更新的这么及时。
但是,从群友老孤提供的一些资料中,我们也看到一条我们之前没想到的道路,就是让路由器实时计算自动选择最佳线路。这个功能,在思科的全球站点选择器(GSS 4480)介绍上面可以看到,当然这个设备的用途远不止双线解析这么简单,不过我们比较感兴趣的还是它的工作原理:
……(省略资料原文部分内容)……
提供DNS快速处理特性。思科GSS 4480可以实时地根据本地DNS与多个站点之间的RTT,将客户端引导至距离最近的数据中心;
分布式导向器利用导向器响应协议(DRP)——由思科系统公司开发的一种基于UDP的应用——执行以下两种任务:
从DRP服务器代理查询分布式服务器与客户端之间的BGP和IGP路由表指标,确定客户端到服务器的拓扑邻近度。
从DRP服务器代理查询客户端到服务器链路延迟指标。
……(省略资料原文部分内容)……
思科分布式导向器在执行负载分布时,能够通过服务器可用性、相对的客户端到服务器拓扑邻近度(“距离”)和客户端到服务器链路延迟大小确定“最佳”服务器。换言之,用户只需要一个子域名称或全局资源定位符(URL)嵌入式主机名称,就能访问一组分布式服务器,而不需要从很多的可能站点中进行选择。总之,思科分布式导向器能够利用网络中的智能自动、动态、有效地为用户挑选出“最佳”服务器。
……(省略资料原文部分内容)……
很有意思,根据我们的判断,思科的这种设计精髓在于可以计算出客户端到服务器拓扑邻近度(“距离”)和客户端到服务器链路延迟,也就是每次用户发出请求时设备都会自动去计算这个用户走哪条路由比较近服务器,但是怎么去计算,当然还是需要预设一个路由表,然后根据这个表去计算怎么走路程才最近,当然这个计算过程是比较复杂的,占用处理器资源也多,大概是找到每条路经过几个路由,经过路由最少的那条路就是最好的,具体不去研究,总之思科做到了。
所以我们可以知道,要实现CDN加速和实现双线双IP都要用到智能解析的技术,而通过思科的设备基本是可以实现硬件解析,如果通过NS服务器就基本是运行软件+IP地址库,前者自然是效果比较理想,可以实现动态计算路径距离,还能实现DNS负载均衡,非常适合CDN的应用特点,估计这类设备就是为CDN网络设计的;而后者其实就是软件+普通服务器的方案,自然在成本上是非常低廉的,相信国内大部分运营商也是选择这种方式,当然,由于IP数据库更新的及时性,可能会出现一些解析不准确的现象,这个自然就可以理解了。
[ 本帖最后由 特爱蚂蚁 于 2008-6-24 08:46 编辑 ]
|
 论坛活动:测测你对IT技术大会的了解指数(赠微软礼品、无忧币) |
|