一种通信方法、OpenFlow交换机及通信系统与流程

文档序号:13908610阅读:504来源:国知局
一种通信方法、OpenFlow交换机及通信系统与流程

本发明涉及通信领域,尤其涉及一种通信方法、openflow交换机及通信系统。



背景技术:

软件定义网络(英文全称:softwaredefinednetwork,英文简称:sdn)是近年来出现的一种新型网络创新架构。sdn通过控制平面与数据平面分离、控制平面集中化、数据平台业务流程标准化,能够有效地简化数据通信中网络设备复杂度,提高网络业务更新演进速度,高效满足用户对应用业务创新的需求。openflow协议是snd的核心技术之一,openflow协议将包含sdn控制器的网络设备控制面与包含openflow交换机的数据面分离开来,由sdn控制器实现全网的控制、管理功能,同时由openflow交换机实现业务数据转发。从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。

其中,sdn控制器与openflow交换机通过openflow协议进行通信,具体的通信模式通常选择带内通信模式以承载控制通信,其中sdn控制器与openflow交换机间的带内通信通道建立依赖于openflow交换机之间的业务通道建立,而openflow交换机之间的业务通道建立则依赖于sdn控制器通过控制通信通道向openflow交换机下发转发策略。

在实际使用中,sdn控制器在向openflow交换机下发转发策略前,需要在sdn控制器与openflow交换机间建立用于带内通信配置的虚拟局域网(英文全称:virtuallocalareanetwork,英文简称:vlan),同时在openflow交换机中配置相应的二层、三层数据转发功能。在建立带内通信通道时,sdn控制器通过该vlan向openflow交换机下发转发策略,openflow交换机识别该vlan中对应转发策略的数据流,并按照配置在openflow交换机中的二层、三层数据数据转发规则进行转发。上述方案虽然能够在sdn控制器与openflow交换机间建立带内通信通道,但需要建立用于带内通信配置的vlan,并且需要openflow交换机支持相应的二层、三层数据转发功能,因此上述方案增加了网络维护所消耗的资源,并提高了openflow交换机的复杂程度,从而增加了在sdn控制器与

openflow交换机间建立带内通信通道的成本。



技术实现要素:

本申请提供一种通信方法、openflow交换机及通信系统,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道。

第一方面,本发明的实施例提供了一种通信方法,包括:openflow交换机接收第一报文;当确定第一报文的接收方ip地址为openflow交换机的带内通信接口ip地址时,解析第一报文;当确定第一报文的发送方ip地址或第一报文的接收方ip地址为软件定义网络sdn控制器的ip地址时,以泛洪方式转发第一报文。

第二方面,本发明的实施例提供了一种openflow交换机,包括:接收模块,用于接收第一报文;发送模块,用于当确定第一报文的接收方ip地址为openflow交换机的带内通信接口ip地址时,解析第一报文;当确定第一报文的发送方ip地址或第一报文的接收方ip地址为软件定义网络sdn控制器的ip地址时,以泛洪方式转发第一报文。

第三方面,本发明的实施例提供了一种通信系统,包括第二方面本发明的实施例所提供的openflow交换机以及sdn控制器。

本发明的实施例提供的一种通信方法、openflow交换机及通信系统,用于openflow交换机,通过接收第一报文,并在确定第一报文为接收方为该openflow交换机的报文时,解析该第一报文以获取第一报文所携带的具体信息;在确定第一报文为接收方为sdn控制器的报文即其他openflow交换机向sdn控制器上报的报文时,以泛洪方式转发第一报文,从而保证sdn控制器能够正确接收其他openflow交换机向sdn控制器上报的报文;在确定第一报文可能为sdn控制器广播的报文时,同样以泛洪方式转发第一报文,从而保证其他openflow交换机能够正确接收sdn控制器广播的报文。因此本发明实施例提供的通信方法,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道,减少了网络维护所消耗的资源,并降低了openflow交换机的复杂程度,从而降低了在sdn控制器与openflow交换机间建立带内通信通道的成本。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的实施例所提供的一种通信方法的示意性流程图;

图2为本发明的另一实施例所提供的一种通信方法的示意性流程图;

图3为本发明的实施例所提供的一种网络架构的示意性结构图;

图4为本发明的实施例所提供的一种openflow交换机的示意性结构图;

图5为本发明的另一实施例所提供的一种openflow交换机的示意性结构图;

图6为本发明的实施例所提供的一种通信系统的示意性结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

为了便于清楚描述本发明实施例的技术方案,在本发明的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。如本发明实施例中所提到的第一报文、第二报文、第三报文可以为类型与格式相同的报文,“第一”、“第二”等字样仅用于标示接收到对应报文的时刻为不同时刻。

