一种实现负载分担的方法和装置的制作方法

文档序号:7652354阅读:97来源:国知局
专利名称:一种实现负载分担的方法和装置的制作方法
技术领域
本发明涉及网络通信技术领域,尤指一种实现负载分担的方法和装置。
背景技术
二层拓扑协议包括多生成树协议(MSTP,Multiple Spanning TreeProtocol)、快速环保护协议(RRPP,Rapid Ring Protection Protocol)、灵活链路(Smart Link)协议等。二层拓扑协议能够在以太网环完整时,防止数据环路引起的广播风暴,而在以太网环上的一条链路断开时,能迅速启用备份链路以恢复环网上各个节点之间的通信通路。
二层拓扑协议在数据流上的负载分担和转发控制都是通过MSTP的寄存器实现的。通常和MSTP相关的硬件寄存器包括两部分,一个是虚拟局域网(VLAN,Virtual Local Area Network)分配表,另一个是端口状态表。VLAN分配表在VLAN和生成树组(STG,Spanning Tree Group)之间建立多对一的映射关系,即一个VLAN对应唯一的一个STG,而一个STG可以对应多个VLAN。表1是VLAN分配表结构的示意图。端口状态分配表为每个端口和STG的组合给出一个状态,如“丢弃(Discarding)”状态和“转发(Forwarding)”状态。表2是端口状态表结构示意图。

表1
表2当网络中一个交换设备的入端口如端口1收到携带“VLAN 2”的报文时,先从VLAN分配表中获取与VLAN 2对应的STG,例如表1中与VLAN 2对应的是STG1;然后在端口状态表中查找与端口1和STG1对应的状态,如果是“Discarding”状态则丢弃该报文,如果是“Forwarding”状态则进行正常的二层数据转发,例如在表2中与端口1和STG1对应的是“Discarding”状态,因此该交换设备丢弃端口1所接收到的报文。报文在交换设备的出端口上也会检查与出端口和STG对应的状态,如果是“Discarding”状态则丢弃该报文,如果是“Forwarding”状态则正常发送。无论运行何种二层拓扑协议,交换设备内的芯片数据都执行上述的数据转发流程。
目前,在二层拓扑协议中,基于协议实体的MSTP是支持负载分担的,在MSTP中定义的协议实体称为实例(Instance)。MSTP的公共内部生成树(CIST)和多生成树实例(MSTI)统称为MSTP的实例,每一个实例对应一组VLAN,通过把一个实例映射到一个硬件STG上来实现,即将多个VLAN映射到一个STG上,再使STG和实例一一对应。MSTP通过在不同的实例上计算出端口的不同状态来实现数据流量按不同VLAN实现负载分担。
但二层拓扑协议中RRPP和Smart Link协议却不支持数据流量按不同VLAN的负载分担。这是因为,RRPP中的定义的协议实体RRPP域(RRPPDomain)和Smart Link协议中定义的协议实体Smart Link组(Smart LinkGroup)都是定义在一组端口上的,且每个端口一般只属于一个协议实体,即一个端口只属于一个Smart Link Group或一个RRPP Domain,因此在协议实体上运行协议后,对于协议实体定义的端口只能计算出一种固定的数据转发状态。这样,对于所有VLAN的数据,该端口会进行统一的处理,即全部转发或全部丢弃,从而无法实现不同VLAN数据的负载分担。例如,图1是现有技术中的单设备接入组网图,在图1所示的单设备双上行接入组网中运行Smart Link协议,设备C上的端口1和端口2构成一个Smart Link Group,在该Smart Link Group上运行Smart Link协议后端口1为主端口,处于转发状态,而端口2是从端口,处于被阻塞状态,因此,正常情况下,所有VLAN的数据流量都只能通过链路2,而不能通过链路3,从而不能有效利用链路3的带宽。

