一种vrrp的实现方法和设备的制作方法

文档序号:7709646阅读:294来源:国知局

专利名称::一种vrrp的实现方法和设备的制作方法
技术领域
:本发明涉及通信
技术领域
,特别是涉及一种VRRP的实现方法和设备。
背景技术
:在网络应用中,VRRP(VirtualRouterRedundancyProtocol,虚拟路由器冗余协议)是应用十分广泛的主机^f分技术,通过使用该VRRP将可以承担网关功能的一组路由器加入到备份组中,其中,该备份组由一个Master(主用)路由器和多个Backup(备用)路由器组成,在功能上该VRRP相当于一台虚拟3各由器,该虚拟3各由器具有IP地址,即虚拟IP地址。网络内的主才几通过该虚拟路由器与外部网络进行通信时,VRRP所在备份组内的路由器将根据优先级选举出Master路由器,并使用该Master路由器承担网关功能,而其他路由器作为Backup路由器,当Master路由器发生故障时,Backup路由器将取代Master路由器继续履行网关职责,从而保证网络内的主机不间断地与外部网络进行通信。为了增加网络的可靠性,通常使用双机热备份网络,而双机热备份是基于VRRP技术以实现主机的热备份的。在VRRP标准协议模式中,只有Master路由器可以转发报文,Backup路由器处于监听状态,无法转发报文,虽然创建多个备份组可以实现多个路由器之间的负载分担,但局域网内的主机需要设置不同的网关,增加了配置的复杂性。现有技术中,为了解决上述问题,VRRP负载均衡模式在VRRP提供的虚拟网关冗余备份功能基础上,增加了负载均衡功能,该负载均衡功能的实现原理具体为将一个虚拟IP地址与多个虛拟MAC(MediaAccessControl,媒体访问控制)地址对应,而VRRP备份组中的每个路由器均对应一个虚拟MAC地址,使得VRRP备份组中的每个路由器均能转发流量。在VRRP负载均衡模式中,只需要创建一个备份组,就可以实现备份组中多个路由器之间的负载分担,从而避免了VRRP备份组中Backup路由器始终处于空闲状态、网络资源利用率不高的问题。如图1所示,为了增加网络的可靠性,备份组内的各个路由器之间需要通过链路连接起来,并通过STP(SpanningTreeProtocol,生成树协议)/MSTP(MultipleSpanningTreeProtocol,多生成树协议)来避免环路。在图1中,L3S-A和L3S-B是两台三层交换机,L2S-1是二层交换机。其中,两台三层交换机之间运行VRRP,从而虚拟成一台设备,作为该L2S-1下挂终端(例如,终端l、终端2、终端3等)的网关。为了保证两台三层交换机之间链路的可靠性,L3S-A和L3S-B之间通过聚合链路连接起来,此时L3S-A至L3S-B至L2S-1之间就形成了环路。而为了避免该环路的产生,在该网络上起用生成树协议,在VRRP的负载分担模式下,通常将L2S-1设置为生成树协议的根节点,L2S-1与L3S-A之间的线3各以及L2S-1与L3S-B之间的连接线^各均是通的,而L3S-A和L3S-B之间的连接线路中断。通过在L3S-A和L3S-B之间选举出Master设备,Master设备负责为该备份组中的各设备(L3S-A和L3S-B)分配虚拟MAC地址,并为来自不同终端的ARP(AddressResolutionProtocol,地址解析协议)请求,应答不同的虚拟MAC地址,从而实现流量在L3S-A和L3S-B之间进4亍负载分担。而备份组中的Backup设备不会应答终端的ARP请求,从而保起到了负载分担作的用。在包括至少两个二层交换机,且至少两个二层交换机在同一个VLAN(VirtualLocalAreaNetwork,虚拟局域网)内的应用场合,用STP或MSTP的方式是无法避免环路的,如图2所示,L3S-A和L3S-B为两台三层交换机,L2S-1和L2S-2是两台二层交换机,其中,下挂于L2S-1的终端用户(终端1和终端2)以及下挂于L2S-2的终端用户(终端3和终端4)属于同一VLAN,此时,两台三层交换机之间运行VRRP,并虛拟成一台VRRP设备,作为该L2S-1和L2S-2下挂终端用户的网关。若仅仅中断L3S-A和L3S-B之间的聚合链路,网络中的环路还是存在的,例如,通过链路L3S-A至L2S-2至L3S-B至L2S-1至L3S-A之间形成了环路。即要解决环路问题必须断掉三层交换机和二层交换机之间的某一条链路,例如,L3S-B与L2S-2之间的链路,此时虽然避免了环路,但L2S-2却没法做到上行链路的双活,流量无法做到双上行链路的负载分担。基于上面的分析,目前在VRRP负载均衡模式进行负载分担时存在如下缺点现有双机热备份网络中一个VRRP组所在的VLAN内,无法同时解决VRRP负载分担和环路避免的问题,即在解决VRRP负载分担,无法解决环路避免的问题,导致数据包的无休止重复转发,形成了广播风暴,并造成双机热备份网络的故障;而解决环路避免的问题时,无法实现VRRP的负载分担,浪费了网络资源。
发明内容本发明提供一种VRRP的实现方法和设备,以在VRRP网络中实现负载分担,并避免环网的产生。为了达到上述目的,本发明提出了一种VRRP的实现方法,应用于VRRP备份组中,所述VRRP备份组包括主用设备和至少一个备用设备,所述方法包括以下步骤所述备用设备创建端口隔离对应关系,所述端口隔离对应关系中存储了所述备用设备中多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔离;所述备用设备将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使数据不能在所述多个端口之间进行转发;当检测到所述备用设备的端口或该端口对应的链路出现故障时,所述备用设备根据预设的策略更新所述端口隔离对应关系。优选的,还包括所述主用设备创建端口隔离对应关系,并将所述端口隔离对应关系中多个端口之间的隔离关系均设置为不隔离。优选的,所述方法还包括所述备用设备创建端口对应关系,所述端口对应关系中存储了了所述备用设备多个端口与优先级信息的对应关系;所述备用设备根据预设的策略更新所述端口隔离对应关系具体包括当检测到非直连链路的端口或该端口对应的链路出现故障时,所述备用设备在所述端口隔离对应关系中,放开故障端口与所述端口对应关系中优先级信息最优端口的隔离关系;或当检测到直连链路的端口或该端口对应的链路出现故障时,所述备用设备在所述端口隔离对应关系中删除所述故障端口。优选的,当检测到非直连链路的端口或该端口对应的链路出现故障,或检测到直连链路的端口或该端口对应的链路出现故障时,所述方法还包括所述备用设备将所述故障端口从所述端口对应关系中清除。优选的,当检测到非直连链路的端口或该端口对应的链路出现故障,或直连链路的端口或该端口对应的链路出现故障,且所述端口隔离对应关系中所述故障端口具有不隔离的对应关系时,所述备用设备根据预设的策略更新所述端口隔离对应关系还包括所述备用设备判断故障端口是否为优先级信息最优的端口;当判断结果为是时,所述备用设备获取所述端口隔离对应关系中的次优端口,将与所述故障端口具有不隔离对应关系的端口设置为,与所述次优端口具有不隔离对应关系。优选的,所述备用设备根据预设的策略更新所述端口隔离对应关系之后,还包括当检测到非直连链路恢复或检测到直连链路恢复时,将所述更新后的端口隔离对应关系恢复为初始的端口隔离对应关系,并将所述更新后的端口对应关系恢复为初始的端口对应关系。优选的,还包括若所述故障端口在端口对应关系中恢复的优先级信息为最优的优先级信息,且当前优先级信息最优的端口与其他端口具有不隔离关系,将所述故障端口与所述其他端口设置为不隔离关系,并将所述当前优先级信息最优的端口与其他端口设置为隔离关系。本发明提出了一种VRRP的实现设备,应用于VRRP备份组中,所述VRRP备份组包括主用设备和至少一个备用设备,所述VRRP的负载分担设备包括创建模块,用于创建端口隔离对应关系,所述端口隔离对应关系中存储了多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔离;设置模块,与所述创建模块电性连接,用于将所述创建模块创建的端口隔离对应关系中的多个端口之间的隔离关系设置为隔离或不隔离;处理模块,与所述设置模块电性连接,用于根据所述设置模块设置的多个端口之间的隔离关系对数据进行处理,以实现VRRP的负载分担。优选的,所述VRRP的实现设备为所述主用设备时,所述设置模块具体用于将所述端口隔离对应关系中多个端口之间的隔离关系均设置为不隔离,以使所述处理模块在处理数据时能在所述多个端口之间进行转发。优选的,所述VRRP的实现设备为所述备用设备时,所述设置模块具体用于将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使所述处理模块在处理数据时数据不能在所述多个端口之间进行转发。优选的,所述处理模块还用于当检测到所述备用设备的端口出现故障或该端口对应的链路时,根据预设的策略更新所述端口隔离对应关系。优选的,所述创建模块还用于创建端口对应关系,所述端口对应关系中存储了所述备用设备多个端口与优先级信息的对应关系;所述处理模块具体用于当检测到非直连链路的端口或该端口对应的链路出现故障时,在所述端口隔离对应关系中,放开故障端口与所述端口对应关系中优先级^f言息最优端口的隔离关系;或当^r测到直连链5^的端口或该端口对应的链3各出现故障时,在所述端口隔离对应关系中删除所述故障端口。优选的,所述处理模块还用于当检测到非直连链路的端口或该端口对应的链路出现故障,或直连链路的端口或该端口对应的链路出现故障,且所述端口隔离对应关系中所述故障端口具有不隔离的对应关系时,判断故障端口是否为优先级信息最优的端口;并当判断结果为是时,获取所述端口隔离对应关系中的次优端口,将与所述故障端口具有不隔离对应关系的端口设置为,与所述次优端口具有不隔离对应关系。优选的,所述处理模块还用于当检测到非直连链路恢复或检测到直连链路恢复时,将所述更新后的端口隔离对应关系恢复为初始的端口隔离对应关系,并将所述更新后的端口对应关系恢复为初始的端口对应关系。优选的,所述处理模块还用于当所述故障端口在端口对应关系中恢复的优先级信息为最优的优先级信息,且当前优先级信息最优的端口与其他端口具有不隔离关系,将所述故障端口与所述其他端口设置为不隔离关系,并将所述当前优先级信息最优的端口与其他端口设置为隔离关系。与现有技术相比,本发明具有以下优点通过在备用设备上维护端口隔离表项,实现了VRRP网络中的负载分担,并避免了环路的产生,有效提高了网络的带宽利用率。而且在VRRP网络中不需要使用生成树协议来避免环路,简化了网络的部署,降低了设备的负荷,并增强了网络的可靠性。图1为现有技术中备份组内的各个路由器之间连接示意图2为现有技术中另一种^P分组内的各个路由器之间连接示意图3为本发明提出的一种VRRP的实现方法流程图4为本发明具体应用场景下提出的组网模式结构图5为本发明图4所示的应用场景所对应的VRRP的实现方法流程图6为本发明应用场景下检测到非直连链路出现故障时的处理流程图7为本发明应用场景下检测到直连链路出现故障时的处理流程图8为本发明提出的VRRP的实现设备结构图。具体实施例方式本发明的核心思想是在VRRP负载均衡的组网模式中,对于一个VLAN,只需要创建一个VRRP备份组,通过在该VRRP组的Backupi殳备上,对VRRP组所在VLAN的端口进行VLAN内端口隔离,并在Backup设备上切断VLAN内的二层互通,从而实现VRRP的负载分担,并避免环路的产生,有效提高了网络的带宽利用率。而且在VRRP网络中不需要使用生成树协议来避免环路,简化了网络的部署,降低了设备的负荷,并增强了网络的可靠性。本发明中,通过在备用设备上创建并维护端口隔离表项,在对数据进行处理时,根据该端口隔离表项中的隔离关系,当两个端口之间的隔离关系为不隔离时,可以在这两个端口之间进行数据的传输,而当两个端口之间的隔离关系为隔离时,不能在这两个端口之间进行数据的传输,从而避免了环路的产生,并能够进行主用设备和备用设备之间的负载分担。本发明提出的一种VRRP的实现方法,应用于VRRP备份组中,所述VRRP备份组包括主用设备和至少一个备用设备,如图3所示,所述方法包括以下步骤步骤S301,所述备用设备创建端口隔离对应关系,所述端口隔离对应关系中存储了所述备用设备中多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔离。需要说明的是,所述主用设备也需要创建端口隔离对应关系,并将所述端口隔离对应关系中多个端口之间的隔离关系均设置为不隔离。其中,为了实现端口隔离的过程,需要在备用设备上维护VLAN内两个端口之间是否隔离的对应关系,如果两个端口之间需要隔离,则断开VLAN内该两个端口之间的二层互通,即从一个端口收到的任何二层报文(例如,单播报文,未知单播报文,广播报文,组播报文)时,均不向与之隔离的端口发送该二层报文。如果两个端口之间不隔离,则这两个端口能进行二层互通。步骤S302,所述备用设备将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使数据不能在所述多个端口之间进行转发。进一步的,备用设备可以将所有端口之间的隔离关系均设置为隔离,使得任意两个端口之间的隔离关系均为隔离,该任意两个端口之间不能进行数据转发。需要说明的是,本发明中将多个端口之间的隔离关系均设置为隔离时,包含上述将所有端口之间的的隔离关系均设置为隔离的内容,即将所有端口之间的隔离关系均设置为隔离在本发明的保护范围之内。步骤S303,当检测到所述备用设备的端口或该端口对应的链路出现故障时,所述备用设备根据预设的策略更新所述端口隔离对应关系。其中,所述备用设备还需要创建端口对应关系,所述端口对应关系中存储了所述备用设备多个端口与优先级信息的对应关系;所述备用设备根据预设的策略更新所述端口隔离对应关系具体包括当检测到非直连链路的端口或该端口对应的链路出现故障时,所述备用设备在所述端口隔离对应关系中,放开故障端口与所述端口对应关系中优先级信息最优端口的隔离关系;或当检测到直连链路的端口或该端口对应的链路出现故障时,所述备用设备在所述端口隔离对应关系中删除所述故障端口。本发明中,所述备用设备将所述故障端口从所述端口对应关系中清除。需要说明的是,当检测到非直连链路的端口或该端口对应的链路出现故障,或直连链i各的端口或该端口对应的链5^出现故障,且所述端口隔离对应关系中所述故障端口具有不隔离的对应关系时,所述备用设备根据预设的策略更新所述端口隔离对应关系还包括所述备用设备判断故障端口是否为优先级信息最优的端口;当判断结果为是时,所述备用设备获^^所述端口隔离对应关系中的次优端口,将与所述故障端口具有不隔离对应关系的端口设置为,与所述次优端口具有不隔离对应关系。其中,所述备用设备根据预设的策略更新所述端口隔离对应关系之后,还包括当检测到非直连链路恢复或检测到直连链路恢复时,将所述更新后的端口隔离对应关系恢复为初始的端口隔离对应关系,并将所述更新后的端口对应关系恢复为初始的端口对应关系。若所述故障端口在端口对应关系中恢复的优先级信息为最优的优先级信息,且当前优先级信息最优的端口与其他端口具有不隔离关系,将所述故障端口与所述其他端口设置为不隔离关系,并将所述当前优先级信息最优的端口与其他端口设置为隔离关系。本发明中,当两个端口之间的隔离关系为隔离时,所述备用设备不能在所述两个端口之间进行数据转发;或当两个端口之间的隔离关系为不隔离时,所述备用设备在所述两个端口之间进行数据转发。需要说明的是,对于出现故障的链路或故障的端口,需要分两种情况考虑,(1)与Backup设备直连的链路故障,该Backup设备自身能够感知到端口DOWN(出现故障);(2)与Master设备直连的链路故障,该Backup设备不能够感知端口DOWN,需要通过一种检查机制进行检测。其中,该检测机制具体为Master设备定时在VRRP组所在VLAN内发送VRRP报文,Backup设备进行监听。由于VRRP是组播报文(目的MAC为01005E000002),且携带了VRRP组号(源MAC为01005E0001XX,XX为VRID组号),Backup设备上与Master设备有连接关系的每个端口都能收到VRRP报文,如果某个端口在3个定时器周期(才艮据实际情况还可以选取其它的时间周期)内没有收到该VRRP组的VRRP报文,说明此端口所连接的二层交换机与Master设备的上行链路发生了故障(直连链路故障能自己感知到端口DOWN)。从而实现了链路的故障检测。可见,本发明中,通过在备用设备上维护端口隔离表项,实现了VRRP网络中的负载分担,并避免了环路的产生,有效提高了网络的带宽利用率。而且在VRRP网络中不需要使用生成树协议来避免环路,简化了网络的部署,降低了设备的负荷,并增强了网络的可靠性。以下结合一具体的应用场景,对本发明提出的VRRP实现方法进行详细描述,以图4所示的组网模式图为例进行说明。其中,三层交换机L3S-A和三层交换机L3S-B属于虚拟IP地址为10.1.1.1/24的备份组1,10.1.1.0/24所在网段内主机的缺省网关为10.1.1.1/24,为了保证VRRP备份组中的网关设备出现故障(例如,L3S-A或L3S-B)或链路出现故障时,VLAN内的终端用户仍然可以通过该网关(IP地址为10.1.1.1/24)访问到外部网络;备份组1需要工作在负载均衡模式下,通过一个备份组实现负载分担,并充分利用该网关资源。其中,为了方便描述,假设在上述所有设备上,备份组1所在VLAN为VLAN10,并且L3S-A在备份组1中的优先级比L3S-B高。上述的VRRP的实现方法如图5所示,包括以下步骤步骤S501,在L3S-A和L3S-B上配置VRRP备份组1,将L3S-A和L3S-B上VLAN10内所有端口在VLAN10内均进行二层隔离。其中,端口的隔离并不影响VRRP协议纟艮文的交互,在VRRP初始配置过程时,不存在Master设备,L3S-A和L3S-B上所有VLAN10内的端口均二层隔离,并不会有环路的存在。步骤S502,L3S-A和L3S-B在启动VRRP功能后,根据优先级确定自身的角色(例如,主用设备,或备用设备)。其中,L3S-A和L3S-B在创建时工作的状态均为Backup状态,L3S-A和L3S-B通过VRRP通告纟艮文的交互获知VRRP组其它成员的优先级。即L3S-A向L3S-B发送VRRP通告报文,使L3S-B获知L3S-A的优先级,L3S-B向L3S-A发送VRRP通告报文,使L3S-A获知L3S-B的优先级,通过VRRP通告报文的交互后,优先级高的设备将成为Master设备,优先级低的设备保持Backup状态。其中,本发明中是以L3S-A在备份组1中的优先级比L3S-B高为例进行说明的,即L3S-A状态变为Master设备,成为Master设备的L3S-A会立即向Backup设备(例如,L3S-B)发送免费ARP(AddressResolutionProtocol,地址解析协议),通知与该Master设备连接的其它设备或主机自身的虛拟MAC地址,并在之后定期发送VRRP通告才艮文,通知备份组l内的其他设备自身工作正常,Backup设备处于监听或者等待状态。步骤S503,主用设备将VLAN10内所有端口的隔离关系撤销,即L3S-A撤销所有端口的隔离关系,该L3S-A下桂在不同的二层设备(例如,L2S-1、L2S-2和L2S-3)下的终端用户通过该L3S-A的VLAN10进行互通,即不同二层设备下挂的终端用户之间通过Master设备实现互通,二层设备L2S-1,L2S-2,L2S-3的上行链路均为正常通路,可以按照VRRP的负载分担方式进行。步骤S504,当检测到非直连链路出现故障时,在端口隔离表中放开该端口与端口备份列表中的最优端口的隔离关系。其中,该端口备份列表可按链路的稳定程度和带宽定义优先级,定义优先级可以手工指定,也可以通过某种算法计算。通常把两台VRRP设备之间的级联链路指定为最高优先级。需要说明的是,非直连链路出现故障具体为设备无法直接感知的链路故障,直连链路出现故障具体为设备直接感知的链路故障。继续如图4所示的组网模式为例进行说明,其中,通过上面的分析可知L3S-B为Backup设备,在所有链路都正常时,对于该Backup设备,VLAN10内存储的表项具体为表1所示的端口备份列表和表2所示的端口隔离表,在端口备份列表中存储的是端口和优先级的对应关系,在端口隔离表中存储的为是否隔离的对应关系。其中,端口备份列表中的优先级信息可以手工指定,也可以通过一定的算法(例如,根据链路的稳定程度和带宽定义优先级信息)来生成,而每个端口的优先级是不同的,本发明中以端口Pl的优先级为1,端口P2的优先级为2,端口P3的优先级为3,端口P4的优先级为4为例进行说明。本发明中,端口的优先级越小,端口的性能越好,从表1中可以看出,端口Pl为最优端口。表1<table>tableseeoriginaldocumentpage16</column></row><table>表2<table>tableseeoriginaldocumentpage16</column></row><table>当检测到非直连链路出现故障时,例如,Master设备的下行链路出现故障,以L3S-A与L2S-1之间的链路出现故障为例进行说明(当然,出现故障的链路并不局限于此,还可以是L3S-A与L2S-2之间的链路出现故障或L3S-A与L2S-3之间的链路出现故障,在此不再详加描述),其中,L3S-A为VRRP的Master设备,将定时向VRRP备份组1所在的VLAN(VLAN10)内所有端口发送VRRP协议报文,而L3S-B为Backup设备,将监听协议报文,即监听VRRP协议报文。其中,该VRRP协议报文是组播报文(例如,目的MAC地址为01005E000002),且该VRRP协议报文携带了VRRP组号(例如,源MAC地址为01005E0001XX,XX为VRRP的组号),在Backup设备上与Master设备有连接关系的每个端口均能收到VRRP报文,即链路在正常时,Pl端口-P4端口之间的所有端口均会收到该备份组的VRRP协议报文。若L3S-A与L2S-1之间的链路发生故障,则端口P2无法收到备份组1的VRRP协议报文(端口P2从链路L3S-A至L2S-1至端口P2接收VRRP协议报文),若在预设的定时周期(例如,3定时周期,每个定时周期为l分钟)内均无法收到该VRRP协议报文,L3S-B则认为通过端口P2与Master设备(L3S-A)的链路中断,端口P2已经不具备作为备份端口的能力,将该端口P2从端口备份列表中清除,并找到端口备份列表中最优的端口PI(优先级最小),打开端口PI与端口P2之间的隔离关系,即通过端口PI实现端口PI与端口P2之间的互通,以实现端口P2能够进行二层互通。如表3所示的端口备份列表变更情况。表3<table>tableseeoriginaldocumentpage17</column></row><table>其中,在端口备份列表发生变化后,对应的端口隔离表也将发生变化,此时,已经打开了端口PI与端口P2之间的隔离关系,该隔离情况如表4所示的变更后的端口隔离表。表4<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table>综上可以看出,L3S-A与L2S-1之间的链路发生故障时,对于L2S-1下挂的终端用户,通过链路L2S-1至端口P2至端口Pl至L3S-A,并通过L3S-A访问外部网络,从而实现VRRP备份组访问外部网络,当然,为了实现负载分担,若L3S-A将虚拟MAC地址设置为L3S-B的MAC地址时,还可以通过链路L2S-1至端口P2至L3S-B访问外部网络,并且L3S-B之间的端口是具有隔离关系的,并不会产生环路,提高了网络的可靠性。其中,L3S-A与L2S-1之间的链路发生故障时,对于L2S-1下挂的终端用户,与其他二层交换机的下挂终端用户的访问路径也将发生变化,以L2S-1下挂的终端用户与L2S-3下挂的终端用户之间的互访为例,该互访过程的传输路径具体为链路L2S-1至端口P2至端口Pl至L3S-A至L2S-3,通过该链路实现了L2S-1下挂的终端用户与L2S-3下挂的终端用户之间的互访。本发明中,若L3S-A与L2S-1之间的链路恢复时,即L3S-B从端口P2收到VRRP协议报文,此时认为通过P2端口到Master设备的链路已经恢复,需要将P2端口恢复到端口备份列表中,并且端口P2和端口Pl在端口隔离表中的隔离关系也恢复成隔离状态。其中,恢复后的端口备份列表如表l所示,恢复后的端口隔离表如表2所示,在此不再赘述。需要说明的是,当检查到非直连链路恢复时,将发生故障的端口(已经恢复)加入备份端口表和端口隔离列表中,其中,该加入过程具体为在端口备份列表中恢复为原始的优先级,在端口隔离列表中初始化为与其他端口均隔离。若在端口备份列表中恢复的优先级为列表中的最高优先级,将原来的最高优先级与其他端口的不隔离关系替换成新的最高优先级端口与其他端口的不隔离关系,原来的最高优先级端口与其他端口的隔离关系改成隔离。若在端口备份列表中恢复的优先级不是列表中的最高优先级,则保持该端口隔离列表不变。步骤S505,当检测到直连链路出现故障时,将出现故障的端口从端口备份列表和端口隔离列表中清除。继续如图4所示的组网模式为例进行说明,在所有链路都正常时,对于Backup设备,VLAN10内存储的表项具体为表1所示的端口备份列表和表2所示的端口隔离表,在端口备份列表中存储的是端口和优先级的对应关系,在端口隔离表中存储的为是否隔离的对应关系。当检测到直连链路出现故障时,例如Backup设备的下行链路出现故障,以L3S-B与L2S-2之间的链路出现故障为例进行说明(当然,出现故障的链路并不局限于此,还可以是L3S-B与L2S-1之间的链路出现故障或L3S-B与L2S-3之间的链路出现故障,在此不再详加描述),由于该L3S-B能够冲佥测到自身的P3端口出现故障(即P3端口处于DOWN状态),即L3S-B获知L3S-B与L2S-2之间的链路出现故障时,检测到P3端口出现故障,其中,P3端口在出现故障后已不具备作为备份端口的能力,即需要将该将P3端口从端口备份列表中清除。如表5所示的端口备份列表变更情况。<table>tableseeoriginaldocumentpage19</column></row><table>其中,在端口备份列表发生变化后,对应的端口隔离表也将发生变化,如表6所示的变更后的端口隔离表,在该端口隔离表中也将端口P3的相应内容清除。<table>tableseeoriginaldocumentpage19</column></row><table>综上可以看出,L3S-B与L2S-2之间的链路出现故障时,对于L2S-2下挂的终端用户,通过链路L2S-2至L3S-A至端口Pl至L3S-B,并通过L3S-B访问外部网络,从而实现VRRP备份组访问外部网络,当然,为了实现负载分担,若L3S-A将虚拟MAC地址设置为L3S-A的MAC地址时,还可以通过链路L2S-2至L3S-A访问外部网络,从而实现了VRRP备份组的负载分担过程。本发明中,若L3S-B与L2S-2之间的链路恢复,L3S-B通过端口UP检测到链路已经恢复,于是将P3端口恢复到端口备份列表和端口隔离列表中。原故障链路的上下行流量也同时恢复。恢复后的端口备份列表如表1所示,恢复后的端口隔离表如表2所示,在此不再赘述。需要说明的是,当检测到直连链路出现故障时,若发生故障的端口存在与其他端口的不隔离关系,并且该发生故障的端口为最优的端口时,需要用端口备份列表中的最优端口替换该发生故障的端口,使该最优端口与该其他端口具有不隔离关系。当检查到直连链路恢复时,将发生故障的端口(已经恢复)加入备份端口表和端口隔离列表中,其中,该加入过程具体为在端口备份列表中恢复为原始的优先级,在端口隔离列表中初始化为与其他端口均隔离。若在端口备份列表中恢复的优先级为列表中的最高优先级,将原来的最高优先级与其他端口的不隔离关系替换成新的最高优先级端口与其他端口的不隔离关系,原来的最高优先级端口与其他端口的隔离关系改成隔离。若在端口备份列表中恢复的优先级不是列表中的最高优先级,则保持该端口隔离列表不变。其中,当检测到直连链路出现故障时,在将检测到故障的端口从备份端口列表中清除之后,还需要将该端口与具有最高优先级的备份端口的改成不隔离。本发明中,继续如图4所示的组网模式为例进行说明,详细说明一下当Master设备的下行链路故障后,再发生VRRP设备级联链路故障(即L3S-A和L3S-B之间的链路故障)时的处理过程。从上面步骤S504中已经获知Master设备的下行链路故障时的处理过程,即检测到非直连链路出现故障的处理过程,此时,备用设备中存储的端口备份列表如表3所示,端口隔离表如表4所示。此时,又发生了L3S-A与L3S-B之间的链路故障,L3S-B检测到故障(即端口P1D0WN出现故障),从上可以看出,Pl端口不具备作为4^f分端口的能力,需要从端口备份列表和端口隔离列表中剔除,分别如表7所示的端口备份列表和表8所示的端口隔离表。表7(清除了Pl端口):<table>tableseeoriginaldocumentpage21</column></row><table>通过表8可以看出,当Pl端口DOWN之后,需要将表8中的P1端口删除,而Pl端口是与P2端口具有不隔离关系的,此时,需要选取端口4^分列表中的最优端口替代该P1端口,从表7可以看出,当前最优端口为端口P3,此时,需要使用端口P3替代该P1端口,即P1端口是与P2端口的不隔离关系变成了P3端口是与P2端口的不隔离关系。需要说明的是,对于设备VRRP优先级改变等原因导致的VRRP主备链路切换时,本发明需要描述端口隔离与VRRP状态绑定情况,即如果VRRP的状态为备份状态,则将该备份设备上该VRRP组所在VLAN的所有端口在VLAN内按照上述的本发明方法进行隔离,以阻断相应的VLAN环^各,并实现故障保护;如果状态切换成主用状态,则取消该VLAN端口的所有隔离情况,即将本方明中的所有表项更新为初始状态,在此不再描述。本发明采用的是端口隔离与VRRP状态绑定的方法,任何能在备份组中取出一台设备不进行VLAN端口隔离,备份组内其他所有设备进行VLAN内端口隔离的方法,均在本发明的保护范围只内。需要说明的是,本发明适用于IPV4网络和IPV6网络,其中,本发明是以一个VLAN内一个VRRP备份组的情况为例进行说明的,对于多个二层接入VLAN,同样可以采用本发明中端口隔离方法,采用基于VLAN下做的隔离,对于接入交换机存在多个VLAN接入的情况,本发明同样适用。即任何能进行二层端口隔离避免环路的方法均为本发明的保护范围。本发明是对VRRP负载分担模式的一个改进,对于超过两台VRRP设备的主机备份网络,本发明同样适用。如图6所示,对上述检测到非直连链路出现故障时的处理过程进行详细描述,该处理过程包括以下步骤步骤S601,备用设备检查到P端口所在链路非直连链路出现故障,其中,本发明中是以P端口为例进行说明,还可以有其他的情况,在此不再详加赘述。步骤S602,备用设备判断P端口是否为端口备份列表中的最优端口,当判断结果为是时,转到步骤S604,否则,转到步骤S603。步骤S603,备用设备清除端口备份列表中的P端口。步骤S604,备用设备清除端口备份列表中的P端口,并取次优端口Q,其中,该次优端口Q为除了P端口之外最优的端口。步骤S605,备用设备判断端口隔离表中是否有与该P端口不隔离的表项,当断结果为是时,转到步骤S606,否则,转到步骤S607。步骤S606,备用设备取出与P端口不隔离的所有端口,设置端口Q与上述所有端口不隔离。步骤S607,备用设备将隔离表中P端口与端口备份列表最优端口设置为不隔离。其中,上述步骤可以根据实际需要对各个步骤顺序进行调整。如图7所示,对上述检测到直连链路出现故障时的处理过程进行详细描述,该处理过程包括以下步骤步骤S701,备用设备检查到P端口所在链路直连链路出现故障。步骤S702,备用设备判断P端口是否为端口备份列表中的最优端口,当判断结果为是时,转到步骤S704,否则,转到步骤S703。步骤S703,备用设备清除端口备份列表中的P端口。步骤S704,备用设备清除端口备份列表中的P端口,并取次优端口Q,其中,该次优端口Q为除了P端口之外最优的端口。步骤S705,备用设备判断端口隔离表中是否有与该P端口不隔离的表项,当断结果为是时,转到步骤S706,否则,转到步骤S707。步骤S706,备用设备取出与P端口不隔离的所有端口,设置端口Q与上述所有端口不隔离。步骤S707,备用设备清除隔离表中与P端口的相关表项。其中,上述步骤可以根据实际需要对各个步骤顺序进行调整。本发明中,通过解决VRRP负载分担时网络的环路问题,在一个正常的VRRP组中,Master设备只有一个,将多个Backup设备上VRRP组所在VLAN的端口二层隔离之后,VLAN内不存在环路,网络中不需要部署STP/MSTP等协议来避免环路;通过在VLAN内端口隔离与VRRP状态联动,当VRRP组状态发生变化时,VLAN内端口是否隔离也随之相应变化。由于端口隔离不影响VRRP设备与下挂的二层交换机之间的链路连通,所以网络能按VRRP负载分担的方式工作,有效实现负载分担;对于二层接入交换机的上行链路中断的情况,本方案提供了链路检查机制,通过链路检查来维护端口隔离表,保证了网络的正常应用。可见,通过使用本发明提供的方法,在备用设备上维护端口隔离表项,实现了VRRP网络中的负载分担,并避免了环路的产生,有效提高了网络的带宽利用率。而且在VRRP网络中不需要使用生成树协议来避免环路,简化了网络的部署,降低了设备的负荷,并增强了网络的可靠性。其中,本发明方法可以根据实际需要对各个步骤顺序进行调整。本发明还提出了一种VRRP的实现设备,应用于VRRP备份组中,所述VRRP备份组包括主用设备和至少一个备用设备,如图8所示,所述VRRP的负载分担设备包括创建模块81,用于创建端口隔离对应关系,所述端口隔离对应关系中存储了多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔。其中,所述创建^t块81还用于创建端口对应关系,所述端口对应关系中存储了所述备用设备多个端口与优先级信息的对应关系。其中,为了实现端口隔离的过程,需要在备用设备上维护VLAN内两个端口之间是否隔离的对应关系,如果两个端口之间需要隔离,则断开VLAN内该两个端口之间的二层互通,即从一个端口收到的任何二层报文(例如,单播报文,未知单播报文,广播报文,组播报文)时,均不向与之隔离的端口发送该二层报文。如果两个端口之间不隔离,则这两个端口能进行二层互通。设置模块82,与所述创建模块81电性连接,用于将所述创建模块81创建的端口隔离对应关系中的多个端口之间的隔离关系设置为隔离或不隔离。其中,所述VRRP的实现设备为所述主用设备时,所述设置模块82具体用于将所述端口隔离对应关系中多个端口之间的隔离关系均设置为不隔离,以使所述处理模块在处理数据时能在所述多个端口之间进行转发。其中,所述VRRP的实现设备为所述备用设备时,所述设置模块82具体用于将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使所述处理模块在处理数据时数据不能在所述多个端口之间进行转发。处理模块83,与所述设置模块82电性连接,用于根据所述设置模块82设置的多个端口之间的隔离关系对数据进行处理,以实现VRRP的负载分担。本发明中,所述处理模块83还用于当检测到所述备用设备的端口出现故障时,根据预设的策略更新所述端口隔离对应关系。需要说明的是,所述处理模块83具体用于当检测到非直连链路的端口或该端口对应的链路出现故障时,在所述端口隔离对应关系中,;改开故障端口与所述端口对应关系中优先级信息最优端口的隔离关系;或当检测到直连链路的端口或该端口对应的链3各出现故障时,在所述端口隔离对应关系中删除所述故障端口。进一步的,所述处理模块83还用于当检测到非直连链路的端口或该端口对应的链路出现故障,或直连链路的端口或该端口对应的链路出现故障,且所述端口隔离对应关系中所述故障端口具有不隔离的对应关系时,判断故障端口是否为优先级信息最优的端口;并当判断结果为是时,获取所述端口隔离对应关系中的次优端口,将与所述故障端口具有不隔离对应关系的端口设置为,与所述次优端口具有不隔离对应关系。进一步的,所述处理模块83还用于当检测到非直连链路恢复或检测到直连链路恢复时,将所述更新后的端口隔离对应关系恢复为初始的端口隔离对应关系,并将所述更新后的端口对应关系恢复为初始的端口对应关系。进一步的,所述处理模块83还用于当所述故障端口在端口对应关系中恢复的优先级信息为最优的优先级信息,且当前优先级信息最优的端口与其他端口具有不隔离关系,将所述故障端口与所述其他端口设置为不隔离关系,并将所述当前优先级信息最优的端口与其他端口设置为隔离关系。其中,所述处理模块83具体用于当两个端口之间的隔离关系为隔离时,不在所述两个端口之间进行数据转发;或当两个端口之间的隔离关系为不隔离时,在所述两个端口之间进行数据转发。需要说明的是,对于出现故障的链路,需要分两种情况考虑,(1)与Backup设备直连的链路故障,该Backup设备自身能够感知到端口DOWN(出现故障);(2)与Master设备直连的链路故障,该Backup设备不能够感知端口DOWN,需要通过一种检查机制进行检测。其中,该检测机制具体为Master设备定时在VRRP组所在VLAN内发送VRRP报文,Backup设备进行监听。由于VRRP是组播报文(目的MAC为01005E000002),且携带了VRRP组号(源MAC为01005E0001XX,XX为VRID组号),Backup设备上与Master设备有连接关系的每个端口都能收到VRRP报文,如果某个端口在3个定时器周期(根据实际情况还可以选取其它的时间周期)内没有收到该VRRP组的VRRP报文,说明此端口所连接的二层交换机与Master设备的上行链路发生了故障(直连链路故障能自己感知到端口DOWN)。从而实现了链路的故障检测。可见,通过使用本发明提供的方法,在备用设备上维护端口隔离表项,实现了VRRP网络中的负载分担,并避免了环路的产生,有效提高了网络的带宽利用率。而且在VRRP网络中不需要使用生成树协议来避免环路,简化了网络的部署,降低了设备的负荷,并增强了网络的可靠性。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以可借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明所述的方法。以上所述仅是本发明的优选实施方式,应当指出,对于本
技术领域
的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。权利要求1、一种VRRP的实现方法,应用于VRRP备份组中,所述VRRP备份组包括主用设备和至少一个备用设备,其特征在于,所述方法包括以下步骤所述备用设备创建端口隔离对应关系,所述端口隔离对应关系中存储了所述备用设备中多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔离;所述备用设备将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使数据不能在所述多个端口之间进行转发;当检测到所述备用设备的端口或该端口对应的链路出现故障时,所述备用设备根据预设的策略更新所述端口隔离对应关系。2、如权利要求l所述的方法,其特征在于,还包括所述主用设备创建端口隔离对应关系,并将所述端口隔离对应关系中多个端口之间的隔离关系均设置为不隔离。3、如权利要求l所述的方法,其特征在于,所述方法还包括所述备用设备创建端口对应关系,所述端口对应关系中存储了所述备用设备多个端口与优先级信息的对应关系;所述备用设备根据预设的策略更新所述端口隔离对应关系具体包括当检测到非直连链路的端口或该端口对应的链路出现故障时,所述备用设备在所述端口隔离对应关系中,放开故障端口与所述端口对应关系中优先级信息最优端口的隔离关系;或当检测到直连链路的端口或该端口对应的链路出现故障时,所述备用设备在所述端口隔离对应关系中删除所述故障端口。4、如权利要求3所述的方法,其特征在于,当检测到非直连链路的端口或该端口对应的链路出现故障,或检测到直连链路的端口或该端口对应的链路出现故障时,所述方法还包括所述备用设备将所述故障端口从所述端口对应关系中清除。5、如权利要求3所述的方法,其特征在于,当检测到非直连链路的端口或该端口对应的链路出现故障,或直连链路的端口或该端口对应的链路出现故障,且所述端口隔离对应关系中所述故障端口具有不隔离的对应关系时,所述备用设备根据预设的策略更新所述端口隔离对应关系还包括所述备用设备判断故障端口是否为优先级信息最优的端口;当判断结果为是时,所述备用设备获取所述端口隔离对应关系中的次优端口,将与所述故障端口具有不隔离对应关系的端口设置为与所述次优端口具有不隔离对应关系。6、如权利要求3所述的方法,其特征在于,所述备用设备根据预设的策略更新所述端口隔离对应关系之后,还包括当检测到非直连链路恢复或检测到直连链路恢复时,将所述更新后的端口隔离对应关系恢复为初始的端口隔离对应关系,并将所述更新后的端口对应关系恢复为初始的端口对应关系。7、如权利要求6所述的方法,其特征在于,还包括若所述故障端口在端口对应关系中恢复的优先级信息为最优的优先级信息,且当前优先级信息最优的端口与其他端口具有不隔离关系,将所述故障端口与所述其他端口设置为不隔离关系,并将所述当前优先级信息最优的端口与其他端口设置为隔离关系。8、一种VRRP的实现设备,应用于VRRP备份组中,所述VRRP备份组包括主用设备和至少一个备用设备,其特征在于,所述VRRP的负载分担设备包括创建模块,用于创建端口隔离对应关系,所述端口隔离对应关系中存储了多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔离;设置模块,与所述创建模块电性连接,用于将所述创建模块创建的端口隔离对应关系中的多个端口之间的隔离关系i殳置为隔离或不隔离;处理模块,与所述设置模块电性连接,用于根据所述设置模块设置的多个端口之间的隔离关系对数据进行处理,以实现VRRP的负载分担。9、如权利要求8所述的设备,其特征在于,所述VRRP的实现设备为所述主用设备时,所述设置模块具体用于将所述端口隔离对应关系中多个端口之间的隔离关系均设置为不隔离,以使所述处理模块在处理数据时能在所述多个端口之间进行转发。10、如权利要求8所述的设备,其特征在于,所述VRRP的实现设备为所述备用设备时,所迷设置模块具体用于将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使所述处理模块在处理数据时数据不能在所述多个端口之间进行转发。11、如权利要求10所述的设备,其特征在于,所述处理模块还用于当检测到所述备用设备的端口或该端口对应的链路出现故障时,根据预设的策略更新所迷端口隔离对应关系。12、如权利要求11所述的设备,其特征在于,所述创建模块还用于创建端口对应关系,所迷端口对应关系中存储了所述备用设备中多个端口与优先级信息的对应关系;所述处理模块具体用于当检测到非直连链路的端口或该端口对应的链路出现故障时,在所述端口隔离对应关系中,;^文开故障端口与所述端口对应关系中优先级信息最优端口的隔离关系;或当检测到直连链路的端口或该端口对应的链路出现故障时,在所述端口隔离对应关系中删除所述故障端口。13、如权利要求11所述的设备,其特征在于,所述处理模块还用于当检测到非直连链路的端口或该端口对应的链路出现故障,或直连链if各的端口或该端口对应的链路出现故障,且所述端口隔离对应关系中所述故障端口具有不隔离的对应关系时,判断故障端口是否为优先级信息最优的端口;并当判断结果为是时,获取所述端口隔离对应关系中的次优端口,将与所述故障端口具有不隔离对应关系的端口设置为,与所述次优端口具有不隔离对应关系。14、如权利要求11所述的设备,其特征在于,所述处理模块还用于当检测到非直连链路恢复或检测到直连链路恢复时,将所述更新后的端口隔离对应关系恢复为初始的端口隔离对应关系,并将所述更新后的端口对应关系恢复为初始的端口对应关系。15、如权利要求14所述的设备,其特征在于,所述处理模块还用于当所述故障端口在端口对应关系中恢复的优先级信息为最优的优先级信息,且当前优先级信息最优的端口与其他端口具有不隔离关系,将所述故障端口与所述其他端口设置为不隔离关系,并将所述当前优先级信息最优的端口与其他端口设置为隔离关系。全文摘要本发明公开了一种VRRP的实现方法,该方法包括所述备用设备创建端口隔离对应关系,所述端口隔离对应关系中存储了所述备用设备中多个端口之间的隔离关系,所述隔离关系具体为隔离或不隔离;所述备用设备将所述端口隔离对应关系中多个端口之间的隔离关系均设置为隔离,以使数据不能在所述多个端口之间进行转发;当检测到所述备用设备的端口或该端口对应的链路出现故障时,所述备用设备根据预设的策略更新所述端口隔离对应关系。本发明中,通过在备用设备上维护端口隔离表项,实现了VRRP网络中的负载分担,并避免了环路的产生,提高了网络的带宽利用率。本发明同样提供了一种对应本发明方法的设备。文档编号H04L12/26GK101588304SQ200910150748公开日2009年11月25日申请日期2009年6月30日优先权日2009年6月30日发明者周从洋申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1