目前在数据通信领域中,为了将控制平面从网络设备中分离出来,常采用软件定义网络(英文全称:softwaredefinednetwork,英文简称:sdn)架构,在上述架构中,可以由sdn控制器实现全网的控制、管理功能,同时由openflow交换机实现业务数据转发。其中sdn控制器与openflow交换机通过openflow协议进行通信,具体的通信模式通常选择带内通信模式以承载控制通信。

由于在sdn控制器与openflow交换机之间进行数据通信前需要在两者间建立带内通信信道,而通过sdn控制器向openflow交换机下发转发策略以建立带内通信信道的方法需要在两者间建立用于带内通信配置的vlan,并且需要openflow交换机支持相应的二层、三层数据转发功能,从而增加了网络维护所消耗的资源,并提高了openflow交换机的复杂程度。

为了使sdn控制器与openflow交换机之间能够在sdn控制器无需向openflow交换机下发配置策略的前提下建立带内通信通道,如附图1所示,本发明的实施例提出了一种通信方法,包括:

101、openflow交换机接收第一报文。

具体的,可以为openflow交换机从sdn控制器接收第一报文,也可以为openflow交换机从其他openflow交换机处接收第一报文,需要说明的是,此时openflow交换机与sdn控制器的通信模式被配置为带内通信模式,openflow交换机与snd控制器均属于用于带内通信的vlan。

需要说明的时,在事先为openflow交换机与snd控制器配置vlan的过程中,将openflow交换机上用于带内通信的端口加入该vlan,之后在openflow交换机上配置带内通信接口并将该带内通信接口与vlan绑定,同时为该带内通信接口配置带内通信接口ip地址,当openflow交换机进行带内通信时,需通过该带内通信接口进行通信,配置给带内通信接口的带内通信接口ip地址能够在openflow交换机与snd控制器或其他openflow交换机进行带内通信时指示该openflow交换机。

102、当确定第一报文的接收方ip地址为openflow交换机的带内通信接口ip地址时,解析第一报文。

具体的,可以在openflow交换机上配置用于带内通信的带内通信接口ip地址,其中带内通信接口ip地址为openflow交换机在带内通信时的ip地址。openflow交换机也可以从其他装置或系统处获取该openflow交换机用于带内通信的带内通信接口ip地址。

openflow交换机可以根据收到的第一报文获取第一报文的接收方ip地址,当第一报文的接收方ip地址为该openflow交换机的带内通信接口ip地址时,确定该第一报文为接收方为该openflow交换机的报文,因此解析该第一报文以获取第一报文所携带的具体信息。具体的,该第一报文为snd控制器或其他openflow交换机发往该openflow交换机的报文,该报文可以为目的ip地址为openflow交换机的带内通信接口ip地址的网络之间互连协议(英文全称:internetprotocol,英文简称:ip)报文,也可以为接收方ip地址为openflow交换机的带内通信接口ip地址的地址解析协议(英文全称:addressresolutionprotocol,英文简称:arp)报文。

103、当确定第一报文的发送方ip地址或第一报文的接收方ip地址为软件定义网络sdn控制器的ip地址时,以泛洪方式转发第一报文。

具体的,可以在openflow交换机上配置sdn控制器的ip地址,也可以由openflow交换机从其他装置或系统处获取sdn控制器的ip地址,需要说明的是,可以有一个或多个sdn控制器与openflow交换机进行带内通信,因此sdn控制器的ip地址也可以包括多个ip地址。

具体的,该第一报文可以为源ip地址或目的ip地址为sdn控制器ip地址的ip报文,也可以为发送方ip地址或接收方ip地址为sdn控制器ip地址arp报文。

当确定第一报文的发送方ip地址或第一报文的接收方ip地址为sdn控制器的ip地址时,说明第一报文的接收方为sdn控制器,或该第一报文可能为sdn控制器所发送的广播信息,因此为了保证snd控制器或其他openflow交换机能够正确接收到第一报文,以泛洪方式转发第一报文。需要说明的是,当确定所述第一报文的发送方ip地址为所述sdn控制器的ip地址时,还需要满足所述第一报文的接收方ip地址不为所述openflow交换机时,以泛洪方式转发所述第一报文。

具体的,以泛洪方式转发第一报文可以为openflow交换机以广播的方式发送该第一报文。

需要举例说明的是,当openflow交换机从p0端口接收该第一报文时,可与设定openflow交换机在以泛洪方式转发第一报文时,不再从该p0端口转发第一报文。

本发明的实施例提供的一种通信方法,通过openflow交换机接收第一报文,并在确定第一报文为接收方为该openflow交换机的报文时,解析该第一报文以获取第一报文所携带的具体信息;在确定第一报文为接收方为sdn控制器的报文即其他openflow交换机向sdn控制器上报的报文时,以泛洪方式转发第一报文,从而保证sdn控制器能够正确接收其他openflow交换机向sdn控制器上报的报文;在确定第一报文可能为sdn控制器广播的报文时,同样以泛洪方式转发第一报文,从而保证其他openflow交换机能够正确接收sdn控制器广播的报文。因此本发明实施例提供的通信方法,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道,减少了网络维护所消耗的资源,并降低了openflow交换机的复杂程度,从而降低了在sdn控制器与openflow交换机间建立带内通信通道的成本。

