多OpenFlow连接的处理方法及装置与流程

文档序号:14305110阅读:178来源:国知局
多OpenFlow连接的处理方法及装置与流程

本公开涉及网络通信技术领域,尤其涉及一种多openflow连接的处理方法及装置。



背景技术:

openflow(开放流)是sdn(softwaredefinednetwork,软件定义网络)架构中定义的一个sdn控制器与sdn设备之间的通信接口标准。openflow网络由sdn设备、sdn控制器以及安全通道组成。其中,sdn设备可以接收sdn控制器下发的流表,并根据流表进行简单的报文处理,向sdn控制器上报设备的状态和事件,如接口正常(up)、故障(down)等;sdn控制器是openflow网络的控制中心,可以根据用户的配置或者动态运行的协议生成流表并下发到sdn设备;sdn设备和sdn控制器之间可以通过预先配置的安全通道通信。

若sdn设备中存在负责运行杀毒、深度检测等业务的业务板(例如oap单板),且该业务板与sdn设备之间通过openflow通道交互,则该业务板就是sdn控制器的角色,可以向sdn设备下发流表。此时,sdn设备连接了两个sdn控制器,这两个sdn控制器都可以对sdn设备进行管理,这可能会导致sdn设备管理混乱,例如,sdn设备向控制器上送报文时,可能出现不确定应该发送给哪个控制器的问题。



技术实现要素:

有鉴于此,本公开提出了一种多openflow连接的处理方法及装置,能够在同一套设备环境中存在多个sdn控制器时,将报文转发至正确的sdn控制器。

根据本公开的一方面,提供了一种多openflow连接的处理方法,多openflow连接组网中包括外部sdn控制器和sdn设备,所述sdn设备上部署内嵌sdn控制器,所述外部sdn控制器与所述sdn设备建立第一openflow连接,所述外部sdn控制器和所述内嵌sdn控制器建立第二openflow连接,所述内嵌sdn控制器和所述sdn设备建立第三openflow连接,该方法应用于所述外部sdn控制器,该方法包括:所述外部sdn控制器确定sdn设备上与所述第一openflow连接对应的第一端口、与所述第二openflow连接对应的第二端口、与所述第三openflow连接对应的第三端口;所述外部sdn控制器建立端口和控制器索引的对应关系,包括:第一端口和外部sdn控制器的控制器索引的第一对应关系、第二端口和外部sdn控制器的控制器索引的第二对应关系、第三端口和所述内嵌sdn控制器的控制器索引的第三对应关系;所述外部sdn控制器将所述第一对应关系和第三对应关系通知给所述sdn设备,将所述第二对应关系通知给所述内嵌sdn控制器;所述外部sdn控制器向所述sdn设备和所述内嵌sdn控制器下发携带控制器索引的流表项,以使所述sdn设备或所述内嵌sdn控制器将与流表项匹配的报文通过该流表项携带的控制器索引对应的端口转发。

根据本公开的另一方面,提供了一种多openflow连接的处理装置,多openflow连接组网中包括外部sdn控制器和sdn设备,所述sdn设备上部署内嵌sdn控制器,所述外部sdn控制器与所述sdn设备建立第一openflow连接,所述外部sdn控制器和所述内嵌sdn控制器建立第二openflow连接,所述内嵌sdn控制器和所述sdn设备建立第三openflow连接,该装置应用于所述外部sdn控制器,该装置包括:确定模块,用于确定sdn设备上与所述第一openflow连接对应的第一端口、与所述第二openflow连接对应的第二端口、与所述第三openflow连接对应的第三端口;建立模块,用于建立端口和控制器索引的对应关系,包括:第一端口和外部sdn控制器的控制器索引的第一对应关系、第二端口和外部sdn控制器的控制器索引的第二对应关系、第三端口和所述内嵌sdn控制器的控制器索引的第三对应关系;通知模块,用于将所述第一对应关系和第三对应关系通知给所述sdn设备,将所述第二对应关系通知给所述内嵌sdn控制器;下发模块,用于向所述sdn设备和所述内嵌sdn控制器下发携带控制器索引的流表项,以使所述sdn设备或所述内嵌sdn控制器将与流表项匹配的报文通过该流表项携带的控制器索引对应的端口转发。

