流量转发方法和装置的制作方法

文档序号:7888515阅读:102来源:国知局
专利名称:流量转发方法和装置的制作方法
技术领域
本发明涉及网络通信技术,特别涉及流量转发方法和装置。
背景技术
端口聚合,就是通过配置软件的设置,将交换设备上2个或多个物理端口捆绑在一起形成一个聚合端口,而组成该聚合端口的各个物理端口称为成员端口。其中,聚合端口将各个成员端口的带宽合并,提供一个几倍于各个成员端口的高带宽。参见图1,图I为交换设备上的端口不意图。在图I中,为提闻本网络节点与对端之间的网络带宽,将本交换设备上的物理端口 P1、P2、P3捆绑在一起,形成一个聚合端口 I。 如此,如图I所示,本交换设备在转发层面存在四个端口,分别为P4、P5、P6、聚合端口 I。 当本交换设备通过聚合端口 I中的一成员端口接收到入方向流量时,将该入方向流量打上聚合端口 I的标记,并在转发层面依据该入方向流量被打上的标记进行流量转发;而当本交换设备通过聚合端口 I转发出方向流量时,获取该聚合端口 I的成员端口 P1、P2、P3,然后通过HASH方式把出方向流量散列到P1、P2、P3上转发。在现有技术中,为保证流量转发,聚合端口和其成员端口之间是严格绑定,一个物理端口仅能绑定一个聚合端口,也即,一个物理端口仅属于一个聚合端口,不能同时属于两个以上的聚合端口,比如,图I中的物理端口 P1、P2、和P3仅属于聚合端口 1,其不能再属于其他聚合端口,否则,就会导致无法确定该物理端口 P1、P2、或P3接收的入方向流量应该打上哪一聚合端口的标记,进而导致该入方向流量无法继续转发。而一个物理端口仅属于一个聚合端口,这在二层等价多路径(L2ECMP)技术中,会限制一个物理端口承载ECMP的能力,比如,图I中,Pl至P3捆绑在一起形成一个聚合端口, 而如果P3、P4为到达目的地的ECMP所经过的出端口,也不能将P3、P4捆绑在一起,这显然会限制P3承载ECMP的能力,也导致L2ECMP仅能用于汇聚上行或下行组网场景,不能应用于网状组网中。

发明内容
本发明提供了流量转发方法和装置,提高物理端口承载多个ECMP的能力。本发明提供的技术方案包括—种流量转发方法,该方法应用于OpenFlow网络中的控制设备OpenFlow Controller,该方法包括A,确定出OpenFlow网络中同时承载N条等价路径的交换设备,N大于等于2 ;B,通知所述交换设备创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组;C,向所述交换设备下发对应所述流量分发组的第一 OpenFlow流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。一种流量转发装置,该装置为OpenFlow网络中的控制设备,包括确定单元,用于确定出OpenFlow网络中同时承载N条等价路径的交换设备,N大于等于2 ;通知单元,用于通知所述交换设备创建流量分发组,将所述交换设备上对应所述N 条等价路径中每一路径的出端口加入所述流量分发组;下发单元,用于向所述交换设备下发对应所述流量分发组的第一 OpenFlow流表, 所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。一种应用于流量转发的交换设备,该交换设备应用于OpenFlow网络中,该交换设备包括流量分发组创建单元,用于接收所述OpenFlow网络中控制设备OpenFlow Controller在所述交换设备同时承载N条等价路径时,发送的创建流量分发组通知,并依据所述通知创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组,N大于等于2 ;接收单元,用于接收所述控制设备下发的对应所述流量分发组的第一 OpenFlow 流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组;转发单元,用于在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。由以上技术方案可以看出,本发明中,通过OpenFlow网络中的控制设备确定出 OpenFlow网络中同时承载N条等价路径的交换设备,通知所述交换设备创建流量分发组, 将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组;以及向所述交换设备下发第一 OpenFlow流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。这相比于现有技术,只是在逻辑上将交换设备上的端口进行划分,但并不将交换设备上的物理端口进行捆绑,这保证了一个物理端口可属于多个流量分发组,相比于现有技术一个物理端口仅绑定一个聚合端口,提高一个物理端口承载多个ECMP的能力,并保证了 L2ECMP适用于网状组网等场景中。


