一种纵向堆叠系统的数据转发端口选择方法及装置与流程

文档序号:13240462阅读:498来源:国知局
一种纵向堆叠系统的数据转发端口选择方法及装置与流程

本发明涉及通信技术领域,尤其涉及一种纵向堆叠系统的数据转发端口选择方法及装置。



背景技术:

随着当前数据中心的快速发展,一系列的虚拟化技术通过提高处理器使用效率进一步降低数据中心成本。伴随云计算技术的发展,虚拟机的猛增,企业的数据中心不可避免的产生了一些管理的难题,网络技术的发展必须适应新的虚拟化技术趋势。为此,ieee(instituteofelectricalandelectronicsengineers,电气和电子工程师协会)组织针对数据中心虚拟机迁移等新技术提出了一系列新的802.1标准,包括802.1qau(拥塞通告)、802.1qaz(增强型传输选择)、802.1qbb(基于优先级的流控)、802.1qbg(边缘虚拟桥)、802.1br(虚拟桥接口扩展)等。

其中,802.1br标准可以将远程交换机部署为虚拟环境中的策略控制交换机,通过多个虚拟通道,让边缘虚拟桥复制报文到一组远程接口,利用瀑布式的串联接口和灵活的设计网络,更有效的为多播帧、广播帧和单播帧分配带宽。

802.1br标准还定义pecsp(portextendercontentsecuritypolicy,端口扩展器内容安全策略)协议,通过pecsp协议报文控制网桥配置、监控桥接口扩展设备。如图1是pecsp协议创建虚拟桥过程示意图,pe(portextender,端口扩展器)为设备除上行端口外的所有端口依次向cb(controllingbridge,控制桥)申请创建扩展端口,发送extendedportcreate(扩展端口创建)消息,来请求cb创建对应的扩展接口、e-channel(e通道,控制桥和站点之间建立的多个通道),并将e-channel绑定到扩展接口;cb收到extendedportcreate消息后,创建对应的扩展bep(ext.bridgeportextender,扩展桥端口扩张器)接口,为bep端口分配e-cid(e-channelidentifier,扩展通道标识)。

扩展bep接口创建以后,如果pe的扩展端口通过lacp(linkaggregationcontrolprotocol,链路汇聚控制协议)协议聚合成的聚合端口,并且将该聚合端口加入到某个组播/广播组中。在此种组网场景下,数据报文需要在组播/广播组中进行转发,同时聚合端口要能够进行选路和负载分担,一般地,有两种方案可供选择,如下:

第一种方案是,将lacp配置推送到pe,由pe进行管理、选路。该方案缺点在于,由于配置需要从cb推送到pe,可靠性不能得到保障;并且如果聚合的扩展口分布在两台或多台的pe上,那么对于pe来说,它无法知道聚合端口的其他成员信息,也无法对其他设备的端口进行选路计算。因此,该方案存在很大缺陷,无法支持。

第二种方案为,将lacp配置下发到cb上,由芯片本身根据lacp成员进行选路。如果lacp成员是普通的物理端口,这种方法是可行的。但是如果lacp成员为扩展端口,pe并不感知聚合端口,也无法知道自己设备的端口是否在lacp中。cb上实际存在的物理端口是cascade端口(cb上接收csp报文的端口),无法进行选路和负载分担。因此,该方案也存在一定的问题。



技术实现要素:

有鉴于此,本发明提供一种纵向堆叠系统的数据转发端口选择方法及装置,能够在组网场景下有效地进行选路。

基于上述目的本发明提供的纵向堆叠系统的数据转发端口选择方法,包括如下步骤:

扫描组播/广播成员,识别其中的聚合端口;

从所述聚合端口的成员端口中,按照设定方式选择组播/广播出端口;

将所述组播/广播出端口与发送通道进行绑定,使得报文转发时,能够发送到所述组播/广播出端口。

可选的,所述聚合端口为基于链路汇聚控制协议lacp的端口,其成员端口包括端口扩展pe设备的端口,所述端口扩展pe设备至少包括一个。