具体的,如附图2所示,本发明的实施例提供了一种通信方法包括:

201、openflow交换机接收第一报文。

具体参照上述实施例中步骤101,在此不再赘述。

需要说明的是,在openflow交换机接收第一报文前,可以在openflow交换机上配置用于带内通信的虚拟局域网vlan,并将openflow交换机所有用于带内通信的通信端口加入到vlan中,配置vlan为openflow交换机的带内通信接口,并设置带内通信接口的ip地址,配置与openflow交换机通信的sdn控制器的ip地址。

需要说明的是,该第一报文可以为其他openflow交换机所发送的如步骤211中所述的控制通信报文。

202、当确定第一报文的发送方ip地址或第一报文的接收方ip地址为软件定义网络sdn控制器的ip地址时,以泛洪方式转发第一报文。

具体参照上述实施例中步骤103,在此不再赘述。

203、当确定第一报文的接收方ip地址为openflow交换机的带内通信接口ip地址且第一报文的发送方ip地址为sdn控制器的ip地址时,获取openflow交换机接收第一报文的第一端口;

其中确定第一报文的接收方ip地址为openflow交换机的带内通信接口ip地址可以参照上述实施例中步骤102,在此不再赘述。

其中,openflow交换机可以通过解析第一报文以获取第一报文的发送方ip地址,并将第一报文的发送方ip地址与配置在openflow交换机上的sdn控制器的ip地址进行对比,当相同时,确定第一报文的发送方ip地址为sdn控制器的ip地址。

具体的,第一端口为openflow交换机接收第一报文的端口,其中第一端口为openflow交换机上用于带内通信的端口。

204、接收第二报文;

205、当确定第二报文的接收方ip地址为sdn控制器的ip地址时,通过第一端口转发第二报文;

具体的,可以通过解析第二报文以获取第二报文的接收方ip地址,并将第一报文的接收方ip地址与配置在openflow交换机上的sdn控制器的ip地址进行对比,当相同时确定第二报文的接收方ip地址为sdn控制器的ip地址。

当通过上述内容确定第二报文的接收方ip地址为sdn控制器的ip地址时,可确定第二报文为其他openflow交换机向sdn控制器上报的报文,而在本openflow交换机上用于与sdn控制器进行带内通信的端口为第一端口,因此通过第一端口转发第二报文,从而避免将其他openflow交换机向sdn控制器上报的报文转发至其他openflow交换机,造成报文泄露的后果。

示例性的,当第一openflow交换机311通过端口p1-1接收到第一报文,第一报文的接收方ip地址为第一openflow交换机311的带内通信接口ip地址128.255.1.1,因此端口p1-1为第一端口。当第一openflow交换机311通过端口p1-2接收到第二报文且第二报文的接收方ip地址为sdn控制器301的ip地址128.255.1.254时,第一openflow交换机311通过端口p1-1转发第二报文,使snd控制器301能够正确接收到第二报文,避免因第一openflow交换机311从端口p1-3转发第二报文所造成的将第二报文泄露给第三openflow交换机313。

206、当确定第二报文的发送方ip地址为sdn控制器的ip地址时,通过除第一端口外openflow交换机上用于带内通信的其他端口转发第二报文。

具体的,可以通过解析第二报文以获取第二报文的发送方ip地址,并将第一报文的发送方ip地址与配置在openflow交换机上的sdn控制器的ip地址进行对比,当相同时确定第二报文的发送方ip地址为sdn控制器的ip地址。

当通过上述内容确定第二报文的发送方ip地址为sdn控制器的ip地址时,可确定第二报文可能为sdn控制器广播的报文,而在本openflow交换机上用于与sdn控制器进行带内通信的端口为第一端口,因此通过除第一端口外openflow交换机上用于带内通信的其他端口转发第二报文,从而避免通过第一端口转发第二报文所造成的端口资源浪费。

示例性的,当第一openflow交换机311通过端口p1-1接收到第一报文,第一报文的接收方ip地址为第一openflow交换机311的带内通信接口ip地址128.255.1.1,因此端口p1-1为第一端口。当第一openflow交换机311通过端口p1-2接收到第二报文且第二报文的发送方ip地址为sdn控制器301的ip地址128.255.1.254时,第一openflow交换机311通过端口p1-2与p1-3转发第二报文,使第二openflow交换机312以及第三openflow交换机313能够正确接收到第二报文,避免因第一openflow交换机311从端口p1-1转发第二报文所造成的端口资源浪费。