发明内容
有鉴于此,本发明实施例的主要目的在于提供一种实现负载分担的方法,该方法使得不支持负载分担的二层拓扑协议能够实现负载分担,从而提高了二层网络中链路的利用率。
本发明实施例还提供了一种实现负载分担的装置,该装置使得不支持负载分担的二层拓扑协议能够实现负载分担,从而提高了二层网络中链路的利用率。
为达到上述目的,本发明的技术方案具体是这样实现的本发明实施例公开了一种实现负载分担的方法,该方法包括将每一个端口所在的不同VLAN映射到两个以上的协议实体,并在映射后的每个协议实体上分别运行二层拓扑协议,分别计算出每一个端口对应于其所在的每一个VLAN的状态;根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
本发明实施例还公开了一种实现负载分担的装置,该装置包括映射模块、状态计算模块和数据转发控制模块,其中,映射模块,用于将设备的每一个端口所在的不同VLAN映射到两个以上的协议实体;状态计算模块,用于在映射后的每一个协议实体上分别运行二层拓扑协议,分别计算出设备的每一个端口对应于其所在的每一个VLAN的状态;数据转发控制模块,用于根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
由上述技术方案可见,本发明实施例,通过确定每一个端口所在的不同VLAN,将每一个端口所在的不同VLAN映射到两个以上的协议实体,并在映射后的每个协议实体上分别运行二层拓扑协议,分别计算出每一个端口对应于其所在的每一个VLAN的状态;最后根据各端口对应于其所在的每一个VLAN的状态,对接收到的VLAN数据进行处理的技术方案,使得在同一个端口上能够运行多个协议实体,从而同一个端口对属于不同协议实体的VLAN数据有不同的转发状态,即属于不同协议实体的VLAN数据沿不同的路径进行传输,因此,实现了不支持负载分担的二层拓扑协议支持按VLAN的负载分担,进而提高了二层网络中链路的利用率。


