一种SDN网络带内控制通道建立方法及设备与流程

文档序号:14178937阅读:574来源:国知局
一种SDN网络带内控制通道建立方法及设备与流程

本发明的实施例涉及通信领域,尤其涉及一种sdn(softwaredefinednetworking,软件定义网络)网络带内控制通道建立方法及设备。



背景技术:

sdn网络中sdn控制器通常使用lldp(linklayerdiscoveryprotocol,链路层发现协议)协议来探测和发现交换设备之间的网络拓扑,通过交换设备通过arp(addressresolutionprotocol,地址解析协议)协议来发现交换设备连接的sdn控制器(主机)。但是部分服务器的操作系统有可能不会主动发送arp请求,因此单纯依赖sdn控制器所在的服务器自行下发arp请求来获取sdn控制器的连接关系并不可靠。

sdn网络中的in-band(带内)网络的业务流表由sdn控制器下发,用于控制报文传输的控制流表既可以由sdn控制器与openflow交换设备配合共同建立转发策略也可以由openflow交换设备自行建立转发策略。当sdn系统由sdn控制器与openflow交换设备配合共同建立转发策略时,实现的机制是openflow交换设备先自行建立转发策略使各个openflow交换设备与sdn控制器建立连接,当openflow交换设备连接到控制器后其in-band的控制流表由sdn控制器接管并重新根据sdn控制器的策略下发,这种方法在接管的过程中以及openflow交换设备动荡时极易造成控制通道连接的断开,导致openflow交换设备脱离整个sdn控制器的管控。并且in-band网络由openflow交换设备自行建立转发策略时,通常下发的控制流表为隐藏流表,对sdn控制器不可见,sdn控制器无法对in-band的控制流表进行管理,也无法通过in-band网络的控制流表计算出控制报文传输的路径。



技术实现要素:

本发明的实施例提供一种sdn网络带内控制通道建立方法及设备,能够记录openflow交换设备的传输端口,以实现in-band带内控制报文的传输路径获取。

第一方面、提供一种sdn网络带内控制通道建立方法,包括:

openflow交换设备建立并启用第一流表,所述第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理;

发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配所述第一流表的arp响应后,记录接收所述arp响应的端口为上行出端口;

建立并启用第二流表,所述第二流表用于指示将端口发现报文交由控制层处理;

接收匹配所述第二流表的其他openflow交换设备发送的端口发现报文后,记录所述其他openflow交换设备的ip地址,把接收所述发现报文的端口记录为与所述其他openflow交换设备对应的下行出端口,并将所述发现报文从所述上行出端口转发出去。

第二方面,提供一种openflow交换设备,包括:

处理单元,用于建立并启用第一流表,所述第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理;

发送单元,用于发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配所述第一流表的arp响应后,记录接收所述arp响应的端口为上行出端口;

所述处理单元,用于建立并启用第二流表,所述第二流表用于指示将端口发现报文交由控制层处理;

接收单元,用于接收匹配所述第二流表的其他openflow交换设备发送的端口发现报文;

所述处理单元,还用于记录所述其他openflow交换设备的ip地址,把接收所述发现报文的端口记录为与所述其他openflow交换设备对应的下行出端口;

所述发送单元,还用于将所述发现报文从所述上行出端口转发出去。

第三方面,提供一种sdn网络,包括上述的openflow交换设备以及sdn控制器。

在上述方案中,首先,openflow交换设备建立并启用第一流表,其中,第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理;openflow交换设备发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配第一流表的arp响应后,记录接收arp响应的端口为上行出端口;然后,openflow交换设备建立并启用第二流表,第二流表用于指示将端口发现报文交由控制层处理;openflow交换设备接收匹配第二流表的其他openflow交换设备发送的端口发现报文后,记录其他openflow交换设备的ip地址,把接收发现报文的端口记录为与其他openflow交换设备对应的下行出端口,并将发现报文从上行出端口转发出去;由于openflow交换设备通过上述方法记录了报文发送的上行出端口以及下行出端口,因此上述方案能够记录openflow交换设备的传输端口,以实现in-band带内控制报文的传输路径获取。

附图说明

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

图1为本发明实施例提供的sdn网络的结构图;

图2为本发明实施例提供的一种sdn网络带内控制通道建立方法的流程图;