可选的,所述将所述组播/广播出端口与发送通道进行绑定的步骤具体包括:

提取所述组播/广播出端口的标识;

将组播发送设备生成的组播/广播扩展通道标识号ecid与所述组播出端口的标识一起填充在发送通道注册报文中发送到端口扩展pe设备;

根据所述发送通道注册报文中解析出的组播/广播扩展通道标识号ecid,将所述组播/广播出端口与所述组播扩展通道标识号ecid产生对应的关系并与所述发送通道绑定。

可选的,所述扫描组播/广播成员、识别其中的聚合端口的步骤之前,还包括:

将所述端口扩展pe设备的物理端口设定为组播/广播发送设备的扩展端口,所述组播/广播发送设备为控制桥cb设备;

在所述扩展端口聚合为至少一个聚合端口后,将至少一个所述聚合端口加入组播/广播组中,成为组播组中的组播/广播成员。

可选的,所述设定方式包括哈希算法。

同时,本发明提供一种纵向堆叠系统的数据转发端口选择装置,包括:

聚合端口识别模块:用于扫描组播/广播成员,识别其中的聚合端口;

端口选择模块:用于从所述聚合端口的成员端口中,按照设定方式选择组播/广播出端口;

绑定模块:用于将所述组播/广播出端口与发送通道进行绑定,使得报文转发时,能够发送到所述组播/广播出端口。

可选的,所述聚合端口为基于链路汇聚控制协议lacp的端口,其成员端口包括端口扩展pe设备的端口,所述端口扩展pe设备至少包括一个。

可选的,所述绑定模块具体包括:

端口标识提取单元:用于提取所述组播/广播出端口的标识;

报文发送单元:用于将组播发送设备生成的组播/广播扩展通道标识号ecid与所述组播出端口的标识一起填充在发送通道注册报文中发送到端口扩展pe设备;

所述绑定模块根据所述发送通道注册报文中解析出的组播/广播扩展通道标识号ecid,将所述组播/广播出端口与所述组播扩展通道标识号ecid产生对应的关系并与所述发送通道绑定。

可选的,所述装置还包括:

扩展端口设定模块:用于将所述端口扩展pe设备的物理端口设定为组播/广播发送设备的扩展端口,所述组播/广播发送设备为控制桥cb设备;

聚合端口加入模块:用于在所述聚合扩展端口聚合为至少一个聚合端口后,将至少一个所述聚合端口加入组播/广播组中,成为组播组中的组播/广播成员。

可选的,所述设定方式包括哈希算法。

本发明提供的纵向堆叠系统的数据转发端口选择方法和装置,有效解决了组播/广播报文在pe扩展口聚合成的lacp端口上转发选路的问题,避免pe设备向聚合端口所有成员口组播/广播报文。从而解决了将lacp配置下发到cb上、由芯片本身根据lacp成员进行选路时,若lacp成员包括聚合端口,则难以选路的问题。

同时,通过本发明提供的纵向堆叠系统的数据转发端口选择方法及装置,既可以有效解决lacp聚合端口加入组播组时,由于聚合端口没有单播ecid,分配的组播ecid无法和实际物理端口绑定,从而导致组播报文在lacp不能进行选路转发和负载分担的问题,也可以通过在软件层面事先按照一种方法,选择出报文的组播转发路径,从而避免了一般传统方案在可靠性等方面的缺陷,展现出一定的技术优势。

附图说明

图1为本发明实施例的pe物理端口创建为扩展端口的过程示意图;

图2为本发明实施例的方法流程示意图;

图3为本发明实施例的纵向堆叠bep端口聚合图;

图4a为本发明实施例的纵向堆叠cb设备lacp端口记录示意图;

图4b为本发明实施例的纵向堆叠pe设备端口记录示意图;

图5为本发明实施例的装置结构示意图。

具体实施方式

为了给出有效的实现方案,本发明提供了下述实施例,以下结合说明书附图对本发明实施例进行说明。