207、周期性通过第一端口发送自动发现报文,自动发现报文包括openflow交换机的带内通信接口ip地址;

具体的,openflow交换机可以根据事先配置的周期阈值周期性的通过第一端口发送自动发现报文,其中自动发现报文的报文类型为自动发现报文,接收该自动发现报文的openflow交换机或sdn控制器可以根据所接收到的报文的报文类型确定该报文是否为自动发现报文。

自动发现报文包括openflow交换机的带内通信接口ip地址,优选的,自动发现报文还可以包括openflow交换机的mac地址,与openflow交换机相邻的openflow交换机能够根据自动发现报文中携带的openflow交换机的带内通信接口ip地址确定发送该自动发现报文的openflow交换机。

示例性的,在如附图3所示的网络架构中,当第一openflow交换机311通过端口p1-2接收第二openflow交换机312从端口p2-1发送的自动发现报文时,该自动发现报文的格式可以如下表所示:

其中接收方ip地址为snd控制器301的ip地址,接收方mac地址为snd控制器301的mac地址,报文类型0x0102指该报文为自动发现报文。

208、接收邻居openflow交换机发送的自动发现报文并通过第一端口转发自动发现报文,根据自动发现报文获取邻居openflow交换机的带内通信接口ip地址以及openflow交换机接收自动发现报文的第三端口;

具体的,邻居openflow交换机可以为与openflow交换机直接连接的openflow交换机,也可以为通过其他openflow交换机与openflow交换机连接的openflow交换机。

具体的,可以根据所接收到的报文的类型确定该报文为自动发现报文,可以根据自动发现报文中的发送该自动发现报文的邻居openflow交换机的带内通信接口ip地址确定该邻居openflow交换机,优选的,还可以根据自动发现报文中的发送该自动发现报文的邻居openflow交换机的带内通信接口ip地址以及发送该自动发现报文的邻居openflow交换机的mac地址确定该邻居openflow交换机。同时确定openflow交换机接收该自动发现报文的第三端口。从而确定openflow交换机用于与邻居openflow交换机进行带内通信的第三端口。

具体的,通过第一端口转发该自动发现报文,使openflow交换机与snd控制器间的其他openflow交换机或snd控制器能够收到该自动发现报文,从而根据自动发现报文确定从相应端口能够进行带内通信的openflow交换机。

209、接收第三报文;

210、当确定第三报文的发送方ip地址为sdn控制器的ip地址、第三报文的接收方ip地址为邻居openflow交换机的带内通信接口ip地址时,通过第三端口转发第三报文。

其中,第三端口为openflow交换机接收邻居openflow交换机发送的自动发现报文的通信端口,确定第三报文的发送方ip地址为sdn控制器的ip地址可以参照上述实施例中步骤102,在此不再赘述。

当第三报文的发送方ip地址为sdn控制器的ip地址且第三报文的接收方的ip地址为步骤208中确定的邻居openflow交换机的带内通信接口ip地址时,表示第三报文为发送方为sdn控制器且接收方为邻居openflow交换机,而openflow交换机通过第三端口可以与邻居openflow交换机进行带内通信,因此通过第三端口转发第三报文,避免openflow交换机通过其他端口转发第三报文所造成的报文泄露。

示例性的,如附图3所示,第一openflow交换机311从端口p1-2接收到由第二openflow交换机312发送的自动发现报文,第一openflow交换机311从端口p1-1转发该自动发现报文,第一openflow交换机311从自动发现报文中获取发送方ip地址为128.255.1.2即第二openflow交换机312的ip地址,并且确定接收该自动发现报文的端口p1-2。

当第一openflow交换机311收到第三报文,并且第三报文的接收方ip地址为128.255.1.2即第二openflow交换机312、第三报文的发送方ip地址为128.255.1.254即snd控制器301的ip地址时,确定该第三报文为发送方为snd控制器301、接收方为第二openflow交换机312的报文,由于之前通过自动发现报文确定的第一openflow交换机311通过端口p1-2能够与第二openflow交换机312进行带内通信,因此第一openflow交换机311通过端口p1-2转发该第三报文。

211、获取控制通信报文;

具体的,控制通信报文可以为openflow交换机自身生成的报文。控制通信报文携带有控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址。

212、当根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址能够确定openflow交换机的第二端口时,从第二端口发送控制通信报文。

具体的,可以根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址查询控制平面转发表以获得相应的发送端口,该控制平面转发表可以为事先配置在openflow交换机上,也可以为openflow交换机从其他装置或系统处获取。

当查询成功时,从查询结果中所获得的端口即openflow交换机的第二端口发送控制通信报文,减少因从错误的端口发送控制通信报文所造成的报文泄露及端口资源浪费。

213、当无法根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址确定相应端口时,从openflow交换机上用于带内通信的所有端口发送控制通信报文。