图3为本发明实施例提供的一种openflow交换设备对报文的转发方式的流程图;

图4为本发明实施例提供的一种sdn交换机的结构图。

具体实施方式

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

本发明实施例描述的系统架构以及业务场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统架构的演变和新业务场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。

首先对本申请的技术术语进行描述如下:

sdn(softwaredefinednetwork):软件定义网络,是由美国斯坦福大学cleanslate研究组提出的一种新型网络创新架构,其核心技术是openflow协议通过将网络设备控制面和数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。基于openflow协议实现的sdn,交换设备的数据转发和控制层是分离的,经交换设备的每个新的数据流都必须经过sdn控制器来做出转发决定,在sdn控制器中可以对这些流按照预设的规则进行检查,然后由sdn控制器制定数据流的传输路径以及流的处理策略,从而更好的控制网络。由于这样的特点基于openflow协议的sdn网络目前正在被广泛的应用于各个数据中心中。由于数据转发和控制层分离,而控制层的实现被集中到网络中的sdn控制器中,这样就有两套网络需要管理,业务数据转发网络和控制报文传输网络。

in-band:带内管理模式,是常用的网络管理手段,即控制报文与业务数据使用统一的物理通道进行传输。in-band网络具有部署灵活的特点,但是其实现复杂性以及难度较高。

out-of-band:带外管理模式,控制报文与业务数据使用不同的物理通道进行传输。out-of-band实现起来较为简单,但是部署起来需要新建一个单独的用于控制协议传输的网络,这在很多业务场景下是无法满足要求的。

下面结合具体实施例对上述方法进行详细描述。参照图1所示,本发明的实施例应用于如下sdn网络,包括:多台openflow交换设备,至少一台sdn控制器,其中每台sdn控制器控制一台或多台openflow交换设备的数据流转发;如图1所示,提供一种sdn网络拓扑如图所示,包括一台sdn控制器和四台openflow交换设备sw1-sw4,sw1与sdn控制器以及sw2、sw4相连;sw3与sw2以及sw4相连。

基于上述的sdn网络,本发明的实施例提供一种sdn网络带内控制通道建立方法,参照图2所示(其中附图中只是简述步骤对应的过程,具体内容以实施例记载为准),包括如下步骤:

s101、openflow交换设备建立并启用第一流表,第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理。

在步骤s101之前,openflow交换设备接收本机ip地址以及sdn控制器的ip地址的配置信息。即,首先需要配置所有sw的本地ip地址以及需要连接的sdn控制器的ip地址,所有sw的本地ip地址为同一个网段。sdn控制器的ip地址和sw的本地ip地址既可以是同网段的也可是跨网段的,若sdn控制器和sw的本地ip地址是跨网段的,还需要配置本地ip地址的网关作为下一跳。配置sw的本地ip地址后,sw1(sw2、sw3、sw4)都建立并启用第一流表,以将目的ip地址为本机ip地址的报文交由上层协议处理,即转发经过本身(sw1、sw2、sw3、sw4)的报文时,若报文的目的ip地址是本地ip地址,报文会被上送的sw1(sw2、sw3、sw4)自身的协议栈来处理,不再转发到其它端口上。

s102、openflow交换设备发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配第一流表的arp响应后,记录接收arp响应的端口为上行出端口。

其中,通过执行步骤s102,openflow交换设备可以学习到sdn控制器的arp表,图1中所示sw1由于与sdn控制器直接连接,其会首先学到sdn控制器的arp表,记录sw1接收arp响应的端口为上行出端口port1。其他sw会在sw1与sdn控制器建立连接后逐步学习到sdn控制器的arp表,记录各自接收arp响应的上行出端口port1。sw1(sw2、sw3、sw4)的协议栈周期性的发送目的ip地址为sdn控制器的ip地址的arp请求,直到学到sdn控制器的arp表为止。如图1中,示出sw1的port1以及sw2的port1,其中除sw1外其他sw与sdn控制器建立连接的过程在下文中详述。

s103、openflow交换设备建立并启用第二流表,第二流表用于指示将端口发现报文交由控制层处理。

s104、openflow交换设备接收匹配第二流表的其他openflow交换设备发送的端口发现报文后,记录其他openflow交换设备的ip地址,把接收发现报文的端口记录为与其他openflow交换设备对应的下行出端口,并将发现报文从上行出端口转发出去。

