浅谈千兆交换路由器的虚拟路由集群技术

一、引言:

  当前,IP已经成为大部分骨干网络产品的路由协议。在部分网络环境,用户对网络的要求是很高的,任何停工和储运损耗都会对用户造成严重影响。例如:

  1.Internet服务提供商提供Web主机设备,为了使得用户的Web服务器对公众总是有效的,必须保证用户99.9999%的正常运行时间。

  2.过程控制应用必须能够适时访问它的控制的系统,否则可能会发生结果损失严重的控制;

  3.有时,运行在IP主机上的应用会超时,如果业务运行对网络应用要求较高,这种超时会带来很坏影响。

  越来越多的IP主机使用DHCP指定它们的IP地址。然而,许多IP主机使用手工配置作为发现网关路由地址的唯一手段。一些主机使用网关侦探办法获得,但一般不推广使用这一方法(RFC1122),动态Ping网关也是禁止使用的。ICMP路由发现协议允许路由器通过IP主机被发现,但尚未广泛使用。

  这就意味着大部分主机无法快速知道路由器和与之相联的局域网连接是否已经失败,而且IP主机检测连路失败与替代路由器进行交换需要很长时间。

  因此,对任何设备来说,提高网络的有效性至关重要。利用虚拟路由集群技术,可以有效解决一些问题。本文通过举例介绍CABLETRON公司的SSR千兆交换路由集群技术,来作一些探讨。

二、如何去做?
  采用虚拟路由集群技术能够将位于同一局域网的CABLETRON多个SSR路由器定义为互相之间作路由备份的集群,集群中的SSR路由器采用IETF虚拟冗余路由协议实现路由交换机间以及各路由器所在局域网间的镜像,如果一个路由器或它所连接的局域网连接失败,其它的路由器会自动代替失败的路由器绕过故障点重新路由,路由的恢复时间在数秒之内,因此这是运行在IP主机上的透明应用。

  (图一)

  1、VRRP的概念

  如图一所示,VRRP可以在工作站的缺省网关失效时提供一个备份路由器,VRRP可以创建一个具有虚拟MAC地址和虚拟IP地址的虚拟路由器。

  诚然,我们可以在Windows98中添加多个缺省网关,但该特征只能在主机启动时使用。换句话说,主机启动时对网关列表中的第一个缺省网关使用ARP进行地址解析,如果解析失败,将对列表中的其它网关继续进行地址解析。

  当主机找到缺省网关的MAC地址后,该网关突然瘫痪会整么样呢?只能从新启动主机,让它继续寻找下一个缺省网关。

  使用VRRP便可以解决这个问题,因为它是动态变化的,如果主路由器瘫痪,则备份路由器随之便自动替代主路由器。主机根本觉察不到其中的丝毫差异。

  虚拟路由集群技术被作为一个模块集成到SSR的软件中以保证网络应用的实用性,且提高了应用要求较高的网络的可靠性和适应性。

  CABLETRON的虚拟路由集群技术遵循IETF(Internet工程任务组)制定的VRRP(虚拟冗余路由协议)标准协议。

  
(图二)

  在图二中IP主机H1、H2等连接到具有多个路由器(R1、R2等)的局域网上R1和R2提供到目的地D1的连接。正常情况下主机H1、H2等只配置单一路由器R1或R2的路由IP地址。问题是当任何一个路由器失败,则有一个或多个主机H1、H2等与目的地D1推动连接。对一般的路由协议如RIP、OSPF等来说,主机H1、H2等发现路由失败需要很长时间(大约40-90秒)甚至导致TCP连接中断。当在虚拟路由集群技术中使用VRRP协议时,使得网络中的路由失败恢复仅需几秒钟,它极大提高了网络的有效性,为网络应用要求挑剔的骨干提供路由冗余。

2、虚拟路由集群技术是如何工作的?

  虚拟路由集群里的每个路由器被指定一个相应IP地址对应的虚拟MAC地址。然后将每个SSR配置为与所有其它路由器的MAC地址和IP地址的路由。IP主机被配置成使用任何或所有路由器作为自己的路由器。

  SSR在集群里使用VRRP信息去选择主路由,其它SSR成为热备份路由器。集群里的每一个路由器提供一个虚拟的MAC地址(而不是它实际的MAC地址)作为对主机应答的ARP(地址解析协议)原地址,且每个路由器也发送由ICMP(网间控制报文协议)重定向优化了的IP主机作业。如果集群中的任何路由器或它们的局域网连接失败,则主路由器接管其相应作业,并通过取代它的虚拟MAC地址和IP地址实现ARP应答。如果主路由器失败,剩下的路由器会选择一个新的主路由器,它取代了失败的主路由器的虚拟MAC地址和虚拟IP地址。

  3、ICMP路由发现和ICMP重定向

  ICMP路由发现允许IP主机使用ICMP信息和程序区分路由器。使用ICMP,SSR周期性的广播ICMP路由广播信息并对来自IP主机的ICMP路由请求作出响应。

  ICMP重定向是使路由器通知IP主机到达特定目的地的最好路由的机制,ICMP重定向遵循RFC1122标准。

  虚拟路由集群使用标准的ICMP重定向机制去控制路由器通过在链路失败点周围作路由,使IP包发向目的地。信息包在重定向之前仍被SSR所转发,保证不会由于路由改变而导致数据丢失。

  