通过确定sdn设备上与第一openflow连接对应的第一端口、与第二openflow连接对应的第二端口、与第三openflow连接对应的第三端口,建立第一端口和外部sdn控制器的控制器索引的第一对应关系、第二端口和外部sdn控制器的控制器索引的第二对应关系、第三端口和所述内嵌sdn控制器的索引的第三对应关系,将所述第一对应关系和第三对应关系通知给所述sdn设备,将所述第二对应关系通知给所述内嵌sdn控制器,向所述sdn设备和所述内嵌sdn控制器下发携带控制器索引的流表项,根据本公开的各方面实施例的多openflow连接的处理方法及装置能够在sdn设备连接多个sdn控制器的情况下,基于报文匹配到的流表项携带的控制器索引,将报文通过该流表项携带的控制器索引对应的端口转发,从而将报文发送至正确的sdn控制器。

根据下面参考附图对示例性实施例的详细说明,本公开的其它特征及方面将变得清楚。

附图说明

包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本公开的示例性实施例、特征和方面,并且用于解释本公开的原理。

图1示出根据本公开一实施例的多opemflow连接的组网示意图;

图2示出根据本公开一实施例的多openflow连接的处理方法的流程图;

图3示出根据本公开一实施例的多openflow连接的处理装置的框图;

图4示出根据本公开一实施例的多openflow连接的处理装置的框图。

具体实施方式

以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。

在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。

另外,为了更好的说明本公开,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本公开同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本公开的主旨。

图1示出根据本公开一实施例的多opemflow连接的组网示意图。如图1所示,该多openflow连接的组网中包括外部sdn控制器21和sdn设备22,外部sdn控制器21与所述sdn设备22物理上分离,所述sdn设备22上还部署有内嵌sdn控制器23,该内嵌sdn控制器23可以为业务版,该业务板可以提供杀毒、深度检测等服务。所述外部sdn控制器21与所述sdn设备22之间建立了第一openflow连接,所述外部sdn控制器21与内嵌sdn控制器23之间建立了第二openflow连接,所述sdn设备22与所述内嵌sdn控制器23之间建立了第三openflow连接。其中,外部sdn控制器21和内嵌sdn控制器23之间建立连接时,内嵌sdn控制器23作为sdn设备被外部sdn控制器21管理和控制。

在一个示例中,上述多openflow连接组网中可以包括多个外部sdn控制器和多个sdn设备,每个sdn设备上可以部署多个内嵌sdn控制器。其中,一个外部sdn控制器可以管理和控制多个sdn设备、内嵌sdn控制器,一个sdn设备或内嵌sdn控制器可以被多个外部sdn控制器控制和管理,即存在多条第一openflow连接和多条第二openflow连接;一个sdn设备还可以被其上部署的多个内嵌sdn控制器管理,即存在多条第三openflow连接。

在多openflow连接组网中每个openflow连接都具备对应的标识,通过标识可以区分出多个openflow连接。

为了便于描述,基于图1所示的多opemflow连接的组网来描述本发明的方法,当然,本发明的方法同样适用于存在多条第一openflow连接、多条第二openflow连接和多条第三openflow连接的组网。图2示出根据本公开一实施例的多openflow连接的处理方法的流程图。该多openflow连接的处理方法可以应用于图1所示的外部sdn控制器21。如图2所示,该多openflow连接的处理方法包括:

步骤s11,所述外部sdn控制器确定sdn设备上与所述第一openflow连接对应的第一端口、与所述第二openflow连接对应的第二端口、与所述第三openflow连接对应的第三端口。