具体的,在步骤s104之前,openflow交换设备定时向本机所有openflow端口同时发送端口发现报文,端口发现报文为自定义的以太报文且携带本机ip地址。端口发现报文可以是在sdn网络中自定义的一种新的以太类型的报文,其用于发现sdn控制器到openflow交换设备的下行出端口,端口发现报文中携带sw自身的ip地址,例如sw2向sw1发送的端口发现报文中携带sw2自身的ip地址,用于收到此报文的sw1识别出报文的属主。sw到sdn控制器方向的传输的报文称为上行报文,对应的从该sw转发出去报文的出端口为上行出端口,从sdn控制器到sw方向传输的报文称为下行报文,对应的从该sw转发出去报文的出端口为下行出端口,这个自定义的端口发现报文主要用于发现各个sw的下行出端口。sw启动后,默认定时向本机所有openflow端口同时发送端口发现报文。示例性的,sw1通过port2接收sw2发送的端口协议报文可以确定对应sw2的下行出端口port2,sw1通过port3接收sw4发送的端口协议报文可以确定对应sw4的下行出端口port3。

在上述方案中,首先,openflow交换设备建立并启用第一流表,其中,第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理;openflow交换设备发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配第一流表的arp响应后,记录接收arp响应的端口为上行出端口;然后,openflow交换设备建立并启用第二流表,第二流表用于指示将端口发现报文交由控制层处理;openflow交换设备接收匹配第二流表的其他openflow交换设备发送的端口发现报文后,记录其他openflow交换设备的ip地址,把接收发现报文的端口记录为与其他openflow交换设备对应的下行出端口,并将发现报文从上行出端口转发出去;由于openflow交换设备通过上述方法记录了报文发送的上行出端口以及下行出端口,因此上述方案能够记录openflow交换设备的传输端口,以实现in-band带内控制报文的传输路径获取。

其中,sdn网络带内控制通道建立之后,参照图3所示,openflow交换设备对报文的转发方式具体如下:

s201、openflow交换设备建立并启用第三流表,第三流表用于指示将目的ip地址为sdn控制器的ip地址的报文经由上行出端口转发出去。

s202、openflow交换设备接收到其他openflow交换设备发送的目的ip地址为sdn控制器的ip地址的arp请求后,根据第三流表经由上行出端口转发出去。

s203、openflow交换设备建立并启用第四流表,第四流表用于指示将目的ip地址为其他openflow交换设备的报文经由下行出端口转发出去。

s204、openflow交换设备接收到sdn控制器发送的目的ip地址为其他openflow交换设备的ip地址的arp响应后,根据第四流表经由下行出端口转发出去。

示例性的,以sw1为例,sw1通过s201-s204可以实现上行报文以及下行报文的转发,这样在sw1获取sdn控制器的arp表后,sw1通过s201建立其他openflow交换设备到sdn控制器的转发流表,sw1通过s203建立sdn控制器到其他openflow交换设备的转发流表,具体的,若经过sw1的报文目的ip地址为sdn控制器的ip地址,则此报文从port1转发出去。若经过sw1的报文目的ip地址为sw2的ip地址,则此报文从port2转发出去。这样sw1就可以能正确转发sdn控制器到sw2和sw4的报文。sw2、sw3和sw4均通过其他openflow交换设备与sdn控制器连接,其中sw2、sw3均通过sw1与sdn控制器连接,则sw1获取sdn控制器的arp表后,其他sw则可以参照步骤s101-s102学习sdn控制器的arp表,其中sw2以及sw3发送的目的ip地址为sdn控制器的ip地址的arp请求由sw1通过步骤s201、s202转发至sdn控制器,arp响应由sw1通过步骤s203、s204分别转发至sw2和sw3。

此外为使得sdn控制器在sdn网络拓扑中识别出与openflow交换设备的连接关系,该方法还包括:若openflow交换设备为与sdn控制器直接连接的openflow交换设备;openflow交换设备代替sdn控制器发送packetin报文,packetin报文中封装有免费arp请求且packetin报文的入端口为所述上行出端口,以使sdn控制器通过packetin报文识别出与openflow交换设备的连接关系。