(图三)

  图三帮助说明虚拟路由集群是如何工作的。在这个图表中路由器A和路由器B都是同一虚拟路由集群的组成单元,并各自在其自己的集群内设置成主路由器,而在其它集群设置成备份路由器。路由器A配置成自己的IP地址和虚拟MAC地址(图三中正体字部分),同时配置成认知路由器B的IP地址和虚拟MAC地址(图三斜体字部分)。同样,路由器B配置成自己的IP地址和虚拟MAC地址(图三中正体字部分),同时配置成认知路由器A的IP地址和虚拟MAC地址(图三中斜体字部分)。

  在这个案例里,SSR A被选为主路由器,相应地SSR B被设选为备份路由器。两个路由器都能够对主机1、2、3通过其虚拟MAC地址发来的ARP请求,两个主机也都能对IP主机1、2、3的流量作路由。

三、这样做的结果:

  1.如果一个SSR路由器失败会发生什么?

  假设SSR B由于其所连接的局域网断路或起串口模块电路坏掉,如图3所示,SSR A迅速发现SSR B失败,并且快速取得SSR B的IP地址和虚拟MAC地址,SSR A现在开始主动对发到失败路由器SSR B的ARP请求作出响应,取得失败路由器的虚拟MAC地址作为原地址,并主动接收发往失败路由器虚拟MAC地址的IP数据,并转发到相应的目的地。

  
(图四)

  2.当SSR路由器恢复后会发生什么?

  如果SSR B恢复了,它会通知它自己和SSR,让其停止模仿它的工作,从此SSR B会用它自己的MAC地址响应ARP请求,两个路由器同时对信息包进行路由。SSR B恢复响应和主路由器停止使用它的虚拟地址之间间隔只是一短暂的间隔。在这短暂的时间内,数据包有可能被丢失或复制,通常情况下,TCP传输协议能够保证端对端的数据恢复。

  四、结束语

  通常,在一个系统中使用RIP和OSPF去检测一个故障,需要数分钟(甚至可能检测不到)。但在SSR中配置好路由后使用VRRP配置一定数量的虚拟路由集群可在5秒钟内检测和确认一个故障,并且可迅速以新的路由取代。这种识别和在故障周围重路由的能力大大改善了骨干网络应用的故障复原能力。在CISCO的路由交换机上,可用热路由备份(HRVP)方法实现,在其它产品上大多有实现的办法。

[1]

文章录入:csh    责任编辑:csh

(0)