sdn设备可以使用指定端口或者默认端口与sdn控制器建立openflow连接。在本步骤中,内嵌sdn控制器部署在所述sdn设备上,因此所述第一端口、第二端口、第三端口均为sdn设备上的端口。其中,第一端口可以用于表示sdn设备上与外部sdn控制器建立第一openflow连接的端口,第二端口可以用于表示sdn设备上用于内嵌sdn控制器与外部sdn控制器建立第二openflow连接的端口,第三端口可以用于表示sdn设备上与内嵌sdn控制器建立第三openflow连接的端口。

建立openflow连接后,sdn控制器可以通过特征请求消息获取sdn设备各端口的端口信息,例如各端口的端口编号、端口mac地址和端口名称、端口连接状态等。因此,外部sdn控制器可以通过特征请求消息获取sdn设备上与第一openflow连接、第二openflow连接、第三openflow连接对应的端口。

步骤s12,所述外部sdn控制器建立端口和控制器索引的对应关系,包括:第一端口和外部sdn控制器的控制器索引的第一对应关系、第二端口和外部sdn控制器的控制器索引的第二对应关系、第三端口和所述内嵌sdn控制器的控制器索引的第三对应关系。

控制器索引可以用于识别唯一的sdn控制器,控制器索引可以由字母、数字和符号中的一者或多者组成。本公开对此不做限制。

在一种可能的实现方式中,外部sdn控制器可以建立控制器索引表,该控制器索引表用于记录端口与控制器索引的对应关系。在一个示例中,该控制器索引表包括第一端口对应的第一表项、第二端口对应的第二表项和第三端口对应的第三表项。其中,第一表项记录了第一端口和外部sdn控制器的控制器索引的对应关系,第二表项记录了第二端口和外部sdn控制器的控制器索引的对应关系,第三表项记录了第三端口和内嵌sdn控制器的控制器索引的对应关系。

在一种可能的实现方式中可以通过命令行的方式来为外部sdn控制器和内嵌sdn控制器配置控制器索引。需要说明的是,如果通过命令行配置控制器索引,要保证各sdn控制器的控制器索引不冲突,即各sdn控制器的控制器索引是唯一的。

在一种可能的实现方式中,外部sdn控制器和内嵌sdn控制器的控制器索引可以均由外部sdn控制器分配和管理。外部sdn控制器可以配置自身的控制器索引,内嵌sdn控制器与外部sdn控制器建立openflow连接后,内嵌sdn控制器的控制器索引由外部sdn控制器分配。在存在多个外部sdn控制器的情况下,外部sdn控制器的控制器索引可以通过各外部sdn控制器协商确定。

在一种可能的实现方式中,外部sdn控制器的控制器索引与内嵌sdn控制器的控制器索引的索引范围不同。例如外部sdn控制器的控制器索引的索引范围为1-999,内嵌sdn控制器的控制器索引的索引范围为1000-9999。这样,可以通过控制器索引区分出不同sdn控制器提供的服务类型,例如,外部sdn控制器可以提供标准openflow服务,内嵌sdn控制器可以提供标准openflow服务之外的私有定制服务,例如杀毒、深度检测等。

步骤s13,所述外部sdn控制器将所述第一对应关系和第三对应关系通知给所述sdn设备,将所述第二对应关系通知给所述内嵌sdn控制器。

在一个实施例中,外部sdn控制器可以通过openflow消息下发生所述的对应关系,例如,外部sdn控制器可以通过第一openflow连接下发携带所述第一对应关系和所述第三对应关系的第一openflow消息,通过第二openflow连接下发携带所述第二对应关系的第二openflow消息。

sdn设备可以通过第一端口连接外部sdn控制器,通过第三端口连接内嵌sdn控制器。外部sdn控制器将第一对应关系和第三对应关系通知给所述sdn设备后,sdn设备可以根据第一对应关系将发往外部sdn控制器的报文通过第一端口发送,sdn设备可以根据第三对应关系将发往内嵌sdn控制器的报文通过第三端口发送。

