CN1829222A - 一种多生成树软件模拟的实现方法 - Google Patents
一种多生成树软件模拟的实现方法 Download PDFInfo
- Publication number
- CN1829222A CN1829222A CNA2005100515263A CN200510051526A CN1829222A CN 1829222 A CN1829222 A CN 1829222A CN A2005100515263 A CNA2005100515263 A CN A2005100515263A CN 200510051526 A CN200510051526 A CN 200510051526A CN 1829222 A CN1829222 A CN 1829222A
- Authority
- CN
- China
- Prior art keywords
- port
- vlan
- message
- software
- spanning tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
Abstract
本发明公开了一种多生成树软件模拟实现方法,通过软件模拟的途径解决现有以太网交换机ASIC芯片不能支持MSTP问题。所述方法包括:在不同的生成树上转发不同VLANs的报文环境下,当多生成树协议计算一个交换机的一个端口对于某个VLAN为非转发状态时,底层软件将该端口从所述VLAN中删除,同时过滤从另一个交换机对应端口过来的所述VLAN的报文;如果传送报文的链路发生故障,则通过MSTP协议收敛,使得该交换机的状态在该端口成为转发状态,此时底层软件将该端口加入所述VLAN中,同时取消报文过滤。本发明通过软件方式为现有网络产品新增特性,极大节省开发成本,对于普通交换芯片均易于实现,且不会改变设备的转发性能。
Description
技术领域
本发明涉及通信技术领域,具体地说,涉及一种在仅支持生成树协议(STP)的网络通信设备内部通过软件模拟多生成树的实现方法。
背景技术
STP(生成树协议)是二层网络应用的重要协议,其目的是用于防止网络内部由于拓扑上环型结构而导致广播风暴,保证网络可靠可用。在STP运行的网络中,能有效阻断网络环路,保证逻辑上网络的非环型结构,同时使得被阻断链路可以成为备份链路,当环型上出现故障,被阻断链路可迅速恢复正常运行。但由于STP协议中所有的VLAN(虚拟局域网)共享一棵生成树,因而无法实现VLAN的负载均衡,当网络上的流量过大时,可能会造成某VLAN的报文无法转发。
MSTP(多生成树协议)协议允许一个交换机内运行有多棵生成树,在不同的生成树上转发不同VLANs的报文。图1示出了MSTP运用的实例,其中MSTP的VLAN2、VLAN3分别在两棵分别独立的树上。从该具体实施方案中,我们可以看出,由于MSTP协议运行的多棵生成树是相互独立的。因而有效地实现了VLAN的负载均衡,保证每个VLAN的网络可靠连通。
由于STP(RSTP)、MSTP的实现都需要硬件ASIC芯片的支持。但对于现有的数据通信设备尤其是以太网交换机,其ASIC(专用集成电路)芯片虽然基本都支持STP的实现,但对于MSTP却只有部分芯片支持,这对于设备提供厂家来说,已经在网络上运行的大量设备,由于其芯片并不能提供MSTP的支持,当要对于已运营网络提供支持MSTP特性,必然要求重新开发新的可以支持MSTP的产品来替代,但这样会大幅度提高设备制造商和运营商的成本。
因而,如何使当前仅支持STP的设备也可以运行MSTP,是本发明所要解决的问题。
发明内容
本发明的目的在于提供一种多生成树软件模拟实现方法,通过软件模拟的途径解决现有的部分以太网交换机ASIC芯片不能支持MSTP的问题。
本发明的一种多生成树协议软件模拟实现方法,应用在含有不支持多生成树协议的ASIC芯片的网络设备中,所述网络设备包含一个底层软件,其中在不同生成树上转发不同VLANs的报文的环境下,当多生成树协议算出一个交换机的一个端口对于某个VLAN为非转发状态时,所述底层软件将该端口从所述VLAN中删除;同时过滤从另一个交换机对应端口过来的所述VLAN的报文;
其中,如果多生成树协议实例链路发生故障,则通过MSTP协议收敛,使得该交换机在该端口成为转发状态,此时所述底层软件将该端口加入所述VLAN中,同时取消报文过滤。
其中,当所述端口只在某一VLAN中时,所述底层软件可以将该端口从所述该VLAN中删除。
其中,当前述端口不在任何VLAN时,如果通过查询函数查看到的端口VLAN ID是缺省VLAN ID时,此时需通过VLAN ID取得该VLAN包含的端口成员,并从中删除这个端口。
其中,所述底层软件将所述端口从所述VLAN中删除的情况下,不过滤MSTP协议报文。
其中,所述底层软件对报文的过滤操作放在端口收发函数最前面进行。
其中,所述底层软件对STP的协议报文,直接进行传送,以保证MSTP协议正常运算。
其中,所述底层软件对带TAG的其它报文,提取报文携带的VLAN ID,并取得VLAN ID所包含的端口成员,如果报文的入端口或出端口不在VLAN ID的成员中,则VLAN ID表示的VLAN在该端口被阻断,报文被丢弃。
其中,所述底层软件对于不带TAG的其它报文,取得报文的传送端口的缺省VLAN ID,根据VLAN ID来得到端口成员,如果端口成员不包含报文要传送的端口,则该VLAN在这个端口被阻断,报文被丢弃。
与现有的技术相比较,由于本发明通过软件控制VLAN在交换机端口的增加与删除,来模拟VLAN所在实例端口的STP状态,从而实现在运行STP的ASIC芯片运行MSTP,可以在不增加网络设备制造商及运营商的成本基础上实现现有产品功能的升级。
下面结合附图对本发明进行详细说明。
附图说明
图1显示了现有的MSTP运行实例;
图2是本发明的多生成树软件模拟实现方法的组网示意图;
图3是本发明应用在实际环境下的组网示意图。
具体实施方式
本发明采用软件模拟来实现在支持STP的芯片上运行MSTP的基本思想是,如果端口不存在某个VLAN,则该端口就不允许收发该VLAN的报文,并过滤掉从另一个交换机对应端口传来的所述VLAN的报文。而芯片是否允许收发该VLAN报文,与报文类型、是否TAG(带标签)、端口是否存在该VLAN、MAC配置等有关。上层仍按照标准协议运行,底层模拟所要完成的任务在于满足协议的几个要求:
1、软件模拟本质是通过在VLAN内增加和删除端口来实现的,具体而言:在不同生成树上转发不同VLANs的报文的环境下,当多生成树协议算出一个交换机的一个端口对于某个VLAN为非转发状态时,所述底层软件将该端口从所述VLAN中删除,同时过滤从另一个交换机对应端口过来的所述VLAN的报文;如果多生成树协议实例链路发生故障,则通过MSTP协议收敛,使得该交换机在该端口成为转发状态,此时所述底层软件将该端口加入所述VLAN中,同时取消报文过滤。
具体对于某个实例来说,当协议要求该端口在实例上的状态为discarding(丢弃)时,就将该端口从给定实例内的所有VLAN中删除,这样可以保证从这个端口接收到的报文如果是属于被阻塞的实例(VLAN),则被扔掉。其中有个特例,就是当端口只在一个VLAN中时,也要能从该VLAN中删掉,即端口可以不属于任何VLAN。而在非MSTP条件下,当端口从其它的VLAN中删除时,一般都要回到缺省的VLAN中,但是本发明技术方案中,MSTP需要能阻止这种行为。
其中,对于芯片查询操作而言,当端口不在任何VLAN时,通过查询函数查看到的端口VLAN ID却有可能是缺省的VLAN ID,这样会造成错误判断,认为端口仍存在于VLAN中。此时需要再用VLAN ID来取得该VLAN包含的端口成员,并从该成员中删除这个端口。
2、在报文收发的软件部分,很多接收的报文是需要上交CPU做进一步处理的,如果MSTP启动,底层接收和发送报文时,需要进行一系列过滤操作。需要针对端口和VLAN作出合理性判断的过滤。这些过滤判断放在端口收发函数最前面。其中待处理的报文根据具体的情况可以分为三类:
a、如果是STP的协议报文,直接进行传送,以保证MSTP协议正常运算;
b、如果是其它报文且是带TAG的,提取报文携带的VLAN ID,然后取得该VLAN ID所包含的端口成员,报文的入端口或出端口如果不在VLAN ID的成员中,则说明该VLAN ID表示的VLAN或该VLAN所在实例在该端口阻断,报文被丢弃。
c、如果报文是UNTAG(不带标签)的,则取得报文的传送端口的缺省VLAN ID,同样根据该VLAN ID来得到端口成员,如果端口成员不包含报文要传送的端口,说明该VLAN所在实例在这个端口是阻断的,报文被丢弃。
因此,本发明的多生成树协议软件模拟实现方法可以概括为,在不同的生成树上转发不同VLANs的报文环境下,当多生成树协议计算一个交换机的一个端口对于某个VLAN为非转发状态时,底层软件将该端口从所述VLAN中删除,同时过滤从另一个交换机对应端口过来的所述VLAN的报文。
如果传送报文的链路发生故障,则通过MSTP协议收敛,使得该交换机的状态在该端口成为转发状态,此时底层软件将该端口加入所述VLAN中,同时取消报文过滤。
下面以图2所示的设备组网详细举例说明实现方式:
如图2所示,图中所示的S1、S2、S3和S4四台交换机设备的芯片是不支持MSTP的。由S1、S2、S3和S4组成的设备环形连接,按照MSTP协议的收敛过程定义,MSTP协议收敛时,要将包括交换机的MAC地址、端口、实例等信息的多种信息进行计算(具体计算过程由标准协议完成),其计算结果将保证所有实例在逻辑结构上不能再形成环路。但图2所示系统中的四台交换机的传统ASIC交换芯片由于不支持多实例特性,因此将不能实现MSTP协议收敛时每个实例分别环路阻断。为此本发明提供了软件模拟MSTP协议的方法,图2所述的系统在运行了本发明所述的软件模拟方法后,在操作芯片过程中,通过对于端口在实例和VLAN中的删除与增加进行模拟支持多实例的功能,也即模拟了芯片支持MSTP功能。
具体来说,假设VLAN2在实例2内,VLAN3在实例3内,软件模拟MSTP后其实例结构收敛为两种虚线所示,连通的网络表示协议计算后端口的forwarding(转发)状态,下面以实例2为例进行说明。
如果协议计算在S4交换机的G端口实例2非forwarding,则底层软件将端口G在VLAN2中删除;但G端口从S4交换机的实例2中删除后,端口F仍然存在交换机S3中,这样交换机S3的实例2其它端口进入的广播报文、目的未知的单播报文或或其他某些BPDU报文可被从S3的F端口广播出去,从而被S4交换机的G端口接收,这种情况下有可能使得S4交换机的CPU接收到端口G进来的实例2的报文,由于这在当前结构上是非法报文,因此CPU需要过滤从S3交换机端口F过来的VLAN2的报文(MSTP协议报文除外),根据报文的入端口信息和VLAN信息、实例信息进行判断丢弃而过滤,从而保证网络VLAN2的报文广播不能形成环路,但是不丢弃MSTP协议报文以便于MSTP协议软件维护网络拓扑结构。此时驱动层软件操作交换机S4的ASIC芯片动作为:在VLAN2的ASIC表项内删除端口G,同时设置报文收发模块过滤从端口G接收到的实例2的VLAN2内的报文。这些过滤判断放在端口收发函数最前面。待处理的报文分为三类:
a、如果是STP的协议报文,直接进行传送,以保证MSTP协议正常运算;
b、如果是其它报文报文且是带TAG的,提取报文携带的VLANID,然后取得VLAN ID所包含的端口成员,如果报文的入端口或出端口不在VLAN ID的成员中,说明VLAN ID表示的该VLAN2或该VLAN2所在实例在该端口阻断,报文被丢弃。
c、如果报文是UNTAG(不带标签)的,取得报文的传送端口的缺省VLAN ID,同样根据VLAN ID来得到端口成员,如果端口成员不包含报文要传送的端口G,说明该VLAN2所在实例在这个端口是阻断的,报文被丢弃。
当MSTP协议运行中,如果S1、S2之间链路发生故障,实例2的交换机S1、S2之间通信被阻断,在MSTP报文不能在S1、S2之间进行交互达到协议超时时间,MSTP协议将认为该链路已经断开。同时由于实例2的S4交换机端口G和S3交换机的端口F之间的物理链路还是正常的,并且MSTP报文在这个链路上定时传送,MSTP根据网络拓扑结构,得知存在于S4与S3之间的实例2的链路正常,S4交换机设置端口G在实例2内的状态为forwarding,仍保证网络中实例2不出现环路,此时驱动层软件操作交换机S4的ASIC芯片动作为:在VLAN2的ASIC表项内加入端口G,同时设置报文收发模块不再过滤从端口G接收到的实例2的VLAN2内的报文,此时底层将端口G加入VLAN2中同时取消报文过滤,恢复网络运行。
对于实例3的软件模拟MSTP工作情况,处理方式同上。
含有本发明软件模拟MSTP协议方法的交换机可以运用于(但不限于)图3所示的组网中。需要说明的是,其中标注“软件MSTP”的设备是指采用本发明实现MSTP的普通交换机,其它则是ASIC可支持MSTP技术的设备。
综上所述,本发明利用软件功能,结合对于硬件芯片的操作,通过将端口从VLAN内删除的操作来模拟上层协议的blocking或learning状态,在VLAN内增加端口来实现协议的forwarding状态,完成对于MSTP协议的支持,可以为现有网络产品新增特性,可以极大节省开发成本。同时软件实现比较简单,对于普通交换芯片均易于实现,且不会改变设备的转发性能。
Claims (9)
1、一种多生成树协议软件模拟实现方法,应用在不支持多生成树协议的ASIC芯片的网络设备中,所述网络设备包含一个底层软件,其特征在于:在不同生成树上转发不同VLANS的报文的环境下,当多生成树协议算出一个交换机的一个端口对于某个VLAN为非转发状态时,所述底层软件将该端口从所述VLAN中删除;同时过滤从另一个交换机对应端口传过来的所述VLAN的报文;
2、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,当多生成树协议实例链路发生故障时,通过MSTP协议收敛,使得该交换机在该端口成为转发状态,此时所述底层软件将该端口加入所述VLAN中,同时取消报文过滤。
3、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,当所述端口只在某一VLAN中时,所述底层软件亦须将该端口从该VLAN中删除。
4、根据权利要求3所述的多生成树协议软件模拟实现方法,其特征在于,当端口不在任何VLAN时,如果通过查询函数查看到的端口VLAN ID是缺省VLAN ID时,此时需通过VLAN ID取得该VLAN包含的端口成员,并从中删除这个端口。
5、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,所述底层软件将所述端口从所述VLAN中删除的情况下,不过滤MSTP协议报文。
6、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,所述底层软件对报文的过滤操作放在端口收发函数最前面进行。
7、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,所述底层软件对STP的协议报文,直接进行传送,以保证MSTP协议正常运算。
8、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,所述底层软件对带TAG的其它报文,提取报文携带的VLAN ID,取得VLAN ID所包含的端口成员,如果报文的入端口或出端口不在所述VLAN ID的成员中,则VLAN ID表示的VLAN在该端口被阻断,报文被丢弃。
9、根据权利要求1所述的多生成树协议软件模拟实现方法,其特征在于,所述底层软件对于不带TAG的其它报文,取得报文的传送端口的缺省VLAN ID,根据VLAN ID得到端口成员,如果端口成员不包含报文要传送的端口,则该VLAN在这个端口被阻断,报文被丢弃。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100515263A CN100566339C (zh) | 2005-03-04 | 2005-03-04 | 一种多生成树软件模拟的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100515263A CN100566339C (zh) | 2005-03-04 | 2005-03-04 | 一种多生成树软件模拟的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1829222A true CN1829222A (zh) | 2006-09-06 |
CN100566339C CN100566339C (zh) | 2009-12-02 |
Family
ID=36947349
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100515263A Expired - Fee Related CN100566339C (zh) | 2005-03-04 | 2005-03-04 | 一种多生成树软件模拟的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100566339C (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640681B (zh) * | 2009-09-08 | 2012-07-25 | 杭州华三通信技术有限公司 | 一种修改多生成树域的域配置信息的方法及设备 |
CN110290124A (zh) * | 2019-06-14 | 2019-09-27 | 杭州迪普科技股份有限公司 | 一种交换机入端口阻断方法及装置 |
-
2005
- 2005-03-04 CN CNB2005100515263A patent/CN100566339C/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101640681B (zh) * | 2009-09-08 | 2012-07-25 | 杭州华三通信技术有限公司 | 一种修改多生成树域的域配置信息的方法及设备 |
CN110290124A (zh) * | 2019-06-14 | 2019-09-27 | 杭州迪普科技股份有限公司 | 一种交换机入端口阻断方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN100566339C (zh) | 2009-12-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2282453B1 (en) | Routing frames in a shortest path computer network for a multi-homed legacy bridge node | |
US7787480B1 (en) | Routing frames in a trill network using service VLAN identifiers | |
US20100165995A1 (en) | Routing frames in a computer network using bridge identifiers | |
EP2264949B1 (en) | Forwarding frames in a computer network using shortest path bridging | |
US8358597B2 (en) | Method for building scalable Ethernet switch network and huge Ethernet switch | |
CN100442772C (zh) | 一种桥接转发方法 | |
US7835306B2 (en) | Translating MST instances between ports of a bridge in a computer network | |
US9882838B2 (en) | Forwarding inter-switch connection (ISC) frames in a network-to-network interconnect topology | |
EP1469639B1 (en) | Method, software product, carrier medium and Ethernet switch for improving STP protocols in Ethernet networks supporting VLANs | |
US8811168B2 (en) | Transient loop prevention in a hybrid layer-2 network | |
CN100481805C (zh) | 环型以太网及其业务承载实现方法 | |
WO2006118696A2 (en) | Metro ethernet network with scaled broadcast and service instance domains | |
US9641396B2 (en) | Packet processing method and system | |
WO2008021595A2 (en) | Method and apparatus for load balancing over virtual network links | |
KR20090089385A (ko) | 해시 기반 멀티호밍 | |
CN1474564A (zh) | 一种虚拟局域网之间的通信方法 | |
GB2515363A (en) | General user network interface (UNI) multi-homing techniques for shortest path bridging (SPB) networks | |
US7660271B2 (en) | Spanning tree BPDU processing method and system facilitating integration of different native VLAN configurations | |
JPH10154993A (ja) | 仮想lan方式 | |
CN1825832A (zh) | 快速环生成树协议 | |
JP2002252625A (ja) | ネットワーク障害監視方法および装置 | |
CN102215165B (zh) | 一种相切环网的报文处理方法及以太网交换机 | |
Weibel | Tutorial on parallel redundancy protocol (PRP) | |
US6658012B1 (en) | Statistics for VLAN bridging devices | |
CN100566339C (zh) | 一种多生成树软件模拟的实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Patentee after: Xinhua three Technology Co., Ltd. Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base Patentee before: Huasan Communication Technology Co., Ltd. |
|
CP03 | Change of name, title or address | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091202 Termination date: 20200304 |
|
CF01 | Termination of patent right due to non-payment of annual fee |