一种存在堆叠设备的生成树网络拓扑的方法和设备的制作方法

文档序号:7775438阅读:435来源:国知局
一种存在堆叠设备的生成树网络拓扑的方法和设备的制作方法
【专利摘要】本发明提供一种存在堆叠设备的生成树网络拓扑的方法和设备,所述方法包括:堆叠设备收到上游BPDU报文后,选定根端口和指定端口;堆叠设备判断指定端口与根端口是否在同一成员设备上,如果是,为指定端口生成BPDU报文时,将根端口对应的路径开销与上游BPDU报文中路径开销累加得到生成的BPDU报文的路径开销,再通过指定端口继续向下游转发;如果否,将根端口对应的路径开销与堆叠设备的内部路径开销及上游BPDU报文中路径开销相加得到生成的BPDU报文的路径开销,再通过指定端口继续向下游设备转发。本发明通过优化生成树网络的拓扑,避免大量用户流量经过堆叠链路,从而减小了流量传输延时抖动等问题的影响。
【专利说明】一种存在堆叠设备的生成树网络拓扑的方法和设备
【技术领域】
[0001]本发明涉及通信【技术领域】,尤其涉及一种存在堆叠设备的生成树网络拓扑的方法和设备。
【背景技术】
[0002]当前随着虚拟化技术的发展和应用,堆叠技术作为N:1的虚拟化技术被广泛应用于数据通信网络中,无论是接入层、汇聚层,还是核心层,这些网络层次上的设备越来越广泛使用IRF(Intelligent Resilient Framework,智能弹性架构)技术来提高网络的可靠性、易用性和可扩展性。特别是在数据中心越来越集中庞大的趋势下,对设备的处理性能的要求也越来越高,堆叠技术应用的能够很好的满足这一需求。生成树协议作为最重要的二层网络协议,它通过选择性地阻塞网络中的冗余链路来消除二层环路,同时还具备链路备份的功能,当前生成树协议仍被广泛应用于二层网络中。
[0003]参见图1,图1为应用了堆叠技术的生成树网络拓扑模型,由于当前生成树网络的拓扑计算并没有考虑到堆叠设备情况,因而堆叠技术应用到生成树网络的过程中出现了新的特点和问题。比如可能出现大量用户流量在沿着生成树拓扑转发的过程经过了堆叠链路,导致堆叠链路拥塞从而出现堆叠分裂的问题。同时,当堆叠设备存在较多的成员设备时,用户流量可能需要经过多条堆叠链路,从而导致流量传输延时、抖动等问题。这些问题是当初生成树协议算法中没有考虑到的。

【发明内容】