内嵌sdn控制器受外部sdn控制器控制和管理,内嵌sdn控制器相当于外部sdn控制器的一个sdn设备,内嵌sdn控制器通过sdn设备的第二端口连接外部sdn控制器。外部sdn控制器将第二对应关系通知给所述内嵌sdn控制器后,内嵌sdn控制器可以根据第二对应关系将发往外部sdn控制器的报文通过第二端口发送。

步骤s14,所述外部sdn控制器向所述sdn设备和所述内嵌sdn控制器下发携带控制器索引的流表项,以使所述sdn设备或所述内嵌sdn控制器将与流表项匹配的报文通过该流表项携带的控制器索引对应的端口转发。

其中,所述外部sdn控制器向所述sdn设备下发的流表项携带所述外部sdn控制器索引或所述内嵌sdn控制器索引;所述外部sdn控制器向所述内嵌sdn控制器下发的流表项携带外部sdn控制器索引。

参照图1,在一种可能的实现方式中,sdn设备22包括主控板221。外部sdn控制器21可以通过第一openflow连接将携带控制器索引的流表项下发至主控板221,由主控板221进一步分发到各转发板。在一个示例中,主控板221可以将该流表项直接下发到每一个转发板。主控板221还可以根据需求将该流表项下发到某一个或者某几个转发板。例如,转发板1接收到报文后,该报文未匹配到本地流表项,则转发板1将该报文上报到主孔板221,此时主控板221确定该报文匹配到流表项1,则主控板221可以将流表项1下发至转发板1。

参照图1,在一种可能的实现方式中,外部sdn控制器21可以通过第二openflow连接将携带控制器索引的流表项下发至内嵌sdn控制器。在一种可能的实现方式中,外部sdn控制器还可以首先通过第一openflow将该流表项发送至主控板221,再由主控板通过第三openflow连接或者其他设备内部通信方式将该流表项发送至内嵌sdn控制器。

外部sdn控制器向sdn设备和内嵌sdn控制器下发携带控制器索引的流表项,这样,sdn设备或内嵌sdn控制器可以获取报文匹配到的流表项中的控制器索引,根据步骤s13中外部sdn控制器下发的对应关系,确定该控制器索引对应的端口,进而将所述报文通过该端口发送至与控制器索引对应的sdn控制器。

在一个示例中,参照图1,外部sdn控制器索引为r1,内嵌sdn控制器索引为r2,sdn设备上端口1对应第一openflow连接、端口2对应第二openflow连接、端口3对应第三openflow连接。在步骤s12中,外部sdn控制器可以建立端口1和r1的对应关系,端口2和r1的对应关系,以及端口3和r2的对应关系。在步骤s13中,外部sdn控制器可以将端口1和r1的对应关系,以及端口3和r2的对应关系通知给sdn设备,并可以将端口2和r1的对应关系通知给内嵌sdn控制器。这样,sdn设备可以建立端口1和r1的对应关系,以及端口3和r2的对应关系,内嵌sdn控制器可以建立端口2和r1的对应关系。在步骤s14中,外部sdn控制器向sdn设备下发流表项1,该流表项1携带有控制器索引r1,以指示将报文发送给外部sdn控制器;外部sdn控制器还向sdn设备下发流表项2,该流表项2携带有控制器索引r2,以指示将报文发送给内嵌sdn控制器。sdn设备可以将匹配到流表项1的报文,通过r1对应的端口1发送,从而实现将报文发送给外部sdn控制器。sdn设备可以将匹配到流表项2的报文,通过r2对应的端口3发送,从而实现将报文发送给内嵌sdn控制器。

