导读:在讨论这个问题,其中群友老孤同志也提供了不少非常有参考价值的资料,所以我们再把这些资料再整理一次,从比较底层的技术原理上重新进行一次分析。   我们知道,因为南电信北网通现象的存在,我们的服务器或网络内容、服务等提供商对网络的选择也至为重要。每位站长或网络内容、服务提供商都希望自己的网站在全国乃至全球都能快速被用户访问到,但现实国情中,单...正文:

其实双线技术的实现方式并不是什么新的技术问题了,说白了就是智能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的实现过程了。交流qq2881064152

随机推荐

  1. 微软发布正式版SQL Server 2016

    微软于今天在SQL 官方博客上宣布 SQL Server 数据库软件的正式发布版本(GA),历时一年多,微软为该软件发布了多个公共预览版和候选版本,而今天最终版本终于上线了.在博客中,微软数据集团的企 ...

  2. 【Python网络爬虫二】使用urllib2抓去网页内容

    在Python中通过导入urllib2组件,来完成网页的抓取工作.在python3.x中被改为urllib.request. 爬取具体的过程类似于使用程序模拟IE浏览器的功能,把URL作为HTTP请求 ...

  3. Protobuf3 + Netty4: 在socket上传输多种类型的protobuf数据

    Protobuf序列化的字节流数据是不能自描述的,当我们通过socket把数据发送到Client时,Client必须知道发送的是什么类型的数据,才能正确的反序列化它.这严重影响限制了C/S功能的实现, ...

  4. C# 将对象保存为文件 读取文件并转为对象 压缩文件 解压缩文件

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  5. linux 公社的网友出品的 Qt5.5 安装脚本,copy过来了

    http://www.linuxdiyf.com/linux/13046.html Qt5.5已经发布了,前两天PyQt也很快推出了一个5.5的对应版本.试验了一下(花了个周末啊!),真是越来越好用了 ...

  6. [转]Dynamic SQL & Stored Procedure Usage in T-SQL

    转自:http://www.sqlusa.com/bestpractices/training/scripts/dynamicsql/ Dynamic SQL & Stored Procedu ...

  7. 通过java输出当前系统时间

    获取当前系统时间和日期并格式化输出: import java.util.Date; import java.text.SimpleDateFormat; public class NowString ...

  8. Linux驱动之HelloWorld

    最近看android的一些源码,里面有一些功能是用驱动实现的.于是就兴起看了一些驱动相关的东西,准备日后深入.这没有技术含量的水文,仅作为日后的备忘吧. 系统使用的是ubuntu 12.0.04,内核 ...

  9. 公网IP、私网IP

    公网.内网是两种Internet的接入方式.公网接入方式:上网的计算机得到的IP地址是Internet上的非保留地址,公网的计算机和Internet上的其他计算机可随意互相访问. NAT(Networ ...

  10. UVa 1388 - Graveyard

    题意:有一个周长为10000的圆上等距分布着n个雕塑,现在又加入m个雕塑,位置随意,希望n+m个雕塑仍然均匀分布.这就要移动其中一些雕像,求移动的最小距离. 这个题的方法很巧妙,首先将整个圆分成(m+ ...