具体的,当查询失败时,即无法根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址确定相应端口时,从openflow交换机上用于带内通信的所有端口发送控制通信报文,避免控制通信报文发送失败。

需要说明的是,上述实施例中步骤201-203可以被定为初始探测阶段的步骤,上述实施例中步骤204-213可以被定义为自动发现阶段的步骤,其中初始探测阶段与自动发现阶段为sdn控制器与openflow交换机之间的带内通信通道建立过程中的两个阶段,其中初始探测阶段可以为openflow交换机在没有建立具体的报文转发规则前自主设置的初始转发规则,从而在保证openflow交换机与sdn控制器的基本通信需求的前提下,收集openflow交换机所在网络架构的信息以便于完善用于在自动发现阶段实施的报文转发规则;当openflow交换机通过初始探测阶段收集到满足一定要求的网络架构信息时,可以根据上述网络架构信息正确建立转发规则,从而在正确转发控制通信报文的前提下降低报文泄露的可能,其中网络架构信息可以包括openflow交换机与sdn控制器间的连接关系,还可以包括openflow交换机与其他相邻openflow交换机的连接关系等。

本发明的实施例提供的一种通信方法,通过openflow交换机接收第一报文,在确定第一报文为接收方为sdn控制器的报文即其他openflow交换机向sdn控制器上报的报文时,以泛洪方式转发第一报文,在确定第一报文为接收方为openflow交换机且发送方为sdn控制器时,获取openflow交换机接收第一报文的第一端口,从而在收到接收方为sdn控制器的第二报文时,从第一端口转发该第二报文,使sdn控制器能够正确接收第二报文的前提下避免转发第二报文的过程中出现报文泄露;同时在确定第二报文为发送方为sdn控制器时,从第一端口外openflow交换机上用于带内通信的其他端口转发第二报文,避免端口资源的浪费。周期性通过第一端口发送自动发现报文,在接收到自动发现报文时,确定该自动发现报文的发送方邻居openflow交换机以及接收到该自动发现报文的第三端口,之后在接收到发送方为sdn控制器且接收方为邻居openflow交换机的报文时,通过该第三端口转发第三报文从而避免在转发第三报文的过程中出现报文泄露。在发送控制通信报文的过程中,根据控制通信报文的接收方确定第二端口,并从第二端口发送该控制通信报文,从而避免发送控制通信报文的过程中出现报文泄露,并且在不能根据控制通信报文的接收方确定端口时,从openflow交换机上用于带内通信的所有端口发送控制通信报文,避免控制通信报文发送失败。因此本发明实施例提供的通信方法,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道,减少了网络维护所消耗的资源,并降低了openflow交换机的复杂程度,从而降低了在sdn控制器与openflow交换机间建立带内通信通道的成本。

如附图4所示,本发明的实施例提供了一种openflow交换机401,包括:

接收模块411,用于接收第一报文;

具体的,可以为openflow交换机从sdn控制器接收第一报文,也可以为openflow交换机从其他openflow交换机处接收第一报文,需要说明的是,此时openflow交换机与sdn控制器的通信模式被配置为带内通信模式,openflow交换机与snd控制器均属于用于带内通信的vlan。

需要说明的时,在事先为openflow交换机与snd控制器配置vlan的过程中,将openflow交换机上用于带内通信的端口加入该vlan,之后在openflow交换机上配置带内通信接口并将该带内通信接口与vlan绑定,同时为该带内通信接口配置带内通信接口ip地址,当openflow交换机进行带内通信时,需通过该带内通信接口进行通信,配置给带内通信接口的带内通信接口ip地址能够在openflow交换机与snd控制器或其他openflow交换机进行带内通信时指示该openflow交换机。

发送模块412,用于当确定第一报文的接收方ip地址为openflow交换机的带内通信接口ip地址时,解析第一报文;

当确定第一报文的发送方ip地址或第一报文的接收方ip地址为软件定义网络sdn控制器的ip地址时,以泛洪方式转发第一报文。

具体的,可以在openflow交换机上配置用于带内通信的带内通信接口ip地址,其中带内通信接口ip地址为openflow交换机在带内通信时的ip地址。openflow交换机也可以从其他装置或系统处获取该openflow交换机用于带内通信的带内通信接口ip地址。

openflow交换机可以根据收到的第一报文获取第一报文的接收方ip地址,当第一报文的接收方ip地址为该openflow交换机的带内通信接口ip地址时,确定该第一报文为接收方为该openflow交换机的报文,因此解析该第一报文以获取第一报文所携带的具体信息。具体的,该第一报文为snd控制器或其他openflow交换机发往该openflow交换机的报文,该报文可以为目的ip地址为openflow交换机的带内通信接口ip地址的网络之间互连协议(英文全称:internetprotocol,英文简称:ip)报文,也可以为接收方ip地址为openflow交换机的带内通信接口ip地址的地址解析协议(英文全称:addressresolutionprotocol,英文简称:arp)报文。