图I为交换设备上的端口示意图;图2为本发明实施例提供的基本流程图;图3为本发明实施例提供的示例I示意图;图4为本发明实施例提供的示例2示意图;图5为本发明实施例提供的控制设备结构图;图6为本发明实施例提供的交换设备结构图。
具体实施例方式为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。在现有技术中,由于聚合端口是将多个物理端口捆绑形成,因此,这限制聚合端口和成员端口之间是严格绑定,一个物理端口仅能绑定一个聚合端口,否则,如果一个物理端口同时绑定在两个或多个聚合端口中,会导致流量转发混乱。而本发明中,并不将交换设备上的物理端口进行绑定,其以ECMP为焦点对交换设备上的物理端口进行划分,下面对本发明提供的方法进行分析参见图2,图2为本发明实施例提供的方法流程图。该方法应用于OpenFlow网络中的控制设备(OpenFlow Controller)。其中,OpenFlow是全球网络创新环境(GENI)的一个研究主题,目的是让科研人员能在现有的商用网络上进行新的网络协议的实验,从而省去搭建实验网络的费用,并且保证实验数据来自更接近真实的环境。随着OpenFlow技术的完善,OpenFlow的应用目标已扩展到广域网和数据中心领域。在广域网和数据中心领域中,OpenFlow的思想为分离控制平面和数据平面,二者之间使用标准的协议通信,数据平面采用基于流的方式进行转发,非常灵活和通用,层次化的集中控制平面,提供开放的API 接口供第三方开发,数据平面和控制平面支持虚拟化。基于OpenFlow,贝U如图2所示,OpenFlow网络中的控制设备可执行以下步骤步骤201,确定出OpenFlow网络中同时承载N条等价路径的交换设备,N大于等于 2。在OpenFlow网络中,控制设备拥有整个网络的设备、接口、链路信息,其通过路径计算,可以计算出网络中任何两个设备之间的路径,并且根据控制者需要,排列出该两个设备之间最优化的ECMP,这里,路径计算、以及ECMP确定不在本专利范围内,本专利不重点描述。之后,控制设备从所述OpenFlow网络中确定出同时承载所述ECMP中N条等价路径的交换设备。步骤202,通知所述交换设备创建一个流量分发组,将所述交换设备上对应所述N 条等价路径中每一路径的出端口加入所述流量分发组。优选地,一个交换设备并非只创建一个流量分发组,为便于区分同一交换设备上的流量分发组,需要分别针对每一流量分发组设置一个唯一标识。另外,本步骤202中,只是创建一个流量分发组,将N条等价路径中每一路径的出端口加入该流量分发组,并非捆绑各个端口,其相比于现有技术,能保证一个端口并非局限于一个流量分发组。如,如图3所示,假如从源地址I到达目的地址I的路径中,图3中的交换设备同时承载三条等价路径,该三条等价路径对应交换设备上的出端口分别为P1、P2、P3,而从源地址2到达目的地址2的路径中,图3中的交换设备同时承载两条等价路径,该两条等价路径对应交换设备上的出端口分别为P3、P7,基于此,控制设备就通知交换设备创建两个流量分发组,记为流量分发组I和流量分发组2,其中,流量分发组I中包含P1、P2、P3,流量分发组2中包含P3、P7。可以看出,交换设备上的端口 P3同时处于两个流量分发组中。步骤203,向所述交换设备下发对应所述流量分发组的OpenFlow流表,所述OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述OpenFlow流表中的流量分发组作为出
端口转发流量。以图3为例,则执行到本步骤203时,由于在步骤202中创建了两个流量分发组,因此,就向交换设备下发分别对应该两个流量分发组的OpenFlow流表即下发两个 OpenFlow流表,其中,对应流量分发组I的OpenFlow流表包含目的地址I和用于作为出端口的流量分发组1,对应流量分发组2的OpenFlow流表包含目的地址2和用于作为出端口的流量分发组2,如此,当交换设备需要转发向目的地址I (目的地址2原理2类似)发送的流量时,就以所述流量分发组I为出端口转发该流量。至此,完成图2所示的流程。下面通过图4对图2所示的流程进行详细描述在图4中,控制设备计算出从主机A至主机B的ECMP,分别为图4示出的以下两条路径路径I和路径2,其中,交换设备A同时承载该两条路径,交换设备A上对应路径I的出端口为Portl,对应路径2的出端口为Port2,基于此,控制设备通知交换设备A创建流量分发组,并在该创建的流量分发组中加入端口 Port I和Port 2 ;并向交换设备A下发一个对应流量分发组的OpenFlow流表,该OpenFlow流表可包括以下表项[目的地址Host B, 出端口 流量分发组的标识]。之后,当交换设备需要向HostB发送流量时,就以包含目的地址为该HostB的OpenFlow流表中的流量分发组为出端口转发该流量。需要说明的是,本发明中ECMP是单向的,比如,图4中主机B至主机A的ECMP路径独立于主机A至主机B的路径,但是,实现原理类似,不再一一赘述。上述图2至图4都是针对OpenFlow网络中存在同时承载N条等价路径的交换设备时描述的,而在控制设备计算出的两个设备之间的路径中不存在ECMP,或者,尽管计算出的两个设备之间的路径中存在ECMP,但不存在同时承载所述N条等价路径的交换设备时, 则所述控制设备进一步执行以下操作针对计算出的每一路径,向该路径所经由的交换设备下发与该路径在该交换设备上的出端口对应的另一 OpenFlow流表(为便于和上述与流量分发组对应的OpenFlow流表区分,这里可将该另一 OpenFlow流表记为第二 OpenFlow流表,而将对应流量分发组的 OpenFlow流表记为第一 OpenFlow流表),其中,所述第二 OpenFlow流表至少包括该路径的目的地和该交换设备上对应该路径的出端口。如此,当交换设备通过一流量分发组中的一个端口接收到流量或者通过非流量分发组中的端口接收到流量时,如果存在包含该流量目的地的第一 OpenFlow流表,则以该第
一OpenFlow流表中的流量分发组为出端口转发该流量,如果存在包含该流量目的地的第
二OpenFlow流表,则通过该第二 OpenFlow流表中的出端口转发该流量,即在转发层面,保证了物理端口和流量分发组共存的目的。其中,交换设备以流量分发组为出端口转发流量可借助于现有技术中聚合端口转发流量的方式,即,交换设备通过哈希(HASH)方式将流量分担至流量分发组中各个端口进行转发,或者,交换设备通过轮询方式将流量分担至流量分发组中各个端口进行转发,这保证了流量分发组中端口之间的负载分担,也能保证流量分发组中端口故障时,将该故障端口的流量HASH到流量分发组中的其他端口,实现ECMP的路径快速切换。综上可以看出,本发明在进行流量转发时,并不依赖于现有MAC学习机制,其中,MAC学习机制是在报文进入设备时把报文源MAC学习到入端口,在后续将该源MAC作为目的MAC向该目的MAC转发报文时,根据目的MAC查找报文的出端口(也即学习到该目的MAC 的入端口),而是依赖于OpenFlow技术,原因是由于在转发层面同时出现了流量分发组和物理端口,如果还依赖MAC学习机制指导二层转发,就不能实现通过流量分发组转发报文, 进而无法实现ECMP转发。以图3为例,假如报文源MAC被学习到了 Pl P3,因此,当后续该报文源MAC作为目的MAC,向该目的MAC转发报文时,依据MAC学习机制,则根据目的MAC 就应该将报文直接转发至Pl P3,就不会将报文转发到流量分发组1,无法实现ECMP等价多路径转发,因此,需要借助OpenFlow技术,由控制设备下发第一或第二 OpenFlow流表指导基于流量分发组方式实现的ECMP报文转发。至此,完成本发明提供的方法描述。下面对本发明提供的装置进行描述参见图5,图5为本发明实施例提供的控制设备结构图。该控制设备为OpenFlow 网络中的控制设备,如图5所示,该控制设备包括确定单元,用于确定出OpenFlow网络中同时承载N条等价路径的交换设备,N大于等于2 ;通知单元,用于通知所述交换设备创建流量分发组,将所述交换设备上对应所述N 条等价路径中每一路径的出端口加入所述流量分发组;下发单元,用于向所述交换设备下发第一 OpenFlow流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。优选地,如图5所示,所述确定单元包括计算子单元,用于针对所述OpenFlow网络中任意两个设备,计算该两个设备之间的路径;确定子单元,用于在所述计算子单元计算的路径中存在最优化的等价多路径ECMP 时,从所述OpenFlow网络中确定出同时承载所述ECMP中N条等价路径的交换设备。优选地,如图5所示,所述控制设备进一步包括路由单元,用于在所述确定子单元确定出OpenFlow网络中不存在同时承载所述 N条等价路径的交换设备时,针对所述计算子单元计算出的每一路径,向该路径所经由的交换设备下发第二 OpenFlow流表,所述第二 OpenFlow流表至少包括该路径的目的地和该交换设备上对应该路径的出端口,以使交换设备通过流量分发组中的其中一个端口接收到流量或者通过非流量分发组中的端口接收到流量时,如果存在包含该流量目的地的第一 OpenFlow流表,则以该第一 OpenFlow流表中的流量分发组为出端口转发该流量,如果存在包含该流量目的地的第二 OpenFlow流表,则通过该第二 OpenFlow流表中的出端口转发该流量。优选地,本发明还提供了一种应用于流量转发的交换设备,该交换设备应用于 OpenFlow网络中,如图6所示,该交换设备包括流量分发组创建单元,用于接收所述OpenFlow网络中控制设备OpenFlow Controller在所述交换设备同时承载N条等价路径时,发送的创建流量分发组通知,并依据所述通知创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组,N大于等于2 ;接收单元,用于接收所述控制设备下发的对应所述流量分发组的第一 OpenFlow 流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组;转发单元,用于在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。优选地,本发明中,所述接收单元还用于接收所述控制设备在所述交换设备不能同时承载所述N条等价路径时,针对计算出的经由所述交换设备的每一路径下发的与该路径在该交换设备上的出端口对应的第二 OpenFlow流表,所述第二 OpenFlow流表至少包括 该路径的目的地和该交换设备上对应该路径的出端口 ;基于此,所述转发单元进一步在所述转发由流量分发组中的一个端口或者通过非流量分发组中的端口接收到的流量时,如果存在包含该流量目的地的第一 OpenFlow流表, 则以该第一 OpenFlow流表中的流量分发组为出端口转发该流量,如果存在包含该流量目的地的第二 OpenFlow流表,贝U通过该第二 OpenFlow流表中的出端口转发该流量。其中,所述转发单元以流量分发组为出端口转发流量包括通过哈希或轮询方式将流量分担至流量分发组中各个端口进行转发。至此,完成本发明提供的装置描述。由以上技术方案可以看出,本发明中,通过OpenFlow网络中的控制设备确定出 OpenFlow网络中同时承载N条等价路径的交换设备,通知所述交换设备创建流量分发组, 将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组;以及向所述交换设备下发第一 OpenFlow流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。这相比于现有技术,只是在逻辑上将交换设备上的端口进行划分,但并不将交换设备上的物理端口进行捆绑,这保证了一个物理端口可属于多个流量分发组,相比于现有技术一个物理端口仅绑定一个聚合端口,提高一个物理端口承载多个ECMP的能力,并保证了 L2ECMP适用于网状组网等场景中。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种流量转发方法,该方法应用于OpenFlow网络中的控制设备OpenFlow Controller,其特征在于,该方法包括A,确定出OpenFlow网络中同时承载N条等价路径的交换设备,N大于等于2 ;B,通知所述交换设备创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组;C,向所述交换设备下发对应所述流量分发组的第一 OpenFlow流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。
2.根据权利要求I所述的方法,其特征在于,步骤A包括针对所述OpenFlow网络中任意两个设备,计算该两个设备之间的路径,如果该计算的路径中存在最优化的等价多路径ECMP,则从所述OpenFlow网络中确定出同时承载所述 ECMP中N条等价路径的交换设备。
3.根据权利要求2所述的方法,其特征在于,如果确定出OpenFlow网络中不存在同时承载所述N条等价路径的交换设备,则,针对计算出的每一路径,向该路径所经由的交换设备下发与该路径在该交换设备上的出端口对应的第二 OpenFlow流表,所述第二 OpenFlow 流表至少包括该路径的目的地和该交换设备上对应该路径的出端口 ;该方法进一步包括交换设备通过流量分发组中的一个端口接收到流量或者通过非流量分发组中的端口接收到流量时,如果存在包含该流量目的地的第一 OpenFlow流表,则以该第一 OpenFlow流表中的流量分发组为出端口转发该流量,如果存在包含该流量目的地的第二 OpenFlow流表,则通过该第二 OpenFlow流表中的出端口转发该流量。
4.根据权利要求I或3所述的方法,其特征在于,交换设备以流量分发组为出端口转发流量包括交换设备通过哈希或轮询方式将流量分担至流量分发组中各个端口进行转发。
5.一种应用于流量转发的控制设备,该控制设备为OpenFlow网络中的控制设备 OpenFlow Controller,其特征在于,该控制设备包括确定单元,用于确定出OpenFlow网络中同时承载N条等价路径的交换设备,N大于等于2 ;通知单元,用于通知所述交换设备创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组;下发单元,用于向所述交换设备下发对应所述流量分发组的第一 OpenFlow流表,所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组, 以使所述交换设备在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。
6.根据权利要求5所述的控制设备,其特征在于,所述确定单元包括计算子单元,用于针对所述OpenFlow网络中任意两个设备,计算该两个设备之间的路径;确定子单元,用于在所述计算子单元计算的路径中存在最优化的等价多路径ECMP时,从所述OpenFlow网络中确定出同时承载所述ECMP中N条等价路径的交换设备。
7.根据权利要求6所述的控制设备,其特征在于,所述控制设备进一步包括路由单元,用于在所述确定子单元确定出OpenFlow网络中不存在同时承载所述N条等价路径的交换设备时,针对所述计算子单元计算出的每一路径,向该路径所经由的交换设备下发与该路径在该交换设备上的出端口对应的第二 OpenFlow流表,所述第二 OpenFlow 流表至少包括该路径的目的地和该交换设备上对应该路径的出端口,以使交换设备通过流量分发组中的其中一个端口接收到流量或者通过非流量分发组中的端口接收到流量时, 如果存在包含该流量目的地的第一 OpenFlow流表,则以该第一 OpenFlow流表中的流量分发组为出端口转发该流量,如果存在包含该流量目的地的第二 OpenFlow流表,则通过该第二 OpenFlow流表中的出端口转发该流量。
8.—种应用于流量转发的交换设备,该交换设备应用于OpenFlow网络中,其特征在于,该交换设备包括流量分发组创建单元,用于接收所述OpenFlow网络中控制设备OpenFlow Controller 在所述交换设备同时承载N条等价路径时,发送的创建流量分发组通知,并依据所述通知创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组,N大于等于2 ;接收单元,用于接收所述控制设备下发的对应所述流量分发组的第一 OpenFlow流表, 所述第一 OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组;转发单元,用于在向所述目的地转发流量时,将所述第一 OpenFlow流表中的流量分发组作为出端口转发流量。
9.根据权利要求8所述的交换设备,其特征在于,所述接收单元还用于接收所述控制设备在所述交换设备不能同时承载所述N条等价路径时,针对计算出的经由所述交换设备的每一路径下发的与该路径在该交换设备上的出端口对应的第二 OpenFlow流表,所述第二 OpenFlow流表至少包括该路径的目的地和该交换设备上对应该路径的出端口 ;所述转发单元进一步在所述转发由流量分发组中的一个端口或者通过非流量分发组中的端口接收到的流量时,如果存在包含该流量目的地的第一 OpenFlow流表,则以该第一 OpenFlow流表中的流量分发组为出端口转发该流量,如果存在包含该流量目的地的第二 OpenFlow流表,则通过该第二 OpenFlow流表中的出端口转发该流量。
10.根据权利要求8或9所述的交换设备,其特征在于,所述转发单元以流量分发组为出端口转发流量包括通过哈希或轮询方式将流量分担至流量分发组中各个端口进行转发。
全文摘要
本发明提供了流量转发方法和装置。该方法应用于OpenFlow网络中的控制设备OpenFlow Controller,包括A,确定出OpenFlow网络中同时承载N条等价路径的交换设备;B,通知所述交换设备创建流量分发组,将所述交换设备上对应所述N条等价路径中每一路径的出端口加入所述流量分发组;C,向所述交换设备下发对应所述流量分发组的第一OpenFlow流表,所述第一OpenFlow流表包含所述N条等价路径的目的地和用于作为出端口的所述流量分发组,以使所述交换设备在向所述目的地转发流量时,将所述第一OpenFlow流表中的流量分发组作为出端口转发流量。
文档编号H04L12/56GK102594664SQ201210023000
公开日2012年7月18日 申请日期2012年2月2日 优先权日2012年2月2日
发明者常慧锋 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1