<body bgcolor="#FFFFFF" text="#000000"> <table width="760" class="zi">
作者:张寿榆、王永群
一、引言:
当前,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主机上的透明应用。
<img src="200212260101.gif" tppabs="http://www.net130.com/netbass/RFCs/200212260101.gif" width="300" height="167">
(图一)
1、VRRP的概念
如图一所示,VRRP可以在工作站的缺省网关失效时提供一个备份路由器,VRRP可以创建一个具有虚拟MAC地址和虚拟IP地址的虚拟路由器。
诚然,我们可以在Windows98中添加多个缺省网关,但该特征只能在主机启动时使用。换句话说,主机启动时对网关列表中的第一个缺省网关使用ARP进行地址解析,如果解析失败,将对列表中的其它网关继续进行地址解析。
当主机找到缺省网关的MAC地址后,该网关突然瘫痪会整么样呢?只能从新启动主机,让它继续寻找下一个缺省网关。
使用VRRP便可以解决这个问题,因为它是动态变化的,如果主路由器瘫痪,则备份路由器随之便自动替代主路由器。主机根本觉察不到其中的丝毫差异。
虚拟路由集群技术被作为一个模块集成到SSR的软件中以保证网络应用的实用性,且提高了应用要求较高的网络的可靠性和适应性。
CABLETRON的虚拟路由集群技术遵循IETF(Internet工程任务组)制定的VRRP(虚拟冗余路由协议)标准协议。
<img src="200212260102.gif" tppabs="http://www.net130.com/netbass/RFCs/200212260102.gif" width="300" height="118">
(图二)
在图二中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所转发,保证不会由于路由改变而导致数据丢失。
<img src="200212260103.gif" tppabs="http://www.net130.com/netbass/RFCs/200212260103.gif" width="300" height="188">
(图三)
图三帮助说明虚拟路由集群是如何工作的。在这个图表中路由器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数据,并转发到相应的目的地。
<img src="200212260104.gif" tppabs="http://www.net130.com/netbass/RFCs/200212260104.gif" width="300" height="193">
(图四)
2.当SSR路由器恢复后会发生什么?
如果SSR B恢复了,它会通知它自己和SSR,让其停止模仿它的工作,从此SSR B会用它自己的MAC地址响应ARP请求,两个路由器同时对信息包进行路由。SSR B恢复响应和主路由器停止使用它的虚拟地址之间间隔只是一短暂的间隔。在这短暂的时间内,数据包有可能被丢失或复制,通常情况下,TCP传输协议能够保证端对端的数据恢复。
四、结束语
通常,在一个系统中使用RIP和OSPF去检测一个故障,需要数分钟(甚至可能检测不到)。但在SSR中配置好路由后使用VRRP配置一定数量的虚拟路由集群可在5秒钟内检测和确认一个故障,并且可迅速以新的路由取代。这种识别和在故障周围重路由的能力大大改善了骨干网络应用的故障复原能力。在CISCO的路由交换机上,可用热路由备份(HRVP)方法实现,在其它产品上大多有实现的办法。