通过确定sdn设备上与第一openflow连接对应的第一端口、与第二openflow连接对应的第二端口、与第三openflow连接对应的第三端口,建立第一端口和外部sdn控制器的控制器索引的第一对应关系、第二端口和外部sdn控制器的控制器索引的第二对应关系、第三端口和所述内嵌sdn控制器的控制器索引的第三对应关系,将所述第一对应关系和第三对应关系通知给所述sdn设备,将所述第二对应关系通知给所述内嵌sdn控制器,向所述sdn设备和所述内嵌sdn控制器下发携带控制器索引的流表项,根据本公开实施例的多openflow连接的处理方法能够在sdn设备连接多个sdn控制器的情况下,基于报文匹配到的流表项携带的控制器索引,将报文通过该流表项携带的控制器索引对应的端口转发,从而将报文发送至正确的sdn控制器。

在一种可能的实现方式中,外部sdn控制器向所述sdn设备和所述内嵌sdn控制器下发的流表项中可以携带一个或多个控制器索引。其中,流表项中携带的多个控制器索引可以包括多个外部sdn控制器索引,或者多个内嵌sdn控制器索引,或者既包括一个或多个外部sdn控制器索引,又包括一个或多个内嵌sdn控制器索引。其中,所述流表项中携带多个控制器索引包括:所述流表项携带多个控制器索引所属的组标识。其中,所述组标识可以用于区分由多个控制器索引组成的索引组。组标识可以由数字、字母和符号中的一者或多者组成,本公开对此不做限制。

在一个示例中,组标识为group1的组中包括控制器索引1和控制器索引2,若匹配到流表项的报文需要同时发送给控制器索引1对应的sdn控制器和控制器索引2对应的sdn控制器,则外部sdn设备可以向sdn设备发送携带有组标识grpup1的流表项。

在一种可能的实现方式中,所述sdn设备上还包括所述内嵌sdn控制器下发的携带有内嵌sdn控制器索引的流表项。

内嵌sdn控制器作为一个sdn控制器,同样可以向sdn设备发送流表项。内嵌sdn控制器可以向sdn设备发送携带有内嵌sdn控制器索引的流表项,以使所述sdn设备将与流表项匹配的报文根据该流表项携带的内嵌sdn控制器索引对应的第三端口转发,实现将报文发送至内嵌sdn控制器。

这样,sdn设备可以根据报文匹配的流表项中携带的控制器索引,将报文发送至对应的sdn控制器。根据网络和业务规划,建立连接后,对于标准openflow上送sdn控制器的业务,报文会发送到外部sdn控制器处理;对于标准openflow上送sdn控制器的业务之外的业务,报文会发送到业务对应的内嵌sdn控制器处理。这样,专业的事情给专业的内嵌sdn控制器处理,达到控制和数据分离以及可以兼容第三方业务的功能,有利于目前的sdn架构网络中进行业务扩展。

在一种可能的实现方式中,上述步骤中涉及的第一端口、第二端口和第三端口的端口类型包括:物理端口、逻辑端口和保留端口。

其中,物理端口对应于sdn设备的硬件接口。例如,以太网交换机上的物理端口,与以太网接口一一对应。在硬件虚拟化的情况下,物理端口还可以代表与硬件接口对应的虚拟切片。

逻辑端口为sdn设备定义的端口,并不直接对应设备的硬件接口,可以是sdn设备中非openflow方式的端口,例如链路聚合口、vxlan(virtualextensiblelan,可扩展虚拟局域网)等隧道的端口等。

保留端口是openflow协议定义的端口,可以在端口上指定通用的转发动作,例如发到控制器、泛洪,或使用非openflow的方法转发。其中,controller(控制器)类型的保留端口,表示该端口对应sdn控制器的控制通道。当报文从controller类型的端口发送时,表示该报文被发送至sdn控制器。当报文从controller类型的端口接收时,表示该报文来自sdn控制器。

如前所述,在步骤s11的执行过程中外部sdn控制器可以获取到sdn设备各端口的端口编号和端口mac地址。按照openflow协议规定,sdn设备为每个端口预分配一个端口编号,端口编号的设置规则为:0至0xffffff00用于物理端口和逻辑端口,0xffffff01至0xffffffff用于保留端口。其中,端口编号可以识别唯一的物理端口、唯一的逻辑端口和一个类型的保留端口。例如,0xffffef00对应唯一的物理端口,0xfffffffd对应controller类型的保留端口。