图1是现有技术中的单设备接入组网图;图2是本发明实施例一种实现负载分担的方法的流程图;图3是本发明实施例一种实现RRPP支持负载分担的方法的流程图;图4是本发明实现RRPP支持负载分担的一个实施例示意图;图5是本发明实施例一种实现Smart Link协议支持负载分担的方法的流程图;图6是本发明同时实现Smart Link协议和MSTP支持负载分担的实施例示意图;图7是本发明实施例一种实现负载分担的装置的结构框图。
具体实施例方式
本发明实施例主要通过将每一个端口所在的不同VLAN映射到两个以上的协议实体,以实现一个端口上的多协议实体,使得不同协议实体在同一个端口上对不同的VLAN数据计算出不同的数据转发状态,进而实现二层拓扑协议的负载分担。
图2是本发明实施例一种实现负载分担的方法的流程图,如图2所示,包括以下步骤步骤201,将每一个端口所在的不同VLAN映射到两个以上的协议实体,并在映射后的每个协议实体上分别运行二层拓扑协议,分别计算出每一个端口对应于其所在的每一个VLAN的状态。
为了兼容现有的ATM硬件设备,较佳地,本步骤的实现可以为建立拓扑组的概念,先将每一个端口所在的所有VLAN分别映射到不同的拓扑组,然后根据端口所在的VLAN,确定每一个端口对应的不同拓扑组,将每一个端口对应的不同拓扑组映射到两个以上的协议实体,并在映射后的每个协议实体上分别运行二层拓扑协议,分别计算出每一个端口对应于其所在的每一个拓扑组的状态,并根据VLAN与拓扑组之间的映射关系,确定每一个端口对应于其所在的每一个VLAN的状态。可以得到,VLAN与拓扑组、拓扑组与协议实体之间都是多对一的映射关系,VLAN通过拓扑组映射到协议实体,并且,拓扑组是一组VLAN的集合。
上述将所有VLAN分别映射到不同的拓扑组时,可以将所有VLAN中逻辑拓扑相同的一组VLAN映射到同一个拓扑组。逻辑拓扑相同的一组VLAN是需要将其数据沿相同路径转发的一组VLAN。
上述通过拓扑组间接建立VLAN与协议实体之间的映射关系时,一个以上的逻辑拓扑相同的VLAN可以和一个拓扑组对应,但某一个VLAN只能和唯一的一个拓扑组对应,而不能和多个拓扑组对应;同样在一个端口上,该端口所属的一个以上的拓扑组可以和一个协议实体对应,但某一个拓扑组只能和唯一的一个协议实体对应。至于将哪些拓扑组映射到哪个协议实体,这里不做限定。
本步骤中,当二层拓扑协议是RRPP时,协议实体指RRPP域(RRPPDomain);当二层拓扑协议是Smart Link协议时,协议实体指灵活链路组(Smart Link Group);当二层拓扑协议是MSTP时,协议实体指MSTP实例(MSTP Instance)。
较佳地,本步骤中,所述计算出每一个端口对应于其所在的每一个VLAN的状态的实现过程可以为通过配置所述映射后的每个协议实体的初始协议参数,使得在各个协议实体上分别运行二层拓扑协议后计算出的各环路阻塞点不在同一个端口上,并根据所计算出的各环路阻塞点以及VLAN与拓扑组、拓扑组和协议实体之间的映射关系,确定每一个端口对应于其所在的每一个VLAN的状态。
步骤202,根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
在图2所示的实施例中,如果步骤201中通过拓扑间接建立VLAN与协议实体之间的关系,则进一步还可以将步骤201中建立的VLAN与拓扑组之间多对一的映射关系信息存储到VLAN分配表中、将计算出的各端口与其所在的每个拓扑组对应的状态信息存储到端口状态表中;步骤202中,通过查询VLAN分配表和端口状态表中的信息,对各端口接收到的VLAN数据进行转发控制。
为使本发明的目的、技术方案及优点更加清楚明白,下面以RRPP和Smart Link协议为例,对本发明进一步详细说明。
为了使RRPP支持负载分担,本发明实施例定义拓扑组的概念,将逻辑拓扑相同的一个以上的VLAN映射到一个拓扑组,再将一个端口所在的不同拓扑组映射到两个以上的RRPP Domain。目前,RRPP中RRPP Domain的定义如下RRPP Domain由整数表示的标识符(ID)来标识,一组配置了相同的Domain ID和控制VLAN的交换机之间互联的端口构成一个RRPP Domain。在本发明实施例中引入拓扑组的概念后,使得一个RRPP Domain运行在其所属的一组端口上的指定的部分拓扑组上,而不是其所属的一组端口上的所有拓扑组上。因此,本发明实施例中,扩展后的RRPP Domain的定义可以为RRPPDomain由整数表示的ID来标识,一组配置了相同的Domain ID和控制VLAN的交换机之间互联的端口在指定的一个以上的拓扑组上构成一个RRPPDomain。
图3是本发明实施例一种实现RRPP支持负载分担的方法的流程图。图4是本发明实现RRPP支持负载分担的一个实施例示意图,在图4中,交换设备401和交换设备402之间的拓扑结构是交换设备401的端口11和交换设备402的端口21之间有一条链路,交换设备401的端口12和交换设备402的端口22之间有一条链路,因此设备401的端口11和端口12以及设备402的端口21和端口22形成了一个环路。下面结合图3和图4来进行详细说明。
如图3所示,一种实现RRPP支持负载分担的方法包括以下步骤步骤301,将逻辑拓扑相同的VLAN映射到一个拓扑组,建立VLAN与拓扑组之间多对一的映射关系,获得VLAN分配表。
例如,在图4所示的实施例中,在每个交换设备上建立3个拓扑组,编号分别为1、2和3,拓扑组1用实线表示,拓扑组2用虚线表示,拓扑组3用点划线表示。并将VLAN 1、VLAN 2和VLAN 3分别映射到3个拓扑组上,形成如表3所示的VLAN分配表。