其中,在与sdn控制器直接连接的sw1上通过命令行的方式指示其与sdn控制器直连;对于没有直接与sdn控制器连接openflow交换设备(例如sw2、3、4),与sdn控制器直接连接的openflow交换设备(例如sw1)代替sdn控制器向openflow交换设备(例如sw2、3)发送packetin报文,具体的sw1会主动代替sdn控制器不断的通过packetin的方式发送免费arp请求,以使得sdn控制器通过packetin报文识别出与openflow交换设备的连接关系。sdn网络拓扑的发现,具体对于的openflow交换设备的拓扑既可以依靠lldp协议,也可以依赖snmp(simplenetworkmanagementprotocol,简单网络管理协议)等发现,还可以在sdn控制器手动添加调整openflow交换设备的拓扑,其中sdn网络中openflow交换设备的拓扑的发现可以采用现有的任意技术,这里不再赘述。

参照图4所示本发明的实施例提供一种openflow交换设备,用于实施上述的方法实施例,包括:

处理单元41,用于建立并启用第一流表,所述第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理;

发送单元42,用于发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配所述处理单元41启用的所述第一流表的arp响应后,记录接收所述arp响应的端口为上行出端口;

所述处理单元41,用于建立并启用第二流表,所述第二流表用于指示将端口发现报文交由控制层处理;

接收单元43,用于接收匹配第二流表的其他openflow交换设备发送的端口发现报文;

所述处理单元41,还用于记录所述其他openflow交换设备的ip地址,把接收所述发现报文的端口记录为与所述其他openflow交换设备对应的下行出端口;

所述发送单元42,还用于将所述发现报文从所述上行出端口转发出去。

可选的,所述处理单元41,还用于建立并启用第三流表,所述第三流表用于指示将目的ip地址为sdn控制器的ip地址的报文经由所述上行出端口转发出去;

所述发送单元42,还用于在所述接收单元接收到其他openflow交换设备发送的目的ip地址为sdn控制器的ip地址的arp请求后,根据所述第三流表经由所述上行出端口转发出去;

所述处理单元41,还用于建立并启用第四流表,所述第四流表用于指示将目的ip地址为所述其他openflow交换设备的报文经由所述下行出端口转发出去;

所述发送单元42,还用于在所述接收单元43接收到sdn控制器发送的目的ip地址为所述其他openflow交换设备的ip地址的arp响应后,根据所述第四流表经由所述下行出端口转发出去。

可选的,若所述openflow交换设备为与所述sdn控制器直接连接的openflow交换设备;

所述发送单元42,还用于代替sdn控制器发送packetin报文,所述packetin报文中封装有免费arp请求且所述packetin报文的入端口为所述上行出端口,以使所述sdn控制器通过所述packetin报文识别出与所述openflow交换设备的连接关系。

可选的,所述接收单元43,还用于接收本机ip地址以及所述sdn控制器的ip地址的配置信息。

可选的,所述发送单元42,还用于定时向本机所有openflow端口同时发送端口发现报文,所述端口发现报文为自定义的以太报文且携带本机ip地址。

在上述方案中,在上述方案中,首先,openflow交换设备建立并启用第一流表,其中,第一流表用于指示将目的ip地址为本机ip地址的报文交由上层协议处理;openflow交换设备发送目的ip地址为sdn控制器的ip地址的arp请求,并在收到匹配第一流表的arp响应后,记录接收arp响应的端口为上行出端口;然后,openflow交换设备建立并启用第二流表,第二流表用于指示将端口发现报文交由控制层处理;openflow交换设备接收匹配第二流表的其他openflow交换设备发送的端口发现报文后,记录其他openflow交换设备的ip地址,把接收发现报文的端口记录为与其他openflow交换设备对应的下行出端口,并将发现报文从上行出端口转发出去;由于openflow交换设备通过上述方法记录了报文发送的上行出端口以及下行出端口,因此上述方案能够记录openflow交换设备的传输端口,以实现in-band带内控制报文的传输路径获取。

此外,还提供一种计算可读媒体(或介质),包括在被执行时进行上述实施例中的方法的操作的计算机可读指令。

另外,还提供一种计算机程序产品,包括上述计算机可读媒体(或介质)。

应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。

所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(英文全称:read-onlymemory,英文简称:rom)、随机存取存储器(英文全称:randomaccessmemory,英文简称:ram)、磁碟或者光盘等各种可以存储程序代码的介质。

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

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