在一种可能的实现方式中,步骤s12可以实现为建立端口标识和控制器索引的对应关系。其中,端口标识可以用于识别唯一的端口。

在本公开一实施例中,如表1所示,针对物理端口和逻辑端口,端口标识可以为端口编号或者端口mac地址。其中,端口编号和端口mac地址一一对应。在步骤s12和步骤s13中,外部sdn控制器建立端口编号与控制器索引的对应关系,或者建立端口mac地址与控制器索引的对应关系,并将建立的对应关系通知给sdn设备。sdn设备可以根据端口编号与控制器索引的对应关系,以及端口编号与端口mac地址的对应关系,建立控制器索引与端口mac地址的关系,或者根据外部sdn控制器的通知直接建立端口mac地址与控制器索引的对应关系。在步骤s14中,外部sdn控制器向sdn设备发送携带控制器索引的流表项。sdn设备接收到匹配到该流表项的报文后,可以根据端口mac地址与控制器索引的对应关系,确定发送该报文的端口的mac地址,进而通过该端口发送该报文。

表1

在本公开一实施例中,如表1所示,针对保留端口,端口标识可以为端口mac地址,端口编号可以为预分配编号与端口对应的控制器索引的组合。其中,预分配编号可以用于表示相关技术中openflow协议规定的为保留端口分配的端口编号。在步骤s12和步骤s13中,外部sdn控制器建立端口编号和端口mac地址的对应关系,并将建立的对应关系通知给sdn设备。sdn设备建立相应的端口编号和端口mac地址的对应关系。在步骤s14中,外部sdn控制器向sdn设备发送携带端口编号的流表项。sdn设备接收到匹配到该流表项的报文后,可以根据端口编号和mac地址的对应关系,确定发送该报文的端口的mac地址,进而通过该端口发送报文。

举例来说,sdn设备通过第一端口和外部sdn控制器建立第一openflow连接,通过第三端口和内嵌sdn控制器建立第三openflow连接。sdn设备中存在第一端口和第三端口两个controller类型的保留端口。若仅根据controller类型的保留端口的预分配编号确定发送报文的端口,则sdn设备会将报文同时通过第一端口和第三端口发送,造成资源浪费。在本公开实施例中,第一端口对应的端口编号包括controller类型的保留端口的预分配编号以及外部sdn控制器的控制器索引,第三端口对应的端口编号包括controller类型的保留端口的预分配编号以及内嵌sdn控制器的控制器索引。sdn设备可以根据端口编号中的预分配编号确定第一端口和第三端口为controller类型的保留端口,sdn设备可以根据预分配编号中的控制器索引区分第一端口和第三端口,从而确定出发送报文的唯一端口。

在一种可能的实现方式中,对于保留端口,预分配编号可以为协议规定的controller类型的保留端口的编号。在一种可能的实现方式中,本公开还可以扩展出新类型的保留端口,并从0xffffff01至0xffffffff中未占用的编号中为新类型的保留端口分配编号。此时,预分配编号为该新类型的保留端口对应的编号。

在一个示例中,对于controller类型的保留端口,可以将端口编号由0xfffffffd扩展为0xfffffffd(i),i表示该端口连接的sdn控制器的索引,例如,第一端口连接的外部sdn控制器的控制器索引,第三端口连接的内嵌sdn控制器的控制器索引。

在一个示例中,对于新增类型的保留端口,例如新增controller_interface类型的保留端口,对应预分配端口编号为xffffff01,该controller_interface类型的保留端口的端口编号为0xffffff01(i),i表示该端口连接的sdn控制器的索引。

应用场景

