一种控制器的自动发现和配置方法和设备的制作方法

文档序号:7811614阅读:166来源:国知局
一种控制器的自动发现和配置方法和设备的制作方法【专利摘要】本发明实施例公开了一种控制器的自动发现和配置方法和设备,通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。【专利说明】一种控制器的自动发现和配置方法和设备【
技术领域
】[0001]本发明涉及通信【
技术领域
】,特别涉及一种控制器的自动发现和配置方法和设备。【
背景技术
】[0002]OpenFlow是SDN(SoftwareDefinedNetwork,软件定义网络)架构中定义的一个控制器与转发层之间的通信接口标准。OpenFlow允许直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的。[0003]OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信;数据平面采用基于流的方式进行转发。[0004]OpenFlow网络由OpenFlowSwitch(OpenFlow网络设备)和OpenFlowController(OpenFlow控制器)通过OpenFlowChannel(OpenFlow通道)组成的,如图1所示,为现有技术中OpenFlow网络的结构示意图。[0005]OpenFlow控制器是控制中心,根据用户的配置或者动态运行的协议生成流表发送到OpenFlow设备。控制器上可能运行实验程序,或者第三方开发的软件等等。[0006]OpenFlow网络设备接收OpenFlow控制器设置的流表,并根据流表进行报文处理,向OpenFlow控制器上报设备的状态和事件如接口UP/D0WN。在OpenFlow网络设备和OpenFlow控制器之间通过OpenFlow通道(基于TCP或者SSL)进行通信。[0007]由于OpenFlow可以基于流对网络进行编程,因此,基于OpenFlow的SDN架构能够提供相当精细力度的控制,实现网络在应用、用户和会话级别上变更的实时响应。而当前基于IP的路由方式是不能提供这种级别上的控制的。[0008]如图2所不,为现有技术中OpenFlow转发流程的不意图。报文在进入设备后从最小的FlowTable开始查表,可以进行多个流表的查询,一旦在某个流表匹配到后,会更新此报文的动作集Act1nSet,动作集即动作的集合,初始为空,对报文的操作都放在这个集合里。完成最后一个流表的处理后,动作集内的所有动作会被执行,此时报文的内容会被修改,然后从指定出接口转发出去。[0009]目前,Openflow网络中的交换机跟SDNController建立连接,需要在交换机上进行Controller地址的配置,配置完成之后,会触发交换机和Controller之间建立TCP的连接,TCP建立完成之后,才会建立Openflow实例的会话。[0010]如图3所示,为现有技术中一个Cont1ller的控制器集群的示意图,里面有4台设备。[0011]如图4所示,为图3中所示的Controller的控制器集群的具体结构示意图,可以看出,4台设备分配成了2个备份组。[0012]如图5所示,为图4中所示的Controller的控制器集群中的备份组的详细信息的示意图。[0013]其中,Controller控制的一台设备上面的Openflow的配置[0014][XXX-of-1nst-1]disthis#openflowinstanceIdefaulttable-misspermitflow-tablemac-1p0classificat1nglobalcontroller0addressip192.168.212.100controllerIaddressip192.168.212.101#return[XXX-of-1nst-1]disopenflowinstanceIcontrollerInstanceIcontrollerinformat1n:Reconnectinterval:60(s)Echointerval;5(s)[0015]ControllerID:0ControllerIPaddress:192.168.212.100Controllerport:6633Controllerrole:SlaveConnecttype:TCPConnectstate:EstablishedPacketssent:5636Packetsreceived:5936SSLpolicy:--VRFname:-ControllerID:1ControllerIPaddress;192.168.212.101Controllerport:6633ControHerrole;MasterConnecttype:TCPConnectstate:EstablishedPacketssent:484Packetsreceived;777SSLpolicy:--VRFname:--[0016]在实现本发明的过程中,发明人发现现有技术至少存在以下问题:[0017]目前SDNController为了提高可靠性,采用集群的方式,当集群数目过多的时候,就目前的方式需要在所有的交换机上都进行Cont1ller的地址的配置,当集群中加入新的Controller,还是需要在交换机上进行ControllerIP地址的控制。而且设备上面的地址配置连接的2个Cont1ller必须是同一个备份组,如果配置错误了就会导致出现问题。当Controller的备份组出现配置变化的时候,设备上面的配置要相应的进行配置改变,这样极大的增加了用户的使用难度。【
发明内容】[0018]本发明实施例提供一种控制器的自动发现和配置方法和设备,解决现有的控制器信息需要在交换机上逐一配置而导致的配置过程繁琐,更新困难的问题。[0019]为达到上述目的,本发明实施例一方面提供了一种SDN控制器的自动发现和配置方法,所述方法包括:[0020]在交换机的直连接口配置了IP地址之后,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文;[0021]在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,所述交换机接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;[0022]如果所述交换机当前不存在Openflow会话,所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;[0023]所述交换机通过所述Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;[0024]所述交换机与所述备份组信息所对应的控制器建立连接,并结束与所述自动发现的控制器之间的Openflow会话。[0025]另一方面,本发明实施例还提供了一种交换机,包括:[0026]发送模块,用于在所述交换机的直连接口配置了IP地址之后,通过所述直连接口向自动发现的控制器发送免费ARP报文;[0027]学习模块,用于在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;[0028]判断模块,用于在所述学习模块学习到新的ARP表项后,判断所述交换机当前是否存在Openflow会话;[0029]会话建立模块,用于在所述判断模块判断所述交换机当前不存在Openflow会话时,根据所述学习模块学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;[0030]接收模块,用于通过所述会话建立模块所建立的Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;[0031]连接建立模块,用于根据所述接收模块所接收到的备份组信息,与对应的控制器建立连接,并结束所述会话建立模块所建立的与所述自动发现的控制器之间的Openflow会话。[0032]另一方面,本发明实施例还提供了一种控制器,包括:[0033]接收模块,用于接收交换机发送的免费ARP报文;[0034]判断模块,用于判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项,如果存在,则结束当前操作;[0035]处理模块,用于在所述判断模块的判断结果为存在时结束当前操作,或在所述判断模块的判断结果为不存在时,将所述免费ARP报文所对应的ARP表项添加到本地映射表中;[0036]发送模块,用于在所述处理模块添加了新的ARP表项后,向发送所述免费ARP报文的交换机发送与所述ARP表项相对应的ARP协议报文。[0037]与现有技术相比,本发明实施例所提出的技术方案具有以下优点:[0038]通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。【专利附图】【附图说明】[0039]图1为现有技术中OpenFlow网络的结构示意图;[0040]图2为现有技术中OpenFlow转发流程的示意图;[0041]图3为现有技术中一个Controller的控制器集群的示意图;[0042]图4为图3中所示的Controller的控制器集群的具体结构示意图;[0043]图5为图4中所示的Controller的控制器集群中的备份组的详细信息的示意图;[0044]图6为本发明实施例所提出的一种控制器的自动发现和配置方法的流程示意图;[0045]图7为本发明实施例所提出的一种交换机与自动发现的控制器之间进行ARP表项同步的流程示意图;[0046]图8为本发明实施例所提出的一种交换机与自动发现的控制器之间进行Openflow会话建立的流程示意图;[0047]图9为本发明实施例所提出的一种交换机的结构示意图;[0048]图10为本发明实施例所提出的一种控制器的结构示意图。【具体实施方式】[0049]如【
背景技术
】所述,现有的控制其配置方案过程繁琐,更新不便,为了解决这样的问题,本发明提出了一种控制器的自动发现和配置方法,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,实现交换机对于新增控制器的自动发现功能,以及控制器的自动分配功能。[0050]如图6所示,为本发明实施例所提出的一种控制器的自动发现和配置方法的流程示意图,该方法具体包括以下步骤:[0051]步骤S601、在交换机的直连接口配置了IP地址之后,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文。[0052]具体的,本方案可以实现在现有SDN组网中,在交换机配置Openflow的时候,配置Controller自动发现功能,具体的处理方式是新增加一条命令controllerIaddressautodiscovery,用来支持可以自动发现Controller并下发配置的能力。当然,这样的操作需要在本步骤中所提及的交换机的直连接口配置IP地址之前。[0053]在Openflow的视图下:[0054]openflowinstance100[0055]defaulttable-misspermit[0056]flow-tablemac-1pI[0057]controllerIaddressautodiscovery。[0058]需要进一步说明的是,在所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文之后,在控制器侧,需要进行以下的处理:[0059]所述自动发现的控制器判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项。[0060]如果存在,则结束当前操作。[0061]如果不存在,则将所述免费ARP报文所对应的ARP表项添加到本地映射表中,并向所述交换机发送与所述ARP表项相对应的ARP协议报文,然后执行步骤S602。[0062]步骤S602、所述交换机接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项。[0063]所述交换机学习所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话。[0064]如果存在,则结束当前操作,即不用触发进行TCP连接的创建,从而,可以保证在交换机中,只要有一个Openflow会话建立成功,后续学习到ARP表项的时候,就不会再去触发建立TCP连接。[0065]如果不存在,则执行步骤S603。[0066]其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述交换机结束其他直连端口的尝试建立TCP连接的过程。[0067]如果所述交换机当前不存在Openflow会话,则执行步骤S603。[0068]步骤S603、所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话。[0069]则根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话。[0070]步骤S604、所述交换机通过所述Openflow会话接收所述自动发现的控制器所配置的备份组信息。[0071]具体的,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息。[0072]具体的配置信息的确定过程如下:[0073]所述自动发现的控制器根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器,并使用netconfig协议向所述交换机下发包含所述主控制器和备控制器的信息的备份组信息。[0074]在具体的应用场景中,一旦交换机和ControlIer建立好I个连接之后,Controller根据设备的DPID利用哈希算法计算出这台设备属于哪个主备组(这个哈希算法用户可以自己定义,用来对设备控制进行负载分担),然后使用netconfig协议对设备自动下发连接。[0075]具体的,这个主备组的配置示例如下:[0076]controllerOaddressip192.168.212.100[0077]controllerIaddressip192.168.212.101[0078]步骤S605、所述交换机与所述备份组信息所对应的控制器建立连接,并结束与所述自动发现的控制器之间的Openflow会话。[0079]等设备和这个备份组真正建立好连接之后,断开之前与自动发现的控制器之间的那个连接,后面就使用这个备份组来对交换机进行控制。[0080]与现有技术相比,本发明实施例所提出的技术方案具有以下优点:[0081]通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。[0082]为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。[0083]首先,在对于自动发现的控制器进行会话匹配的过程中,本法发明实施例采用了建立Openflow会话的方式,OpenFlow会话通过用户定义的流表(FlowTable)来匹配和处理报文。所有流表项都被组织在不同的FlowTable中,在同一个FlowTable中按流表项的优先级进行先后匹配。一个OpenFlow网络设备可以包含一个或者多个FlowTable。[0084]在Controller下发流表时,协议报文结构如表1所示:[0085]表1流表结构[0086]【权利要求】1.一种控制器的自动发现和配置方法,其特征在于,所述方法包括:在交换机的直连接口配置了IP地址之后,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文;在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,所述交换机接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;如果所述交换机当前不存在Openflow会话,所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;所述交换机通过所述Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;所述交换机与所述备份组信息所对应的控制器建立连接,并结束与所述自动发现的控制器之间的Openflow会话。2.如权利要求1所述的方法,其特征在于,在交换机的直连接口配置了IP地址之前,还包括:在所述交换机中增加一条命令controllerIaddressautodiscovery,用来支持可以自动发现控制器并下发配置的能力。3.如权利要求1所述的方法,其特征在于,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文之后,还包括:所述自动发现的控制器判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项;如果存在,则结束当前操作;如果不存在,则将所述免费ARP报文所对应的ARP表项添加到本地映射表中,并向所述交换机发送与所述ARP表项相对应的ARP协议报文。4.如权利要求1所述的方法,其特征在于,如果所述交换机当前不存在Openflow会话,所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话,具体包括:所述交换机学习所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话;如果存在,则结束当前操作;如果不存在,则根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话;其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述交换机结束其他直连端口的尝试建立TCP连接的过程。5.如权利要求1所述的方法,其特征在于,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息,具体为:所述自动发现的控制器根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器,并使用netconfig协议向所述交换机下发包含所述主控制器和备控制器的信息的备份组信息。6.一种交换机,其特征在于,包括:发送模块,用于在所述交换机的直连接口配置了IP地址之后,通过所述直连接口向自动发现的控制器发送免费ARP报文;学习模块,用于在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;判断模块,用于在所述学习模块学习到新的ARP表项后,判断所述交换机当前是否存在Openflow会话;会话建立模块,用于在所述判断模块判断所述交换机当前不存在Openflow会话时,根据所述学习模块学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;接收模块,用于通过所述会话建立模块所建立的Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;连接建立模块,用于根据所述接收模块所接收到的备份组信息,与对应的控制器建立连接,并结束所述会话建立模块所建立的与所述自动发现的控制器之间的Openflow会话。7.如权利要求6所述的交换机,其特征在于,所述交换机通过增加一条命令controllerIaddressautodiscovery,来支持可以自动发现控制器并下发配置的能力。8.如权利要求6所述的交换机,其特征在于,所述判断模块,具体用于在所述学习模块学习到所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话;所述会话建立模块,用于在所述判断模块的判断结果为存在时结束当前操作,或在所述判断模块的判断结果为不存在时,根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话;其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述会话建立模块结束其他直连端口的尝试建立TCP连接的过程。9.一种控制器,其特征在于,包括:接收模块,用于接收交换机发送的免费ARP报文;判断模块,用于判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项,如果存在,则结束当前操作;处理模块,用于在所述判断模块的判断结果为存在时结束当前操作,或在所述判断模块的判断结果为不存在时,将所述免费ARP报文所对应的ARP表项添加到本地映射表中;发送模块,用于在所述处理模块添加了新的ARP表项后,向发送所述免费ARP报文的交换机发送与所述ARP表项相对应的ARP协议报文。10.如权利要求9所述的控制器,其特征在于,还包括:确定模块,用于在所述交换机与所述控制器建立Openflow会话之后,根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器;所述发送模块,还用于使用netconfig协议向所述交换机下发包含所述确定模块所确定的所述主控制器和备控制器的信息的备份组信息。【文档编号】H04L29/08GK104202364SQ201410403927【公开日】2014年12月10日申请日期:2014年8月15日优先权日:2014年8月15日【发明者】黄李伟,王海申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1