[0004]有鉴于此,本发明提供一种优化存在堆叠设备的生成树网络拓扑计算方法,该方法包括:
[0005]堆叠设备接收到上游桥接协议数据单元BPDU报文后,选定根端口和指定端口 ;
[0006]堆叠设备判断所述指定端口与所述根端口是否在同一成员设备上,如果是,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与所述上游BPDU报文中路径开销值累加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游转发;如果否,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与堆叠设备的内部路径开销值以及所述上游BPDU报文中路径开销值相加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游设备转发。
[0007]进一步的,所述方法还包括:当堆叠设备指定端口与根端口不在同一成员设备上时,将指定端口与根端口所在设备之间的距离跳数累加到所述上游BPDU报文跳数TLV字段。
[0008]进一步的,所述堆叠设备的内部路径开销值由指定端口与根端口所在设备之间的路径开销值乘以由用户配置的参考因子得到。
[0009]进一步的,所述参考因子取值范围为0?100%。
[0010]进一步的,所述方法还包括:当堆叠设备的下游设备通过不同端口接收到来自上游的BPDU报文时,当接收到的BPDU报文中根桥ID相同,选择路径开销最小的端口为根端口,当路径开销相同,选择跳数TLV字段中取值最小的端口为根端口,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
[0011]本发明还提供一种堆叠设备,所述堆叠设备包括:
[0012]端口选定单元,用于接收到上游BPDU报文后,为堆叠设备选定根端口和指定端
n ;
[0013]端口判断单元,用于判断所述指定端口与所述根端口是否在同一成员设备上,如果是,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与所述上游BPDU报文中路径开销值累加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游转发;如果否,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与堆叠设备的内部路径开销值以及所述上游BPDU报文中路径开销值相加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游设备转发。
[0014]进一步的,所述端口判断单元进一步用于:当堆叠设备指定端口与根端口不在同一成员设备上时,将指定端口与根端口所在设备之间的距离跳数累加到所述上游BPDU报文中跳数TLV字段。
[0015]进一步的,所述堆叠设备的内部路径开销值由指定端口与根端口所在设备之间的路径开销值乘以用户配置的参考因子得到。
[0016]进一步的,所述参考因子取值范围为0?100%。
[0017]本发明还提供一种通信设备,应用于存在堆叠设备的生成树网络中堆叠设备的下游,所述通信设备包括:
[0018]端口选择单元,用于接收到上游堆叠设备的BPDU报文后,当接收到的BPDU报文中根桥ID相同,选择路径开销最小的端口成为根端口,当路径开销相同,选择跳数TLV字段中取值最小的端口成为根端口,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
[0019]相较于已有的方案而言,本发明在生成树网络的拓扑计算中考虑了堆叠设备的情况,避免大量用户流量在沿着生成树拓扑转发的过程中经过堆叠链路,大大减小了堆叠链路拥塞的可能性,保证了堆叠的稳定正常运行,同时通过优化生成树网络拓扑,让用户流量在尽可能短的路径上转发,经过的设备尽可能少,从而减小流量传输时延、抖动等问题的影响。
【专利附图】