第一端口和第三端口为controller类型的保留端口,预分配编号为0xfffffffd,第一端口的mac地址为mac1,第三端口的mac地址为mac3,外部sdn控制器索引为1,内嵌sdn控制器索引为10。第一端口的端口编号为0xfffffffd(1),第三端口的编号为0xfffffffd(10)。sdn设备按照外部sdn控制器的通知建立了0xfffffffd(1)和mac1的第一对应关系以及0xfffffffd(10)和mac3的第三对应关系。

在上述应用场景下,示例1在步骤s14中,外部sdn控制器向sdn设备发送下发携带有0xfffffffd(1)的第一流表项和携带有0xfffffffd(10)的第二流表项。当sdn设备接收的报文匹配到第一流表项时,sdn设备从第一流表项中获取端口编号0xfffffffd(1),并确定0xfffffffd(1)对应mac1,sdn设备可以将报文通过mac地址为mac1的端口即第一端口发送出去,实现报文上送外部sdn控制器。当sdn设备接收的报文匹配到第二流表项时,sdn设备从第二流表项中获取端口编号0xfffffffd(10),并确定0xfffffffd(10)对应mac3,sdn设备可以将报文通过mac地址为mac3的端口即第三端口发送出去,实现报文上送内嵌sdn控制器。

在上述应用场景下,示例2在步骤s14中,外部sdn控制器向sdn设备下发携带有组标识group1的第三流表项。其中,组标识group1对应的组中包括端口编号0xfffffffd(1)和端口编号0xfffffffd(10)。当sdn设备接收的报文匹配到第三流表项时,sdn设备从第三流表项中获取组标识group1,确定组标识group1对应端口编号0xfffffffd(1)和端口编号0xfffffffd(10),其中端口编号0xfffffffd(1)对应第一端口,端口编号0xfffffffd(10)对应第三端口。sdn设备将报文分别通过第一端口上送外部sdn控制器,通告第三端口上送内嵌sdn控制器。

图3示出根据本公开一实施例的多openflow连接的处理装置50。多openflow连接组网中包括外部sdn控制器和sdn设备,所述sdn设备上部署内嵌sdn控制器,所述外部sdn控制器与所述sdn设备建立第一openflow连接,所述外部sdn控制器和所述内嵌sdn控制器建立第二openflow连接,所述内嵌sdn控制器和所述sdn设备建立第三openflow连接。如图3所示,该装置50应用于所述外部sdn控制器,该装置50包括:

确定模块51,用于确定sdn设备上与所述第一openflow连接对应的第一端口、与所述第二openflow连接对应的第二端口、与所述第三openflow连接对应的第三端口。

建立模块52,用于建立端口和控制器索引的对应关系,包括:第一端口和外部sdn控制器的控制器索引的第一对应关系、第二端口和外部sdn控制器的控制器索引的第二对应关系、第三端口和所述内嵌sdn控制器的控制器索引的第三对应关系。

通知模块53,用于将所述第一对应关系和第三对应关系通知给所述sdn设备,将所述第二对应关系通知给所述内嵌sdn控制器。

下发模块54,用于向所述sdn设备和所述内嵌sdn控制器下发携带控制器索引的流表项,以使所述sdn设备或所述内嵌sdn控制器将与流表项匹配的报文通过该流表项携带的控制器索引对应的端口转发。

图4示出根据本公开一实施例的多openflow连接的处理装置50。如图4所示,在一种可能的实现方式中,所述下发模块54包括:

第一下发单元541,用于向所述sdn设备下发的流表项携带所述外部sdn控制器的控制器索引或所述内嵌sdn控制器的控制器索引。

第二下发单元542,用于向所述内嵌sdn控制器下发的流表项携带外部sdn控制器索引。

在一种可能的实现方式中,所述流表项携带一个或多个控制器索引;所述流表项携带多个控制器索引包括:所述流表项携带多个控制器索引所属的组标识。

在一种可能的实现方式中,所述第一端口、第二端口和第三端口的端口类型包括:物理端口、逻辑端口和保留端口。

在一种可能的实现方式中,所述保留端口的端口编号为预分配编号与端口对应的控制器索引的组合。

以上已经描述了本公开的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

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