本发明首先提供一种纵向堆叠系统的数据转发端口选择方法,如图2所示,包括如下步骤:

步骤201:扫描组播/广播成员,识别其中的聚合端口;

步骤202:从所述聚合端口的成员端口中,按照设定方式选择组播/广播出端口;

步骤203:将所述组播/广播出端口与发送通道进行绑定,使得报文转发时能够发送到所述组播/广播出端口。

从上面所述可以看出,本发明提供的纵向堆叠系统的数据转发端口选择方法,能够从聚合端口中选择一个端口作为聚合端口的所有成员端口的报文或其他数据信息收发的出端口,解决了在将lacp配置下发到cb的情况下,组播或广播成员中存在由一个或两个以上pe设备的端口聚合成的聚合端口而导致无法选路的问题。

在本发明具体实施例中,在不同报文转发时、或者在不同的报文转发时刻,可根据端口占用的实际情况和报文的内容、属性等在一个聚合端口中选择不同的端口作为出端口。

在本发明具体实施例中,所述设定方式可以为随机选择方式。

在本发明一些实施例中,所述聚合端口为基于链路汇聚控制协议lacp的端口,其成员端口包括端口扩展pe设备的端口,所述端口扩展pe设备至少包括一个。

在本发明一些实施例中,所述将所述组播/广播出端口与发送通道进行绑定的步骤具体包括:

提取所述组播/广播出端口的标识;

将组播发送设备生成的组播/广播扩展通道标识号ecid与所述组播出端口的标识一起填充在发送通道注册报文中发送到端口扩展pe设备;

根据所述发送通道注册报文中解析出的组播/广播扩展通道标识号ecid,将所述组播/广播出端口与所述组播扩展通道标识号ecid产生对应的关系并与所述发送通道绑定。

当pe上的扩展端口通过lacp协议聚合为一个聚合端口时,cb会记录这个聚合端口的成员对应的端口标识。而且聚合端口成员口分别拥有不同的ecid,lacp端口作为pe扩展口聚合起来的逻辑口,将不会再分配新的ecid。此时,如果将该聚合端口加入某个组播或者广播组,cb向pe发送pecsp报文e-channel注册消息,pe接收到携带e-channel注册消息的csp报文后,会将组播ecid与该聚合端口绑定。

在本发明一些实施例中,所述扫描组播/广播成员、识别其中的聚合端口的步骤之前,仍然参照图2,还包括:

步骤200:将所述端口扩展pe设备的物理端口设定为组播/广播发送设备的扩展端口,所述组播/广播发送设备为控制桥cb设备;

步骤2001:在所述扩展端口聚合为至少一个聚合端口后,将至少一个所述聚合端口加入组播/广播组中,成为组播组中的组播/广播成员。

在802.1br协议中,pe会通过extendedportcreate报文向cb依次通告pe设备的端口。cb接收到该报文,从中解析出pe端口的标识,并记录下来。与此同时,cb会唯一的为每一个pe端口分配一个ecid,并将ecid和接收该报文端口的对应关系下发到cb硬件中去,这样就在cb上创建了一个扩展接口。通过extendedportcreate报文的不断上送与ecid的下发,cb都会在cascade口上创建一个个扩展端口与pe上的每一个实际端口一一对应。同时,cb会向pe发送extendedportcreatereply报文,并在该报文中携带分配到pe端口上的ecid,作为pe上该端口的唯一标识。

具体的,如图1所示,控制桥设备cb和扩展桥接口扩展器bpe1在创建扩展端口时的过程为:

101:控制桥设备cb发现bpe1,发起内部扩展桥接口扩展器创建过程。控制桥设备cb和扩展桥接口扩展器bpe1之间相互发lldp(linklayerdiscoveryprotocol,链路层发现协议)协议报文,发现对方以及对方的直连端口。

102:pecsp初始化。当cb和bpe1互相发现对方以后,分别独立触发设备发送cspopen(csp打开)报文,向对方通知csp协议开启,同时等待对方回应。