相关推荐

  • 浅谈千兆交换路由器的虚拟路由集群技术

    一.引言: 当前,IP已经成为大部分骨干网络产品的路由协议.在部分网络环境,用户对网络的要求是很高的,任何停工和储运损耗都会对用户造成严重影响.例如: 1.Internet服务提供商提供Web主机设备,为了使得用户的Web服务器对公众总是有效的,必须保证用户99.9999%的正常运行时间. 2.过程控制应用必须能够适时访问它的控制的系统,否则可能会发生结果损失严重的控制: 3.有时,运行在IP主机上的应用会超时,如果业务运行对网络应用要求较高,这种超时会带来很坏影响. 越来越多的IP主机使用DH

  • 浅谈React的最大亮点之虚拟DOM

    在Web开发中,需要将数据的变化实时反映到UI上,这时就需要对DOM进行操作,但是复杂或频繁的DOM操作通常是性能瓶颈产生的原因,为此,React引入了虚拟DOM(Virtual DOM)的机制. 一.什么是虚拟DOM? 在React中,render执行的结果得到的并不是真正的DOM节点,结果仅仅是轻量级的JavaScript对象,我们称之为virtual DOM. 虚拟DOM是React的一大亮点,具有batching(批处理)和高效的Diff算法.这让我们可以无需担心性能问题而"毫无顾忌&q

  • [Alibaba-ARouter]浅谈简单好用的Android页面路由框架

    开发一款App,总会遇到各种各样的需求和业务,这时候选择一个简单好用的轮子,就可以事半功倍 前言 Intent intent = new Intent(mContext, XxxActivity.class); intent.putExtra("key","value"); startActivity(intent); Intent intent = new Intent(mContext, XxxActivity.class); intent.putExtra(&

  • 浅谈高大上的微信小程序中渲染html内容—技术分享

    大部分Web应用的富文本内容都是以HTML字符串的形式存储的,通过HTML文档去展示HTML内容自然没有问题.但是,在微信小程序(下文简称为「小程序」)中,应当如何渲染这部分内容呢? 解决方案 wxParse 小程序刚上线那会儿,是无法直接渲染HTML内容的,于是就诞生了一个叫做「 wxParse 」的库.它的原理就是把HTML代码解析成树结构的数据,再通过小程序的模板把该数据渲染出来. rich-text 后来,小程序增加了「rich-text」组件用于展示富文本内容.然而,这个组件存在一个极

  • 浅谈Java高并发解决方案以及高负载优化方法

    目录 1.HTML静态化 2.图片服务器分离 3.数据库集群和库表散列 4.缓存 5.镜像 6.负载均衡 1)硬件四层交换 2)软件四层交换 一.高并发高负载类网站关注点之数据库 需要注意的是: 二.高并发高负载网站的系统架构之HTML静态化 网站HTML静态化解决方案 : 三.高并发高负载类网站关注点之缓存.负载均衡.存储 负载均衡/加速 存储 四.高并发高负载网站的系统架构之图片服务器分离 利用Apache实现图片服务器的分离,缘由: 环境介绍: 步骤: 五.高并发高负载网站的系统架构之数据

  • 浅谈JSON的数据交换、缓存问题和同步问题

    JSON轻量级的数据交换格式 相对于XML来说,JSON的解析速度更快,文档更小. JSON的格式 {属性名:属性值,属性名:属性值,--} 属性名的类型可以是string,number,boolean,null,object,且属性名必须用双引号引起来,如果属性值是字符串,也必须用双引号括起来. JSON表示数组 格式:[value,value,value],其中value可以是基本的数据类型,也可以是object类型.数组类型 数组类型 [ {"name":"yangjq

  • 浅谈el-table中使用虚拟列表对对表格进行优化

    目录 前言 解决思路 具体实现 需要满足的必备条件 问题 前言 我们会经常使用表格,如果数据量大就直接可以分页,但是不可避免的会出现一些需要一页要展示很多条的情况,或者不用分页. 这个时候如果纯展示还好一点,列表里如果加上可编辑,就会变得卡的不行,点个下拉框,下拉框好久才会弹出来.这样是十分影响用户使用. 解决思路 首先我考虑是不是由于数据加载太慢导致的页面卡顿,于是我采用了滚动加载的方式,首先获取数据后,先加载100条数据.滚动的时候再加载到页面中,这样分批次加载,就会减轻首次加载数据量太大的

  • 浅谈Linux的虚拟内存

    由来 虚拟内存 毋庸置疑,虚拟内存绝对是操作系统中最重要的概念之一.我想主要是由于内存的重要"战略地位".CPU太快,但容量小且功能单一,其他 I/O 硬件支持各种花式功能,可是相对于 CPU,它们又太慢.于是它们之间就需要一种润滑剂来作为缓冲,这就是内存大显身手的地方. 上图是虚拟内存最简单也是最直观的解释. 操作系统有一块物理内存(中间的部分),有两个进程(实际会更多)P1 和 P2,操作系统偷偷地分别告诉 P1 和 P2,我的整个内存都是你的,随便用,管够.可事实上呢,操作系统只

  • 浅谈oracle中单引号转义

    ORACLE 单引号转义: 在ORACLE中,单引号有两个作用: 1:字符串是由单引号引用 2:转义. 单引号的使用是就近配对,即就近原则.而在单引号充当转义角色时相对不好理解 1.从第二个单引号开始被视为转义符,如果第二个单引号后面还有单引号(哪怕只有一个). SQL> select '''' result from dual; RESULT ------ ' 第二个单引号被作为转义符,第三个单引号被转义,可将sql写成这样更好理解: select ' '' ' from dual; outp

  • 浅谈oracle SCN机制

    SCN(System Change Number)作为oracle中的一个重要机制,在数据恢复.Data Guard.Streams复制.RAC节点间的同步等各个功能中起着重要作用.理解SCN的运作机制,可以帮助你更加深入地了解上述功能. 在理解SCN之前,我们先看下oracle事务中的数据变化是如何写入数据文件的: 1.事务开始: 2.在buffer cache中找到需要的数据块,如果没有找到,则从数据文件中载入buffer cache中: 3.事务修改buffer cache的数据块,该数据

随机推荐