具体的,可以在openflow交换机上配置sdn控制器的ip地址,也可以由openflow交换机从其他装置或系统处获取sdn控制器的ip地址,需要说明的是,可以有一个或多个sdn控制器与openflow交换机进行带内通信,因此sdn控制器的ip地址也可以包括多个ip地址。

具体的,该第一报文可以为源ip地址或目的ip地址为sdn控制器ip地址的ip报文,也可以为发送方ip地址或接收方ip地址为sdn控制器ip地址arp报文。

当确定第一报文的发送方ip地址或第一报文的接收方ip地址为sdn控制器的ip地址时,说明第一报文的接收方为sdn控制器,或该第一报文可能为sdn控制器所发送的广播信息,因此为了保证snd控制器或其他openflow交换机能够正确接收到第一报文,以泛洪方式转发第一报文。

具体的,以泛洪方式转发第一报文可以为openflow交换机以广播的方式发送该第一报文。

需要举例说明的是,当openflow交换机从p0端口接收该第一报文时,可与设定openflow交换机在以泛洪方式转发第一报文时,不再从该p0端口转发第一报文。

本发明的实施例提供的一种openflow交换机,通过openflow交换机接收第一报文,并在确定第一报文为接收方为该openflow交换机的报文时,解析该第一报文以获取第一报文所携带的具体信息;在确定第一报文为接收方为sdn控制器的报文即其他openflow交换机向sdn控制器上报的报文时,以泛洪方式转发第一报文,从而保证sdn控制器能够正确接收其他openflow交换机向sdn控制器上报的报文;在确定第一报文可能为sdn控制器广播的报文时,同样以泛洪方式转发第一报文,从而保证其他openflow交换机能够正确接收sdn控制器广播的报文。因此本发明实施例提供的通信方法,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道,减少了网络维护所消耗的资源,并降低了openflow交换机的复杂程度,从而降低了在sdn控制器与openflow交换机间建立带内通信通道的成本。

具体的,发送模块412具体用于当确定第一报文的发送方ip地址为sdn控制器的ip地址时,获取openflow交换机接收第一报文的第一端口;

接收模块411还用于接收第二报文;

发送模块412还用于当确定第二报文的接收方ip地址为sdn控制器的ip地址时,通过第一端口转发第二报文。

其中,openflow交换机可以通过解析第一报文以获取第一报文的发送方ip地址,并将第一报文的发送方ip地址与配置在openflow交换机上的sdn控制器的ip地址进行对比,当相同时,确定第一报文的发送方ip地址为sdn控制器的ip地址。

具体的,第一端口为openflow交换机接收第一报文的端口,其中第一端口为openflow交换机上用于带内通信的端口。

具体的,可以通过解析第二报文以获取第二报文的接收方ip地址,并将第一报文的接收方ip地址与配置在openflow交换机上的sdn控制器的ip地址进行对比,当相同时确定第二报文的接收方ip地址为sdn控制器的ip地址。

当通过上述内容确定第二报文的接收方ip地址为sdn控制器的ip地址时,可确定第二报文为其他openflow交换机向sdn控制器上报的报文,而在本openflow交换机上用于与sdn控制器进行带内通信的端口为第一端口,因此通过第一端口转发第二报文,从而避免将其他openflow交换机向sdn控制器上报的报文转发至其他openflow交换机,造成报文泄露的后果。

示例性的,当第一openflow交换机311通过端口p1-1接收到第一报文,第一报文的接收方ip地址为第一openflow交换机311的带内通信接口ip地址128.255.1.1,因此端口p1-1为第一端口。当第一openflow交换机311通过端口p1-2接收到第二报文且第二报文的接收方ip地址为sdn控制器301的ip地址128.255.1.254时,第一openflow交换机311通过端口p1-1转发第二报文,使snd控制器301能够正确接收到第二报文,避免因第一openflow交换机311从端口p1-3转发第二报文所造成的将第二报文泄露给第三openflow交换机313。

具体的,发送模块412还用于:

当确定第二报文的发送方ip地址为sdn控制器的ip地址时,通过除第一端口外openflow交换机上用于带内通信的其他端口转发第二报文。

具体的,可以通过解析第二报文以获取第二报文的发送方ip地址,并将第一报文的发送方ip地址与配置在openflow交换机上的sdn控制器的ip地址进行对比,当相同时确定第二报文的发送方ip地址为sdn控制器的ip地址。

当通过上述内容确定第二报文的发送方ip地址为sdn控制器的ip地址时,可确定第二报文可能为sdn控制器广播的报文,而在本openflow交换机上用于与sdn控制器进行带内通信的端口为第一端口,因此通过除第一端口外openflow交换机上用于带内通信的其他端口转发第二报文,从而避免通过第一端口转发第二报文所造成的端口资源浪费。