103:当cb设备或pe设备收到cspopen报文之后,向对端发送cspopenreply报文进行应答。仅当cb和pe都收到cspopenreply报文,证明双方协议、设备都已就绪,能够连接建立。

104:当双方协议、设备都已就绪,cb就可以初始化bpe1上流端口。通过发送portparametersset(端口参数设置)报文对pe端口进行一些设置。pe回复portparameterssetreply报文进行响应。

105:cb初始化c-vlan组件端口,pe创建扩展端口。pe向cb发送extendedportcreate(扩展端口创建)报文,该报文中携带pe上物理端口信息。pe通过向cb发送extendedportcreate报文通告设备的端口,cb接收到extendedportcreate报文,通过解析,获得报文中携带的pe端口标识并记录下来。具体地,例如,pe上共有n个端口,pe为每个端口分配一个端口标识,例如1、2、3……n等数字作为唯一标记。实际上,该端口标识包括但不限于数字,只要能够区分不同端口都可以,例如,也可以是符号等。pe上记录这些端口标识与端口的对应关系。最终,pe上所有端口都通过发送extendedportcreate报文的方式上报给cb。

106:cb接收到这些extendedportcreate报文后,解析出其中的端口标识例如1、2、3……n等,并为每个这样的pe端口分配一个单播ecid,所述ecid的大小为0-4千字节,同时,将为端口分配的ecid与pe端口标识对应关系记录在cb本地的数据库或者资源链表中,并可发送extendedportcreatereplay报文进行回复。

107:后续扩展端口创建过程与前面过程类似。

cb上接收csp报文的端口称之为cascade端口,例如图3中的port1、port2。cb将接收携带端口标识n的extendedportcreate报文的cascade端口与为该端口n分配的ecid一起下发硬件,为pe上的端口创建相应扩展端口。同时,cb将为标识为n的端口分配的ecid封装在extendedportcreatereply报文中,发送到pe。以图3为例:pe1和pe2分别有端口port3、port4;port、port5、port6端口。pe1和pe2分别为这些端口提取或构造的端口标识为数字3、4;5、6、7。pe1记录端口和端口标识对应关系:port3-3,port4-4。pe2记录端口和端口标识对应关系:port5-5,port6-6,port7-7。pe向cb发送extendedportcreate报文,报文中携带3、4、5、6、7的端口标识。分别的,pe1发送的报文携带端口标识为3、4;pe2发送的报文携带的端口标识为5、6、7。port1接收到pe1发送的extendedportcreate报文,port2接收到pe2发送的extendedportcreate报文。cb为pe1上端口标识为3、4的端口port3、port4分配ecid:13、14;为pe2上标识为5、6、7的端口port5、port6、port7分配ecid为:15、16、17。记录该对应关系pe1:3-13、4-14;pe2:5-15、6-16、7-17。其中pe1、pe2为pe上的端口标识,后者为该端口标识分配的ecid。cb将该对应该对应关系填入extendedportreply报文,向pe发送。pe接收到extendedportcreatereply报文,解析出其中分配的ecid和端口标识(pe1:3-13、4-14;pe2:5-15、6-16、7-17)后,再与本地已记录的内容(pe1:port3-3、port4-4;pe2:port5-5、port6-6、port7-7)比对。获得ecid与其端口,然后下发硬件,将ecid与对应的物理口进行绑定。这样pe上每一个物理口就和cb的扩展口产生了一一对应的关系,参照图3,port3、port4、port5、port6、port7分别对应扩展端口bep3、bep4、bep5、bep6、bep7。