表3
表3中VLAN与拓扑组之间是一对一的映射关系,是VLAN与拓扑组之间多对一映射关系的一个特例。
步骤302,根据端口对应的VLAN,确定每一个端口所在的不同拓扑组,将每一个端口所在的不同拓扑组映射到两个以上的RRPP Domain,建立拓扑组与RRPP Domain之间多对一的映射关系,并在每个RRPP Domain上运行RRPP,根据拓扑组与RRPP Domain的映射关系,分别计算出各端口对应与其所在的每一个拓扑组的状态,获得端口状态表。
例如,在图4所示的实施例中,设备401的端口11和端口12以及设备402的端口21和端口22形成了一个环路,将该环路上各端口所在的拓扑组1映射到RRPP Domain 1,将拓扑组2和拓扑组3映射到RRPP Domain 2,即RRPPDomain 1运行在端口11、端口12、端口21和端口22所在的拓扑组1上,RRPPDomain 2运行在端口11、端口12、端口21和端口22所在的拓扑组2和拓扑组3上。预先配置RRPP Domain 1和RRPP Domain的RRPP参数,并在RRPPDomain 1和RRPP Domain 2上根据预先配置的RRPP参数运行RRPP,使得RRPP Domain 1中环路的阻塞点在端口22,而RRPP Domain 2中环路的阻塞点在端口21,在图4中用黑色圆点表示。然后根据上述阻塞点的位置以及拓扑组与RRPP Domain之间的映射关系,计算出各端口与其所在的拓扑组对应的状态,形成如表4所示的端口状态表。由于在运行RRPP计算出端口状态表的过程是现有技术,且计算过程复杂,这里不再描述,直接给出端口状态表的计算结果。
表4
步骤303,根据VLAN分配表和端口状态表,对各端口接收到的VLAN数据进行转发控制。
例如,在图4所示的实施例中,当端口22接收到携带“VLAN 1”的报文时,先从表3所示的VLAN分配表中查找出与VLAN 1对应的拓扑组1,然后在表4所示的端口状态表中查找与端口22和拓扑组1对应的状态,其结果为“Discarding”状态,丢弃该报文。
当端口22接收到携带“VLAN 2”的报文时,先从表3所示的VLAN分配表中查找出与VLAN 2对应的拓扑组2,然后在表4所示的端口状态表中查找与端口22和拓扑组2对应的状态,其结果为“Forwarding”状态,正常转发该报文。同样的方法,当端口22接收到携带“VLAN 3”的报文时,正常转发该报文。
以此类推,端口11和端口12当接收到携带“VLAN 1”或“VLAN 2”或“VLAN 3”的报文时都正常转发所接收到的报文;而端口21正常转发所接收的携带“VLAN 1”的报文,丢弃所接收的携带“VLAN 2”或“VLAN 3”的报文。可见VLAN 1的数据流从端口11和端口21之间的链路通过,而VLAN 2和VLAN 3的数据流从端口12和端口22之间的链路通过,即端口11和端口21之间的链路与端口12和端口22之间的链路对VLAN 1、VLAN 2和VLAN 3的数据流实现了负载分担。
当然,在图4所示的实施例中,在RRPP Domain 1和RRPP Domain 2上运行RRPP时,根据不同的预先配置的RRPP参数运行RRPP计算出的各端口与拓扑组对应的状态也会不尽相同。例如,由于设备401的端口11和端口12以及设备402的端口21和端口22形成了一个环路,因此,可以通过调整预先配置的RRPP参数使得RRPP Domain 1中环路的阻塞点在端口12,而RRPPDomain 2中环路的阻塞点在端口11等,这并不影响本发明的方案实现负载分担。这里所述的RRPP参数是指在RRPP Domain上运行RRPP时需要配置的初始协议参数。
为了使Smart Link协议支持负载分担,本发明实施例同样定义了拓扑组的概念,将逻辑拓扑相同的一个以上的VLAN映射到一个拓扑组,再将一个端口所在的不同拓扑组映射到两个以上的Smart Link Group。目前,SmartLink协议中Smart Link Group的定义如下Smart Link Group由整数表示的ID来标识,一个设备上的两个端口构成一个Smart Link Group。在本发明实施例中引入拓扑组的概念后,使得一个Smart Link Group运行在其所属的一个设备的两个端口上的指定的部分拓扑组上,而不是其所属的两个端口上的所有拓扑组上。因此,本发明实施例中,扩展后的Smart Link Group的定义可以为Smart Link Group由整数表示的ID来标识,一个设备上的两个端口在指定的一个以上的拓扑组上构成一个Smart Link Group。
图5是本发明实施例一种实现Smart Link协议支持负载分担的方法的流程图,如图5所示,包括以下步骤步骤501,将逻辑拓扑相同的VLAN映射到一个拓扑组,建立VLAN与拓扑组之间多对一的映射关系,获得VLAN分配表。
步骤502,根据端口对应的VLAN,确定每一个端口所在的不同拓扑组,将每一个端口所在的不同拓扑组映射到两个以上的Smart Link Group,建立拓扑组与Smart Link Group之间多对一的映射关系,并在每个Smart LinkGroup上运行Smart Link协议,根据拓扑组与Smart Link Group的映射关系,分别计算出各端口对应于其所在的每一个拓扑组对应的状态,获得端口状态表。
步骤503,根据VLAN分配表和端口状态表,对各端口接收到的VLAN数据进行转发控制。
下面仍以图1所示的单设备双上行接入组网图为例,说明本发明如何实现Smart Link协议支持负载分担的。
在图1中的每个交换设备上建立3个拓扑组,分别为拓扑组1、拓扑组2和拓扑组3,并将VLAN 1、VLAN 2和VLAN 3分别映射到3个拓扑组上。使设备C上的端口1和端口2在拓扑组1上构成Smart Link Group 1,设备C上的端口1和端口2在拓扑组2和拓扑组3上构成Smart Link Group 2,即将设备C上的端口1和端口2上的拓扑组1映射到Smart Link Group 1,将设备C上的端口1和端口2上的拓扑组2和拓扑组3映射到Smart Link Group 2。通过配置Smart LinkGroup 1和Smart Link Group 2的初始协议参数进行,并分别在Smart LinkGroup 1和Smart Link Group 2上运行Smart Iink协议后,使得Smart LinkGroup 1中端口1是主端口,端口2是从端口,而Smart Link Group 2中端口1是从端口,端口2是主端口。因此,设备C的端口1转发VLAN 1的数据流,阻塞VLAN 2和VLAN 3的数据流;设备C的端口2转发VLAN 2和VLAN 3的数据流,阻塞VLAN 1的数据流,实现了负载分担。
前面提到过,目前无论运行何种二层拓扑协议,交换设备内的芯片上都有两组寄存器分别用于存储如表1所示的VLAN分配表和表2所示的端口状态表,并根据表1和表2进行数据流的转发。因此将本发明实施例中的拓扑组与表1和表2中的STG相对应,即可以在不改变现有的任何硬件设备的条件下,应用本发明的技术方案实现RRPP或Smart Link协议的负载分担。
本发明的技术方案同样适用于MSTP。首先定义拓扑组的概念,将逻辑拓扑相同的一个以上的VLAN映射到一个拓扑组,建立VLAN与拓扑组之间多对一的映射关系,获得VLAN分配表;再建立拓扑组和MSTP Instance之间多对一的映射关系,并在每个MSTP Instance上运行MSTP协议,计算出与各端口和拓扑组对应的状态,获得端口状态表;然后根据VLAN分配表和端口状态表对数据流进行转发控制。此时,MSTP Instance不再和VLAN建立直接的映射关系,而是通过和拓扑组建立映射关系,从而间接地映射VLAN。可以将一个以上的拓扑组映射到某一个MSTP Instance,某一个拓扑组只能到一个MSTP Instance,不能映射到多个MSTP Instance。
图6是本发明同时实现Smart Link协议和MSTP支持负载分担的实施例示意图。如图6所示,交换设备601的端口1和交换设备602的端口3之间有一条链路,交换设备601的端口2和交换设备602的端口4之间有一条链路,这两条链路形成一个环路;交换设备602的端口5和交换设备603的端口7之间有一条链路,交换设备602的端口6和交换设备603的端口8之间有一条链路,且这两条链路形成一个环路。在交换设备601和交换设备602之间运行Smart link协议,在设备602和设备603之间运行MSTP。在每个交换设备上建立3个拓扑组,编号分别为1、2和3,拓扑组1用实线表示,拓扑组2用虚线表示,拓扑组3用点划线表示。并将VLAN 1、VLAN 2和VLAN 3分别映射到3个拓扑组上,获得的VLAN分配表同表3所示。使Smart link Group 1运行在拓扑组1上,Smart link Group 2运行在拓扑组2和拓扑组3上;使MSTP Instance 1、MSTPInstance 2和MSTP Instance 3分别运行在拓扑组1、拓扑组2和拓扑组3上。通过Smart Link协议参数的调整,可以让Smart Link Group 1中环路的阻塞点在端口4上,而Smart Link Group 2中环路的阻塞点在端口3上,这样,Smart Link协议便实现了按VLAN的负载分担。同样,通过MSTP参数的调整,可以让MSTP Instance 1的阻塞点在端口7上,而MSTP Instance 2和MSTP Instance 3的阻塞点在端口8上,也实现了负载分担。在图6中用黑色圆点表示阻塞点。
在图6中,也可以在设备601和设备602之间,以及设备602和设备603之间同时运行Smart Link协议和MSTP。例如VLAN映射表仍如表3所示,而在设备601和602之间,MSTP Instance 1和MSTP Instance 2分别运行在拓扑组1和拓扑组2上,Smart Link Group 1运行的拓扑组3上;在设备602和设备603之间,Smart Link Group 2运行在拓扑组1上,MSTP Instance 2和MSTPInstance 3分别运行的拓扑组2和拓扑组3上。
可见,同一端口上可以运行不同二层拓扑协议的不同协议实体,即在拓扑组到协议实体的多对一映射中,可以将一个端口所在的一部分拓扑组映射到一个二层拓扑协议的协议实体,如Smart Link Group,而将该端口所在的另一部分拓扑组映射到另一个二层拓扑协议的协议实体,如MSTP Instance。当然,拓扑组能够映射的协议实体不局限于上述的Smart Link Group和MSTPInstance,一部分拓扑组还可以映射到其它的协议实体,如RRPP Domain。
图7是本发明实施例一种实现负载分担的装置的结构框图。如图7所示,该装置必须包括映射模块7O1、状态计算模块703和数据转发控制模块705。其中,映射模块701,用于将设备的每一个端口所在的不同VLAN映射到两个以上的协议实体;状态计算模块703,用于在映射后的每一个协议实体上分别运行二层拓扑协议,分别计算出设备的每一个端口对应于其所在的每一个VLAN的状态;数据转发控制模块705,用于根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
当需要兼容现有的硬件设备时,映射模块701,用于将设备每一个端口所在的所有VLAN分别映射到不同的拓扑组,并根据端口对应的VLAN,确定每一个端口所在的不同拓扑组,并将每一个端口所在的不同拓扑组映射到两个以上的协议实体。状态计算模块703,用于分别计算出每一个端口对应于其所在的每一个拓扑组的状态,并根据VLAN与拓扑组之间的映射关系,确定每一个端口对应于其所在的每一个VLAN的状态。数据转发控制模块705,用于根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
较佳地,状态计算模块703,用于配置所述映射后的每个协议实体的初始协议参数,使得在各个协议实体上分别运行二层拓扑协议后计算出的各环路阻塞点不在同一个端口上,并根据所计算出的各环路阻塞点以及VLAN与拓扑组、拓扑组和协议实体之间的映射关系,确定每一个端口对应于其所在的每一个VLAN的状态。
如图7所示的装置还可以进一步包括VLAN分配表寄存器702和端口状态表寄存器704。其中VLAN分配表寄存器702,用于存储映射模块发送的VLAN与拓扑组之间的映射关系信息,即VLAN分配表。
端口状态表寄存器704,用于存储状态计算模块703发送的各端口与其所在的每一个拓扑组对应的状态信息,即端口状态表。
映射模块701,进一步用于将所建立的VLAN与拓扑组之间的映射关系信息发送到VLAN分配表寄存器702。
状态计算模块703,进一步用于将所计算出的各端口与其所在的每一个拓扑组对应的状态信息发送到端口状态表寄存器704。
所述数据转发控制模块705,用于分别从VLAN分配表寄存器702和端口状态表寄存器704获取VLAN与拓扑组之间的映射关系信息和每一个端口与其所在的每一个拓扑组对应的状态信息,并根据所述获取的信息对各端口接收到的VLAN数据进行处理。
当然在图7所示的实施例中,映射模块701和状态计算模块703可以直接将VLAN与拓扑组之间多对一的映射关系信息和各端口与不同拓扑组对应的状态信息发送给数据转发控制模块705。
在图7所示的实施例中,二层拓扑协议具体可以是RRPP、Smart Link协议或MSTP,相应的协议实体分别为RRPP Domain、Smart Link Group或MSTPInstance。
综上所述,本发明的技术方案通过建立VLAN与拓扑组之间的映射对应关系,以及拓扑组与协议实体之间的对应映射关系,在各个端口运行多个协议实体,使得各个端口在不同协议实体下具有不同的数据转发状态;在进行数据转发时,各个端口按照与VLAN数据所在的协议实体对应的转发状态进行数据转发,实现了属于不同协议实体的VLAN数据在不同的端口和链路上传输。并且本发明的技术方案可以应用于任何一种基于协议实体的二层拓扑协议,使得该二层拓扑协议能够支持负载分担,进而提高二层网络的链路流量,并且在将拓扑组与现有技术中的STG相对应时,无需改变现有的任何硬件设备,使用户网络在不增加投资的情况下能够支持更大的用户数量。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种实现负载分担的方法,其特征在于,该方法包括将每一个端口所在的不同虚拟局域网VLAN映射到两个以上的协议实体,并在映射后的每个协议实体上分别运行二层拓扑协议,计算出每一个端口对应于其所在的每一个VLAN的状态;根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
2.如权利要求1所述的方法,其特征在于,所述将每一个端口所在的不同VLAN映射到两个以上的协议实体包括将每一个端口所在的所有VLAN分别映射到不同的拓扑组,然后根据端口所在的VLAN,确定每一个端口对应的不同拓扑组,将每一个端口对应的不同拓扑组映射到两个以上的协议实体;所述分别计算出每一个端口对应于其所在的每一个VLAN的状态包括分别计算出每一个端口对应于其所在的每一个拓扑组的状态,并根据VLAN与拓扑组之间的映射关系,确定每一个端口对应于其所在的每一个VLAN的状态。
3.如权利要求2所述的方法,其特征在于,该方法在将每一个端口所在的所有VLAN分别映射到不同的拓扑组之后,进一步包括将每一个端口上VLAN与拓扑组之间的映射关系信息存储到该端口的VLAN分配表中;在计算出每一个端口对应于其所在的每一个拓扑组的状态之后,进一步包括将计算出的每一个端口对应于其所在的每一个拓扑组的状态信息存储到该端口的端口状态表中;根据VLAN分配表和端口状态表中的信息,执行所述的对各端口接收到的VLAN数据进行处理的步骤。
4.如权利要求3所述的方法,其特征在于,所述对各端口接收到的VLAN数据进行处理的步骤包括根据VLAN分配表查找到与接收到的VLAN数据所属的VLAN相对应的拓扑组,并根据端口状态表查找到与端口自身和所查找到的拓扑组对应的状态信息,根据查找到的状态信息对接收到的VLAN数据进行转发或丢弃。
5.如权利要求1或2所述的方法,其特征在于,所述在映射后的每个协议实体上分别运行二层拓扑协议,计算出每一个端口对应于其所在的每一个VLAN的状态包括通过配置所述映射后的每个协议实体的初始协议参数,使得在各个协议实体上分别运行二层拓扑协议后计算出的各环路阻塞点不在同一个端口上。
6.如权利要求2所述的方法,其特征在于,所述将所有VLAN分别映射到不同的拓扑组的步骤包括将所有VLAN中逻辑拓扑相同的VLAN映射到同一个拓扑组。
7.如权利要求1或2所述的方法,其特征在于,所述二层拓扑协议是快速环保护协议RRPP,所述协议实体是RRPP域;或,所述二层拓扑协议是灵活链路协议,所述协议实体是灵活链路组;或,所述二层拓扑协议是多生成树协议MSTP,所述协议实体是MSTP实例。
8.如权利要求2所述的方法,其特征在于,所述将每一个端口所在的不同拓扑组映射到两个以上的协议实体的步骤包括将每一个端口所在的不同拓扑组映射到不同二层拓扑协议的协议实体。
9.一种实现负载分担的装置,其特征在于,该装置包括映射模块、状态计算模块和数据转发控制模块,其中,映射模块,用于将设备的每一个端口所在的不同VLAN映射到两个以上的协议实体;状态计算模块,用于在映射后的每一个协议实体上分别运行二层拓扑协议,分别计算出设备的每一个端口对应于其所在的每一个VLAN的状态;数据转发控制模块,用于根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理。
10.如权利要求9所述的装置,其特征在于,所述映射模块,用于将设备每一个端口所在的所有VLAN分别映射到不同的拓扑组,并根据端口对应的VLAN,确定每一个端口所在的不同拓扑组,并将每一个端口所在的不同拓扑组映射到两个以上的协议实体;所述状态计算模块,用于分别计算出每一个端口对应于其所在的每一个拓扑组的状态,并根据VLAN与拓扑组之间的映射关系,确定每一个端口对应于其所在的每一个VLAN的状态。
11.如权利要求10所述的装置,其特征在于,该装置进一步包括VLAN分配表寄存器和端口状态表寄存器,其中,VLAN分配表寄存器,用于存储VLAN与拓扑组之间的映射关系信息;端口状态表寄存器,用于存储每一个端口与其所在的每一个拓扑组对应的状态信息;所述映射模块,用于将所建立的VLAN与拓扑组之间的映射关系信息发送到VLAN分配表寄存器;所述状态计算模块,用于将所计算出的各端口与其所在的每一个拓扑组对应的状态信息发送到端口状态表寄存器;所述数据转发控制模块,用于分别从VLAN分配表寄存器和端口状态表寄存器获取VLAN与拓扑组之间的映射关系信息和每一个端口与其所在的每一个拓扑组对应的状态信息,并根据所述获取的信息对各端口接收到的VLAN数据进行处理。
12.如权利要求9或10所述的装置,其特征在于,所述状态计算模块,用于配置所述映射后的每个协议实体的初始协议参数,使得在各个协议实体上分别运行二层拓扑协议后计算出的各环路阻塞点不在同一个端口上。
全文摘要
本发明实施例公开了一种实现负载分担的方法和装置,通过确定每一个端口所在的不同VLAN,将每一个端口所在的不同VLAN映射到两个以上的协议实体,并在映射后的每个协议实体上分别运行二层拓扑协议,计算出每一个端口对应于其所在的每一个VLAN的状态;最后根据各端口对应于其所在的每一个VLAN的状态,对各端口接收到的VLAN数据进行处理的技术方案,使得不支持负载分担的二层拓扑协议能够对不同VLAN的数据沿不同路径进行转发,从而实现了按VLAN的负载分担,进而提高了二层网络中链路的利用率。
文档编号H04L29/06GK101056246SQ20071009967
公开日2007年10月17日 申请日期2007年5月28日 优先权日2007年5月28日
发明者宋建永, 代世俊, 赵里遥 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1