【附图说明】
[0020]图1是应用堆叠技术的生成树网络拓扑模型;
[0021]图2是本发明实施例中存在堆叠设备的生成树网络拓扑的方法流程图;
[0022]图3是本发明实施例中一种堆叠设备的逻辑结构图;
[0023]图4是本发明实施例中一种通信设备的逻辑结构图;
[0024]图5是本发明一种实施方式中存在堆叠设备的MSTP网络;
[0025]图6是本发明一种实施方式中参考因子为100%时的具体实施图;
[0026]图7是本发明一种实施方式中参考因子为50%时的具体实施图。【具体实施方式】
[0027]下面结合附图及具体实施例对本申请再作进一步详细的说明。
[0028]本发明一实施例提供一种生成树网络环境中存在堆叠设备情况下,优化生成树拓扑计算的方法。当用户需要考虑堆叠拓扑对生成树拓扑的影响时,开启本发明的优化功能,通过增加生成树协议BPDU报文中的路径开销值来体现经过堆叠设备时的影响,同时在BPDU报文增加跳数TLV字段来向下游通知BPDU报文经过堆叠设备内部跳数的情况,在不改变现有生成树协议算法的基础上,让非根桥设备能够选择最优的转发路径所在的端口作为根端口。该方法能优化流量在存在堆叠设备网络的转发路径,减少对堆叠链路的流量冲击,从而减少报文在转发过程中的延时和抖动问题。
[0029]本发明实施例提供的一种存在堆叠设备的生成树网络拓扑的方法,参见图2,其具体步骤如下:
[0030]步骤S201:堆叠设备接收到上游BPDU报文后,选定根端口和指定端口 ;
[0031]步骤S202:堆叠设备判断所述指定端口与所述根端口是否在同一成员设备上,如果是,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与所述上游BPDU报文中路径开销值累加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游转发;如果否,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与堆叠设备的内部路径开销值以及所述上游BPDU报文中路径开销值相加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游设备转发。
[0032]堆叠设备在处理各个端口接收到的BPDU报文时,如果接收到的BPDU报文中根桥ID比本设备桥ID优时,可判断自身不是本网络中的根桥设备,需要从接收到根桥ID的BPDU报文的端口中选择一个作为根端口,然后根据根端口为其他端口计算端口角色,若计算结果为指定端口,则需要周期性向外发送BPDU报文。其中,本实施例中,BPDU报文新增跳数TLV字段,用于表示BPDU报文经过堆叠设备时,从根端口到指定端口经过的堆叠链路的跳数。该跳数TLV字段由根桥设备在发送的BPDU报文中添加。当堆叠设备判断所述指定端口与所述根端口不在同一成员设备上时,将指定端口与根端口所在设备之间的距离跳数累加到跳数TLV字段中,其中跳数TLV字段的取值在根桥设备发送的BPDU报文中初始化为O。
[0033]堆叠链路的内部路径开销值由指定端口和根端口所在设备之间的路径开销值乘以用户配置的参考因子得到。其中指定端口和根端口所在设备之间的路径开销值,由生成树协议本身计算得到,具体计算过程为现有技术不再赘述。所述参考因子用于描述堆叠设备内部开销值对生成树的影响程度,参考因子取值范围为0?100%,当取值为100%时,表示用户将堆叠设备内部每个成员都作为一个独立的桥设备来影响生成树拓扑;取0时表示不考虑堆叠内部路径开销对生成树的影响;而取其他值时,表示用户考虑堆叠内部路径开销对生成树的影响,具体影响程度取决于取值大小,即该参考因子取值越大表示堆叠内部路径开销对生成树的影响越大。
[0034]当下游设备各端口接收到所述BPDU报文选择根端口时,会按照优先级向量依次进行比较,所述优先级向量的比较包括根桥ID、根路径开销、跳数、指定桥ID、指定端口的比较。下游设备各端口在接收到所述BPDU报文后,当接收到的BPDU报文中根桥ID相同,需要进行路径开销比较时,选择路径开销最小的端口成为根端口,当路径开销相同,选择所述跳数TLV字段中取值最小的端口成为根端口,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
[0035]值得一提的是,在生成树网络中,堆叠设备也可被选举为根桥设备,同时堆叠设备也可作为另一个堆叠设备的下游设备,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
[0036]基于与上述方法同样的构思,本发明还提供一种堆叠设备,参见图3,堆叠设备的硬件架构中,通常包括CPU、内存、非易失性存储器以及其他硬件,该堆叠设备可理解为通过CPU运行之后形成的逻辑装置,包括:
[0037]端口选定单元,用于接收到上游BPDU报文后,为堆叠设备选定根端口和指定端
n ;
[0038]端口判断单元,用于判断所述指定端口与所述根端口是否在同一成员设备上,如果是,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与所述上游BPDU报文中路径开销值累加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游转发;如果否,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与堆叠设备的内部路径开销值以及所述上游BPDU报文中路径开销值相加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游设备转发。其中所述端口判断单元进一步用于当堆叠设备指定端口与根端口不在同一成员设备上时,将指定端口与根端口所在设备之间的距离跳数累加到所述上游BPDU报文中跳数TLV字段。
[0039]在以上描述中,所述堆叠设备的内部路径开销值由指定端口与根端口所在设备之间的路径开销值乘以用户配置的参考因子得到。所述参考因子取值范围为0?100%。基于与上述方法同样的构思,本发明实施例还提供一种通信设备,应用于存在堆叠设备的生成树网络中堆叠设备的下游,参见图4,该通信设备的硬件架构中,通常包括CPU、内存、非易失性存储器以及其他硬件,该通信设备通可理解为通过CPU运行之后形成的逻辑装置,包括:
[0040]端口选择单元,用于接收到上游堆叠设备的BPDU报文后,当接收到的BPDU报文中根桥ID相同,选择路径开销最小的端口成为根端口,当路径开销相同,选择跳数TLV字段中取值最小的端口成为根端口,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
[0041]以下通过具体的实施例来详细阐述本发明:
[0042]参见图5,图5中Switch A为根桥,堆叠设备的下游有端口阻塞,根据现有的MSTP拓扑计算,对于Switch D的端口 Dl和D2会阻塞其中一个端口来避免网络环路,若在路径开销相同情况下,生成树协议可能会将端口 D2阻塞,此时当根桥的流量向下游设备D转发时,该流量会经过堆叠设备内部的堆叠链路,从堆叠设备的端口 2/1转发出去。
[0043]参见图6,根据本发明实施例,用户将堆叠设备内部每个成员设备都作为一个独立的路由桥设备来影响生成树拓扑,即参考因子为100%时,Switch A根端口生成的BPDU报文中添加跳数TLV字段,此时跳数TLV字段的取值为O。由于Switch A是根桥设备,根据生成树算法,此时BPDU中路径开销字段cost值为O。
[0044]堆叠设备接收到根桥的BPDU后,选出根端口为portl/1,其中portl/2和port2/l都是指定端口,需要向下游转发BPDU报文。其根端口对应的路径开销为8,由于port2/l与根端口 portl/1不在同一个成员设备上,考虑堆叠链路内部路径开销,在为port2/l生成的BPDU报文中考虑堆叠链路内部开销,根据生成树协议计算出的堆叠链路路径开销为10,则port2/l生成的BPDU报文中路径开销最后应该为0+8+10=18,其中0为上游BPDU报文中的路径开销值,同时该BPDU报文的跳数TLV字段的取值加I ;在为portl/2生成的BPDU报文不需要考虑堆叠链路内部开销,则port 1/2生成的BPDU报文中路径开销应该为0+8=8,其中0为上游BPDU报文中的路径开销值。
[0045]Switch C不是堆叠设备,其根端口对应的路径开销为10,通过端口 port C2继续向下游发送的BPDU报文开销字段中cost值为18+10=28,其中18为上游BPDU报文中的路径开销值。
[0046]Switch B也不是堆叠设备,其根端口对应的路径开销为10,通过端口 port B2向下游发送的BPDU值cost为8+10=18,其中8为上游BPDU报文中的路径开销值。
[0047]当Switch D的port Dl和port D2都接收到根桥方向发送过来的BPDU报文时,需要选择一个最优端口作为根端口,port Dl的路径开销为5,它接收的BPDU中cost值为28,于是最后cost=28+5=33 ;而port D2的路径开销为10,它接收的BPDU中cost值为18,于是最后cost=18+10=28。因为这两个端口接收的BPDU报文中根桥都是Switch A,所以按照生成树规则在根桥相同情况下,比较路径开销的原则,port D2的路径开销比port Dl小,因此选择port D2成为根端口,同时根据生成树协议将port Dl 口阻塞。
[0048]当用户配置参考因子为50%时,参见图7,堆叠设备接收到根桥的BPDU后,选出根端口为portl/1, portl/2和port2/l都是指定端口,根据生成树算法为portl/2生成的BPDU报文中路径开销值为0+8=8。由于port2/l与根端口 portl/1不在同一个成员设备上,还需考虑堆叠链路内部路径开销,根据生成树协议计算出的堆叠链路路径开销为10,则port2/l生成的BPDU报文中路径开销最后应该为0+8+10*50%=13,同时该BPDU报文的跳数TLV字段的取值加I。
[0049]Switch C不是堆叠设备,其根端口对应的路径开销为10,通过端口 port C2继续向下游发送的BPDU报文开销字段中cost值为13+10=23。
[0050]Switch B也不是堆叠设备,其根端口对应的路径开销为10,通过端口 port B2向下游发送的BPDU值cost为8+10=18。
[0051]当Switch D的port Dl和port D2都接收到根桥方向发送过来的BPDU报文时,需要选择一个最优端口作为根端口,port Dl的路径开销为5,它接收的BPDU中cost值为23,于是最后cost=23+5=28 ;而port D2的路径开销为10,它接收的BPDU中cost值为18,于是最后cost=18+10=28。因为这两个端口接收的BPDU报文中根桥都是Switch A,所以按照生成树规则在根桥相同情况下,比较路径开销,此时port Dl和port D2的路径开销都是28,在路径开销相同的情况下,此时参考BPDU报文中的跳数TLV字段,跳数TLV字段取值最小的,说明BPDU报文经过的堆叠链路最少,于是选择port D2成为根端口,同时根据生成树协议将port Dl 口阻塞。
[0052]通过以上实施例的描述,本领域技术人员可以理解实施例中装置中的单元可以合并为一个单元,也可以进一步拆分成多个子单元。
[0053]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种存在堆叠设备的生成树网络拓扑的方法,其特征在于,所述方法包括: 堆叠设备接收到上游桥接协议数据单元BPDU报文后,选定根端口和指定端口 ; 堆叠设备判断所述指定端口与所述根端口是否在同一成员设备上,如果是,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与所述上游BPDU报文中路径开销值累加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游转发;如果否,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与堆叠设备的内部路径开销值以及所述上游BPDU报文中路径开销值相加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游设备转发。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:当堆叠设备指定端口与根端口不在同一成员设备上时,将指定端口与根端口所在设备之间的距离跳数累加到所述上游BPDU报文跳数TLV字段。
3.如权利要求1所述的方法,其特征在于,所述堆叠设备的内部路径开销值由指定端口与根端口所在设备之间的路径开销值乘以由用户配置的参考因子得到。
4.如权利要求3所述的方法,其特征在于,所述参考因子取值范围为O?100%。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:当堆叠设备的下游设备通过不同端口接收到来自上游的BPDU报文时,当接收到的BPDU报文中根桥ID相同,选择路径开销最小的端口为根端口,当路径开销相同,选择跳数TLV字段中取值最小的端口为根端口,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
6.一种堆叠设备,其特征在于,所述堆叠设备包括: 端口选定单元,用于接收到上游BPDU报文后,为堆叠设备选定根端口和指定端口 ; 端口判断单元,用于判断所述指定端口与所述根端口是否在同一成员设备上,如果是,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与所述上游BPDU报文中路径开销值累加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游转发;如果否,为所述指定端口生成BPDU报文时,将所述根端口对应的路径开销值与堆叠设备的内部路径开销值以及所述上游BPDU报文中路径开销值相加得到生成的BPDU报文的路径开销,再通过所述指定端口继续向下游设备转发。
7.如权利要求6所述的装置,其特征在于,所述端口判断单元进一步用于:当堆叠设备指定端口与根端口不在同一成员设备上时,将指定端口与根端口所在设备之间的距离跳数累加到所述上游BPDU报文中跳数TLV字段。
8.如权利要求6所述的装置,其特征在于,所述堆叠设备的内部路径开销值由指定端口与根端口所在设备之间的路径开销值乘以用户配置的参考因子得到。
9.如权利要求6所述的装置,其特征在于,所述参考因子取值范围为0?100%。
10.一种通信设备,应用于存在堆叠设备的生成树网络中堆叠设备的下游,其特征在于,所述通信设备包括: 端口选择单元,用于接收到上游堆叠设备的BPDU报文后,当接收到的BPDU报文中根桥ID相同,选择路径开销最小的端口成为根端口,当路径开销相同,选择跳数TLV字段中取值最小的端口成为根端口,当跳数TLV字段中取值相同时,进一步根据指定桥ID选择根端口,当指定桥ID相同时进一步根据指定端口选择根端口。
【文档编号】H04L12/801GK103532847SQ201310535991
【公开日】2014年1月22日 申请日期:2013年10月31日 优先权日:2013年10月31日
【发明者】王佳炳, 戎衍博, 熊志鑫 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1