如图3所示,当cb与pe已经形成802.1br环境,此时,如果两个扩展端口聚合为一个聚合端口,如bep4、bep5聚合为一个聚合端口trunk1或bep6、bep7聚合成为一个聚合端口trunk2,pe上有新的逻辑端口产生。其中,e1为e-channel1,e2为e-channel2。此时,为聚合端口设置标识,有两种方案可供选择:1)聚合端口(如trunk1/trunk2)重新生成端口标识x并向cb发送extendedportcreate报文,cb为该逻辑端口生成新的单播ecid-x并在extendedportcreatereply报文中发送回来。但是这种方法存在以下几个问题:首先,占用单播ecid资源,减少了端口可扩展容量;其次,即使不考虑ecid的问题,重新分配的单播ecid-x无法同实际物理端口绑定,因为实际的物理端口已经拥有已分配的单播ecid,如13、14、15、16、17;再次,802.1br协议没有规定要为逻辑端口分配单播ecid。基于以上三点,trunk1、trunk2不再向cb发送extendedportcreate报文进行申请。因此,trunk1、trunk2作为浮在bep口上的逻辑口存在,没有单独的单播ecid与之绑定。虽然,trunk1、trunk2没有新的单播ecid与之对应,但是cb会记录聚合端口成员、cascade端口及其单播ecid—turnk1:4-14-port1(cascade)、5-15-port2(cascade);trunk2:6-16-port2(cascade)、7-17-port2(cascade),详细装置可见图4a、图4b。

将trunk1、trunk2加入到某个组播或者广播组中,cb会为组播/广播分配一个组播的ecid,并将该组播ecid绑定到这个组播组/广播组的所有成员上。cb向pe发送携带e-channelregister(e-channel注册)报文。pe设备接收e-channelregister报文并解析出其中的组播ecid。并将该ecid与pe上实际的物理端口进行绑定。

由于bep4、bep5以及bep6、bep7聚合成的lacp端口没有相应的单播ecid可以和组播e-channel进行绑定,因此在本发明实施例中,在cb发送pecsp报文进行e-channel和端口绑定之前,由cb扫描组播组成员,如果某个成员为lacp聚合端口且其成员端口是扩展口,那么cb就按照设定方式计算选举出lacp的一个成员端口作为聚合端口的出端口,该出端口用于接收组播或广播的报文或其他数据;选出出端口后,提取成员端口标识,和该组播的ecid填充在e-channelregister报文中发送到pe,进行绑定。

在本发明一些实施例中,所述设定方式包括哈希算法。

在本发明一种具体实施例中,以图3为例,bep4、bep5聚合而成的trunk1和bep6、bep7聚合而成的trunk2分别加入到组播ip224.1.1.1和vlan1000中。cb记录trunk1、trunk2及其成员标识和ecid:3-13、4-14;5-15、6-16。cb为trunk1、trunk2分配组播ecid(范围为4k+1~16k)为5001、12002。可以用trunk1即将加入hash的组播ecid1(5001)除以trunk1成员个数的余数(例如余数为m)作为最终的值,选定lacp成员的第m+1个端口作为组播出端口:组播ecid1%2=5001%2=1,余数为1,则取trunk1的第二个端口bep5作为算法最终选定的出端口代表lacp端口加入到组播ip224.1.1.1中。并将bep5口所在的cascade口(port2)下发cb硬件,加入到组播ip224.1.1.1中。同时,将bep5对应的标识5-15(单播ecid)和5001(组播ecid)填入e-channelregister报文发送pe。如果trunk1加入到另外一个组播ip224.1.1.2,而cb为该组播组分配的组播ecid为5002,那么根据同一个算法:5002%2=0,那么选举出来的端口即为trunk1的第一个端口bep4。填入e-channelregister报文的端口标识、单播ecid、组播ecid就分别为4、14、5002,而下发cb硬件的cascade口即为port1。以trunk2加入vlan1000为例,假设cb为vlan1000分配的组播ecid为12002,那么根据算法选取出的端口即为:12002%2=0,对应端口即为trunk2的第一个端口port6,单播ecid为16,端口标识为6。下发cb硬件的cascade口为port2,填入e-channelregister报文中的端口标识、单播ecid、组播ecid分别为:6、16、12002。