示例性的,当第一openflow交换机311通过端口p1-1接收到第一报文,第一报文的接收方ip地址为第一openflow交换机311的带内通信接口ip地址128.255.1.1,因此端口p1-1为第一端口。当第一openflow交换机311通过端口p1-2接收到第二报文且第二报文的发送方ip地址为sdn控制器301的ip地址128.255.1.254时,第一openflow交换机311通过端口p1-2与p1-3转发第二报文,使第二openflow交换机312以及第三openflow交换机313能够正确接收到第二报文,避免因第一openflow交换机311从端口p1-1转发第二报文所造成的端口资源浪费。

具体的,发送模块412还用于:

周期性通过第一端口发送自动发现报文,自动发现报文包括openflow交换机的带内通信接口ip地址;

接收模块411还用于:

接收邻居openflow交换机发送的自动发现报文并通过第一端口转发自动发现报文,根据自动发现报文获取邻居openflow交换机的带内通信接口ip地址,接收第三报文;

发送模块412还用于:

当确定第三报文的发送方ip地址为sdn控制器的ip地址时,通过第三端口转发第三报文,第三端口为openflow交换机接收邻居openflow交换机发送的自动发现报文的通信端口。

具体的,openflow交换机可以根据事先配置的周期阈值周期性的通过第一端口发送自动发现报文,其中自动发现报文的报文类型为自动发现报文,接收该自动发现报文的openflow交换机或sdn控制器可以根据所接收到的报文的报文类型确定该报文是否为自动发现报文。

自动发现报文包括openflow交换机的带内通信接口ip地址,优选的,自动发现报文还可以包括openflow交换机的mac地址,与openflow交换机相邻的openflow交换机能够根据自动发现报文中携带的openflow交换机的带内通信接口ip地址确定发送该自动发现报文的openflow交换机。

示例性的,如附图3所示,当第一openflow交换机311通过端口p1-2接收第二openflow交换机312从端口p2-1发送的自动发现报文时,该自动发现报文的格式可以如下表所示:

其中接收方ip地址为snd控制器301的ip地址,接收方mac地址为snd控制器301的mac地址,报文类型0x0102指该报文为自动发现报文。

具体的,邻居openflow交换机可以为与openflow交换机直接连接的openflow交换机,也可以为通过其他openflow交换机与openflow交换机连接的openflow交换机。

具体的,可以根据所接收到的报文的类型确定该报文为自动发现报文,可以根据自动发现报文中的发送该自动发现报文的邻居openflow交换机的带内通信接口ip地址确定该邻居openflow交换机,优选的,还可以根据自动发现报文中的发送该自动发现报文的邻居openflow交换机的带内通信接口ip地址以及发送该自动发现报文的邻居openflow交换机的mac地址确定该邻居openflow交换机。同时确定openflow交换机接收该自动发现报文的第三端口。从而确定openflow交换机用于与邻居openflow交换机进行带内通信的第三端口。

具体的,通过第一端口转发该自动发现报文,使openflow交换机与snd控制器间的其他openflow交换机或snd控制器能够收到该自动发现报文,从而根据自动发现报文确定从相应端口能够进行带内通信的openflow交换机。

其中确定第三报文的发送方ip地址为sdn控制器的ip地址可以参照上述实施例中步骤102,在此不再赘述。

当第三报文的发送方ip地址为sdn控制器的ip地址且第三报文的接收方的ip地址为步骤208中确定的邻居openflow交换机的带内通信接口ip地址时,表示第三报文为发送方为sdn控制器且接收方为邻居openflow交换机,而openflow交换机通过第三端口可以与邻居openflow交换机进行带内通信,因此通过第三端口转发第三报文,避免openflow交换机通过其他端口转发第三报文所造成的报文泄露。

示例性的,如附图3所示,第一openflow交换机311从端口p1-2接收到由第二openflow交换机312发送的自动发现报文,第一openflow交换机311从端口p1-1转发该自动发现报文,第一openflow交换机311从自动发现报文中获取发送方ip地址为128.255.1.2即第二openflow交换机312的ip地址,并且确定接收该自动发现报文的端口p1-2。

当第一openflow交换机311收到第三报文,并且第三报文的接收方ip地址为128.255.1.2即第二openflow交换机312、第三报文的发送方ip地址为128.255.1.254即snd控制器301的ip地址时,确定该第三报文为发送方为snd控制器301、接收方为第二openflow交换机312的报文,由于之前通过自动发现报文确定的第一openflow交换机311通过端口p1-2能够与第二openflow交换机312进行带内通信,因此第一openflow交换机311通过端口p1-2转发该第三报文。

具体的,发送模块412还可以用于获取控制通信报文,并当根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址能够确定openflow交换机的第二端口时,从第二端口发送控制通信报文。

