基于VRRP的虚拟路由通告

发布时间:2008-12-17 作者:唐益慰 冯健

    基于虚拟路由冗余协议(VRRP)的虚拟路由通告方法,把主设备中的虚拟地址通告给上层接入设备,通过上层设备的路选,使上下流的数据流的流向保持一致,克服了路径不一致导致的缺陷与问题。中兴路由器的仿真结果也验证了该方法能够得到流量路径一致,具有一定的实用价值[1-6]。

1 VRRP协议问题
    在基于TCP/IP协议的网络中,为了保证非直接物理连接设备之间的通信,必须指定路由。目前常用的指定路由的方法有两种:一种是通过路由协议如内部路由协议路由信息协议(RIP)和开发最短路径优先(OSPF)协议进行动态学习;另一种是静态配置。采用VRRP可以很好的避免静态配置指定网关的缺陷。

    但是由于目前VRRP虚拟地址生效的时候,只是简单加入了路由表中,并没有通告给上层路由,仅仅作为一个32位掩码的主机路由挂在路由链上。而主控VRRP设备的子网路由都是通告给路由协议的,会出现从接入设备上行的数据流向是经过VRRP主控设备,而下行数据流向则是经过VRRP备份设备回到接入设备。由于备份设备为竞选失败的设备,其可能的状态是不可预制的,如果该设备运行不正常,则可能产生上层设备下行数据包的丢失,导致网络传输的不稳定,如图1所示。


2 虚拟路由路径一致方法
    目前VRRP只给路由模块设置一条32 bits的主机路由,所以其路由信息无法通过其他路由协议分发,导致与主控虚拟路由相连的上层外部路由器设备无法确定数据的下一跳路由器。为解决这一问题而提出的虚拟路由通告策略,在VRRP虚拟路由器状态变化时,虚拟路由协议模块向路由模块传送一个虚拟路由地址,并通过各种有效的路由协议如BGP、OSPF传递给上层路由器

[7-9]。具体模块间的关系如图2所示。


    当虚拟路由器状态变化的时候,把其路由信息交给了路由模块,那么路由模块需要得到的信息进行不同的操作。图3为路由模块状态变化通告后的流程图。


    上层路由模块根据收到的虚拟路由模块的路由消息来更新虚拟路由,确定是否添加/更新路由,还是删除该路由。添加/更新后,需要向外分发该路由,使得这条路由能够生效。流程如图4所示。


    通过虚拟路由器的虚拟路由协议模块和路由模块、上层路由器中的路由模块的相关修改,数据流能够正确的返回主控路由器,使得上下行路径真正达成一致[10]。

3 虚拟路由路径一致性测试
    根据上述的虚拟路由通告的方法,使用3台路由器、1台交换机和若干PC机在一个局域网下实验,网络拓扑如图5所示。


    本文主要观察数据流的上送和返回路由是否正确,具体测试步骤如下面3条:

    (1)任选一台PC1,通过IE访问外部的网络。

    (2)在R2中查看PC1所发出的数据包是否从R1的下行流入、从R1的上行接口流出到达R3。

    (3)在R3中观察外部传送给PC1的数据流是否从其连接R1的下行接口流出、由R1传送给PC1。

    实验结果表明:在无虚拟路由通告的情况下,R3返回的数据流流向表现为随机,可能产生流量传送给备份状态的虚拟路由器R2,然后再由R2传给PC1的现象。在使用虚拟路由通告方法以后,路由器R3可以正确地选择下一跳的接口,使其返回数据包能够正确地从虚拟路由器的主设备中传递。

    经过在实验环境中的测试,虚拟路由通告完全能够解决标准协议具有的路径不一致问题。

4 结束语
    本文基于标准的VRRP,介绍了一种路由通告的方法,克服了VRRP的路径不对称问题。经过在模拟环境下的试验,验证了该方法能够使上、下行流量的路由保持一致,保证了VRRP的绝对冗余性质,并且该方法对标准协议兼容,可以作为标准协议的一个附加功能,提高标准协议的稳定性和可用性,具有一定的实用性与有效性。

    VRRP是在1998年3月初制定的,随着网络的发展,其应用环境与使用性能也产生了变化,越来越不能满足现代网络对于系统冗余功能的需要。本文仅针对该协议上下行路由不一致的问题提出方案,而协议的更多方面问题还有待解决,以使该协议真正做到可靠与安全,增强互联网的稳定性与可靠性。

5 参考文献
[1] KNIGHT S, WEAVER D, WHIPPLE D, et al. Virtual Router Redundancy Protocol [S]. RFC2338. 1998.
[2] HINDEN R. Virtual Router Redundancy Protocol [S]. RFC 3768. 2004.
[3] TATA K. Definitions of managed objects for the VRRP over IPv4 and IPv6 [EB/OL]. 2006-12-13. http://www.ietf.org/internet-drafts/draft-ietf-vrrp-unified-mib-06.txt.
[4] HINDEN R. Virtual router redundancy protocol for IPv6 [EB/OL]. 2004-09-28. http://www.ietf.org/proceedings/04nov/IDs/
draft-ietf-vrrp-ipv6-spec-07.txt.
[5] KUO JEN HAO, TE SIONG UI, LIAO PANG TING, et al. An evaluation of the virtual router redundancy protocol extension with load balancing [C]//Proceedings of 11th International Symposium on Pacific Rim Dependable Computing, Dec 12-14, 2005, Changsha, China. 2005: 133-139.
[6] WU WWIMING, WANG KUOCHEN, JAN RONGHONG, et al. A fast failure detection and failover scheme for SIP high availability networks [C]//Proceedings of 13th International Symposium on Pacific Rim International Symposium on Dependable Computing, Dec 17-19, 2007, Melbourne, Australia. 2007:187-190.
[7] 邹润生. VRRP技术实现网络的路由冗余和负载均衡[EB/OL]. 2006-08-15. cisco.chinaitlab.com/application/521865.html.
[8] 贾娟, 汪斌强, 杨帅. 一种基于VRRP的核心路由器高可用性方法研究与实现[J]. 电子技术应用, 2007, 33(4): 95-97.
[9] 郑艳涛. VRRP协议应用和改进研究[D]. 杭州:浙江大学, 2007.
[10] 左延智, 牛晓华. VRRP及其在专网中的应用[J]. 无线电工程, 2008, 38(2): 13-15.

收稿日期:2007-12-29


 

[摘要] 目前虚拟路由冗余协议(VRRP)的标准实现中,如果把虚拟地址作为主机路由加入到路由表中,会导致上行的数据流向与下行数据流向的不一致,可能造成报文丢失。虚拟路由通告的方法则把主设备中的虚拟地址通告给上行接入设备,从而下行流量可以通过上行设备的选路,使上下行数据流向保持了一致。通过在中兴通讯路由器上的实验,验证了该方法能够使虚拟路由冗余协议流量路径一致。对于路由冗余备份功能的优化具有一定的实用价值。

[关键词] 虚拟路由器;虚拟路由冗余协议(VRRP);路由通告

[Abstract] Presently, during the implementation of standard Virtual Router Redundancy Protocol (VRRP), virtual address is added to routing table as a host route, which may lead to upstream data flow having a different direction from that of downstream data flow, thus causing packet loss. According to virtual router advertise, virtual address of master device is used to upstream access device, which enables downstream traffics to have the same flow direction with that of upstream traffics via routing. With experiment on ZTE router, it is verified that this method can make traffic flow over the same path. It benefits the optimization of route redundancy backup function.

[Keywords] virtual router; Virtual Router Redundancy Protocol (VRRP); route advertise