pe接收到e-channelregister报文,解析出其中的组播ecid和端口标识,仅以trunk1加入组播ip224.1.1.1为例。pe从e-channelregister报文中解析出5、15、5001。根据图4a、图4b所示的记录,找到对应端口为port5,然后将port5与组播ecid5001进行绑定。这样,实际加入到组播ip224.1.1.1的就是端口port5,而port4并不在组播ip224.1.1.1中。同理,trunk1加入到组播ip224.1.1.2和trunk2加入到vlan1000均可采用此种方法,最终实际加入的端口分别为port4和port6。

所以,根据本发明以上实施例提出的转发方法,当一个组播报文在组播组(ip为224.1.1.1)转发的时候,如果其组播出端口为trunk1,那么它在cb上会找到出端口port1(cb上port1和组播组的ip224.1.1.1已下硬件),报文到达pe以后,转发到bep5。

因为所述聚合端口并没有分配单播的ecid(与lacp的成员口ecid不同),即cb未能感知pe上的lacp聚合端口为一个独立的扩展口。所以,可以通过一种方法选取lacp的某个成员口(pe的扩展端口),与组播ecid进行绑定。当组播流量转发或者复制到该lacp的时候,就转发复制到选举出的这个成员口。从而避免了给lacp端口分配ecid,既节省了单播ecid资源,又减少了pe上不同扩展端口之间进行硬件hash选路的复杂度。

同时,本发明还提供一种纵向堆叠系统的数据转发端口选择装置,结构如图5所示,包括:

聚合端口识别模块501:用于扫描组播/广播成员,识别其中的聚合端口;

端口选择模块502:用于从所述聚合端口的成员端口中,按照设定方式选择组播/广播出端口;

绑定模块503:用于将所述组播/广播出端口与发送通道进行绑定,使得报文转发时,能够发送到所述组播/广播出端口。

在本发明一些实施例中,所述聚合端口为基于链路汇聚控制协议lacp的端口,其成员端口包括端口扩展pe设备的端口,所述端口扩展pe设备至少包括一个。

在本发明一些实施例中,所述绑定模块具体包括:

端口标识提取单元:用于提取所述组播/广播出端口的标识;

报文发送单元:用于将组播发送设备生成的组播/广播扩展通道标识号ecid与所述组播出端口的标识一起填充在发送通道注册报文中发送到端口扩展pe设备;

所述绑定模块根据所述发送通道注册报文中解析出的组播/广播扩展通道标识号ecid,将所述组播/广播出端口与所述组播扩展通道标识号ecid产生对应的关系并与所述发送通道绑定。

在本发明一些实施例中,所述装置还包括:

扩展端口设定模块:用于将所述端口扩展pe设备的物理端口设定为组播/广播发送设备的扩展端口,所述组播/广播发送设备为控制桥cb设备;

聚合端口加入模块:用于在所述聚合扩展端口聚合为至少一个聚合端口后,将至少一个所述聚合端口加入组播/广播组中,成为组播组中的组播/广播成员。

在本发明一些实施例中,所述设定方式包括哈希算法。

本发明提供的纵向堆叠系统的数据转发端口选择方法和装置,有效解决了组播/广播报文在pe扩展口聚合成的lacp端口上转发选路的问题,避免pe设备向聚合端口所有成员口组播/广播报文。从而解决了将lacp配置下发到cb上、由芯片本身根据lacp成员进行选路时,若lacp成员包括聚合端口,则难以选路的问题。

同时,通过本发明提供的纵向堆叠系统的数据转发端口选择方法及装置,既可以有效解决lacp聚合端口加入组播组时,由于聚合端口没有单播ecid,分配的组播ecid无法和实际物理端口绑定,从而导致组播报文在lacp不能进行选路转发和负载分担的问题,也可以通过在软件层面事先按照一种方法,选择出报文的组播转发路径,从而避免了一般传统方案在可靠性等方面的缺陷,展现出一定的技术优势。

应当理解,本说明书所描述的多个实施例仅用于说明和解释本发明,并不用于限定本发明。并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1