具体的,控制通信报文可以为openflow交换机自身生成的报文。控制通信报文携带有控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址。

当无法根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址确定相应端口时,从openflow交换机上用于带内通信的所有端口发送控制通信报文。

具体的,可以根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址查询控制平面转发表以获得相应的发送端口,该控制平面转发表可以为事先配置在openflow交换机上,也可以为openflow交换机从其他装置或系统处获取。

当查询成功时,从查询结果中所获得的端口即openflow交换机的第二端口发送控制通信报文,减少因从错误的端口发送控制通信报文所造成的报文泄露及端口资源浪费。

具体的,当查询失败时,即无法根据控制通信报文的接收方ip地址以及控制通信报文的接收方mac地址确定相应端口时,从openflow交换机上用于带内通信的所有端口发送控制通信报文,避免控制通信报文发送失败。

具体的,如附图5所示,openflow交换机401还包括初始化模块413,初始化模块413用于在openflow交换机上配置用于带内通信的虚拟局域网vlan,并将openflow交换机所有用于带内通信的通信端口加入到vlan中,配置vlan为openflow交换机的带内通信接口,并设置带内通信接口的ip地址,配置与openflow交换机通信的sdn控制器的ip地址。

本发明的实施例提供的一种openflow交换机,通过openflow交换机接收第一报文,在确定第一报文为接收方为sdn控制器的报文即其他openflow交换机向sdn控制器上报的报文时,以泛洪方式转发第一报文,在确定第一报文为接收方为openflow交换机且发送方为sdn控制器时,获取openflow交换机接收第一报文的第一端口,从而在收到接收方为sdn控制器的第二报文时,从第一端口转发该第二报文,使sdn控制器能够正确接收第二报文的前提下避免转发第二报文的过程中出现报文泄露;同时在确定第二报文为发送方为sdn控制器时,从第一端口外openflow交换机上用于带内通信的其他端口转发第二报文,避免端口资源的浪费。周期性通过第一端口发送自动发现报文,在接收到自动发现报文时,确定该自动发现报文的发送方邻居openflow交换机以及接收到该自动发现报文的第三端口,之后在接收到发送方为sdn控制器且接收方为邻居openflow交换机的报文时,通过该第三端口转发第三报文从而避免在转发第三报文的过程中出现报文泄露。在发送控制通信报文的过程中,根据控制通信报文的接收方确定第二端口,并从第二端口发送该控制通信报文,从而避免发送控制通信报文的过程中出现报文泄露,并且在不能根据控制通信报文的接收方确定端口时,从openflow交换机上用于带内通信的所有端口发送控制通信报文,避免控制通信报文发送失败。因此本发明实施例提供的通信方法,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道,减少了网络维护所消耗的资源,并降低了openflow交换机的复杂程度,从而降低了在sdn控制器与openflow交换机间建立带内通信通道的成本。

如附图6所示,本发明的实施例提供了一种通信系统501,包括上述实施例中提供的openflow交换机512以及sdn控制器511。

本发明的实施例提供的一种通信系统,包括openflow交换机以及sdn控制器,通过openflow交换机接收第一报文,并在确定第一报文为接收方为该openflow交换机的报文时,解析该第一报文以获取第一报文所携带的具体信息;在确定第一报文为接收方为sdn控制器的报文即其他openflow交换机向sdn控制器上报的报文时,以泛洪方式转发第一报文,从而保证sdn控制器能够正确接收其他openflow交换机向sdn控制器上报的报文;在确定第一报文可能为sdn控制器广播的报文时,同样以泛洪方式转发第一报文,从而保证其他openflow交换机能够正确接收sdn控制器广播的报文。因此本发明实施例提供的通信方法,能够在sdn控制器无需向openflow交换机下发配置策略的前提下在sdn控制器与openflow交换机间建立带内通信通道,减少了网络维护所消耗的资源,并降低了openflow交换机的复杂程度,从而降低了在sdn控制器与openflow交换机间建立带内通信通道的成本。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括随机存储器(英文全称:randomaccessmemory,英文简称:ram)、只读存储器(英文全称:readonlymemory,英文简称:rom)、电可擦可编程只读存储器(英文全称:electricallyerasableprogrammablereadonlymemory,英文简称:eeprom)、只读光盘(英文全称:compactdiscreadonlymemory,英文简称:cd-rom)或其他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户专线(英文全称:digitalsubscriberline,英文简称:dsl)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、dsl或者诸如红外线、无线和微波之类的无线技术包括在计算机可读介质的定义中。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,当以软件方式实现本发明时,可以将用于执行上述方法的指令或代码存储在计算机可读介质中或通过计算机可读介质进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括ram、rom、电可擦可编程只读存储器(全称:electricallyerasableprogrammableread-onlymemory,简称:eeprom)、光盘、磁盘或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

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