CN104202364B - 一种控制器的自动发现和配置方法和设备 - Google Patents
一种控制器的自动发现和配置方法和设备 Download PDFInfo
- Publication number
- CN104202364B CN104202364B CN201410403927.XA CN201410403927A CN104202364B CN 104202364 B CN104202364 B CN 104202364B CN 201410403927 A CN201410403927 A CN 201410403927A CN 104202364 B CN104202364 B CN 104202364B
- Authority
- CN
- China
- Prior art keywords
- controller
- interchanger
- openflow
- arp
- sessions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Abstract
本发明实施例公开了一种控制器的自动发现和配置方法和设备,通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种控制器的自动发现和配置方法和设备。
背景技术
OpenFlow是SDN(Software Defined Network,软件定义网络)架构中定义的一个控制器与转发层之间的通信接口标准。OpenFlow允许直接访问和操作网络设备的转发平面,这些网络设备可能是物理上的,也可能是虚拟的。
OpenFlow的思想是分离控制平面和数据平面,二者之间使用标准的协议通信;数据平面采用基于流的方式进行转发。
OpenFlow网络由OpenFlow Switch(OpenFlow网络设备)和OpenFlow Controller(OpenFlow控制器)通过OpenFlow Channel(OpenFlow通道)组成的,如图1所示,为现有技术中OpenFlow网络的结构示意图。
OpenFlow控制器是控制中心,根据用户的配置或者动态运行的协议生成流表发送到OpenFlow设备。控制器上可能运行实验程序,或者第三方开发的软件等等。
OpenFlow网络设备接收OpenFlow控制器设置的流表,并根据流表进行报文处理,向OpenFlow控制器上报设备的状态和事件如接口UP/DOWN。在OpenFlow网络设备和OpenFlow控制器之间通过OpenFlow通道(基于TCP或者SSL)进行通信。
由于OpenFlow可以基于流对网络进行编程,因此,基于OpenFlow的SDN架构能够提供相当精细力度的控制,实现网络在应用、用户和会话级别上变更的实时响应。而当前基于IP的路由方式是不能提供这种级别上的控制的。
如图2所示,为现有技术中OpenFlow转发流程的示意图。报文在进入设备后从最小的Flow Table开始查表,可以进行多个流表的查询,一旦在某个流表匹配到后,会更新此报文的动作集Action Set,动作集即动作的集合,初始为空,对报文的操作都放在这个集合里。完成最后一个流表的处理后,动作集内的所有动作会被执行,此时报文的内容会被修改,然后从指定出接口转发出去。
目前,Openflow网络中的交换机跟SDN Controller建立连接,需要在交换机上进行Controller地址的配置,配置完成之后,会触发交换机和Controller之间建立TCP的连接,TCP建立完成之后,才会建立Openflow实例的会话。
如图3所示,为现有技术中一个Controller的控制器集群的示意图,里面有4台设备。
如图4所示,为图3中所示的Controller的控制器集群的具体结构示意图,可以看出,4台设备分配成了2个备份组。
如图5所示,为图4中所示的Controller的控制器集群中的备份组的详细信息的示意图。
其中,Controller控制的一台设备上面的Openflow的配置
在实现本发明的过程中,发明人发现现有技术至少存在以下问题:
目前SDN Controller为了提高可靠性,采用集群的方式,当集群数目过多的时候,就目前的方式需要在所有的交换机上都进行Controller的地址的配置,当集群中加入新的Controller,还是需要在交换机上进行Controller IP地址的控制。而且设备上面的地址配置连接的2个Controller必须是同一个备份组,如果配置错误了就会导致出现问题。当Controller的备份组出现配置变化的时候,设备上面的配置要相应的进行配置改变,这样极大的增加了用户的使用难度。
发明内容
本发明实施例提供一种控制器的自动发现和配置方法和设备,解决现有的控制器信息需要在交换机上逐一配置而导致的配置过程繁琐,更新困难的问题。
为达到上述目的,本发明实施例一方面提供了一种SDN控制器的自动发现和配置方法,所述方法包括:
在交换机的直连接口配置了IP地址之后,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文;
在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,所述交换机接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;
如果所述交换机当前不存在Openflow会话,所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;
所述交换机通过所述Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;
所述交换机与所述备份组信息所对应的控制器建立连接,并结束与所述自动发现的控制器之间的Openflow会话。
另一方面,本发明实施例还提供了一种交换机,包括:
发送模块,用于在所述交换机的直连接口配置了IP地址之后,通过所述直连接口向自动发现的控制器发送免费ARP报文;
学习模块,用于在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;
判断模块,用于在所述学习模块学习到新的ARP表项后,判断所述交换机当前是否存在Openflow会话;
会话建立模块,用于在所述判断模块判断所述交换机当前不存在Openflow会话时,根据所述学习模块学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;
接收模块,用于通过所述会话建立模块所建立的Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;
连接建立模块,用于根据所述接收模块所接收到的备份组信息,与对应的控制器建立连接,并结束所述会话建立模块所建立的与所述自动发现的控制器之间的Openflow会话。
另一方面,本发明实施例还提供了一种控制器,包括:
接收模块,用于接收交换机发送的免费ARP报文;
判断模块,用于判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项,如果存在,则结束当前操作;
处理模块,用于在所述判断模块的判断结果为存在时结束当前操作,或在所述判断模块的判断结果为不存在时,将所述免费ARP报文所对应的ARP表项添加到本地映射表中;
发送模块,用于在所述处理模块添加了新的ARP表项后,向发送所述免费ARP报文的交换机发送与所述ARP表项相对应的ARP协议报文。
与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。
附图说明
图1为现有技术中OpenFlow网络的结构示意图;
图2为现有技术中OpenFlow转发流程的示意图;
图3为现有技术中一个Controller的控制器集群的示意图;
图4为图3中所示的Controller的控制器集群的具体结构示意图;
图5为图4中所示的Controller的控制器集群中的备份组的详细信息的示意图;
图6为本发明实施例所提出的一种控制器的自动发现和配置方法的流程示意图;
图7为本发明实施例所提出的一种交换机与自动发现的控制器之间进行ARP表项同步的流程示意图;
图8为本发明实施例所提出的一种交换机与自动发现的控制器之间进行Openflow会话建立的流程示意图;
图9为本发明实施例所提出的一种交换机的结构示意图;
图10为本发明实施例所提出的一种控制器的结构示意图。
具体实施方式
如背景技术所述,现有的控制其配置方案过程繁琐,更新不便,为了解决这样的问题,本发明提出了一种控制器的自动发现和配置方法,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,实现交换机对于新增控制器的自动发现功能,以及控制器的自动分配功能。
如图6所示,为本发明实施例所提出的一种控制器的自动发现和配置方法的流程示意图,该方法具体包括以下步骤:
步骤S601、在交换机的直连接口配置了IP地址之后,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文。
具体的,本方案可以实现在现有SDN组网中,在交换机配置Openflow的时候,配置Controller自动发现功能,具体的处理方式是新增加一条命令controller 1 addressautodiscovery,用来支持可以自动发现Controller并下发配置的能力。当然,这样的操作需要在本步骤中所提及的交换机的直连接口配置IP地址之前。
在Openflow的视图下:
openflow instance 100
default table-miss permit
flow-table mac-ip 1
controller 1 address autodiscovery。
需要进一步说明的是,在所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文之后,在控制器侧,需要进行以下的处理:
所述自动发现的控制器判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项。
如果存在,则结束当前操作。
如果不存在,则将所述免费ARP报文所对应的ARP表项添加到本地映射表中,并向所述交换机发送与所述ARP表项相对应的ARP协议报文,然后执行步骤S602。
步骤S602、所述交换机接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项。
所述交换机学习所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话。
如果存在,则结束当前操作,即不用触发进行TCP连接的创建,从而,可以保证在交换机中,只要有一个Openflow会话建立成功,后续学习到ARP表项的时候,就不会再去触发建立TCP连接。
如果不存在,则执行步骤S603。
其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述交换机结束其他直连端口的尝试建立TCP连接的过程。
如果所述交换机当前不存在Openflow会话,则执行步骤S603。
步骤S603、所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话。
则根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话。
步骤S604、所述交换机通过所述Openflow会话接收所述自动发现的控制器所配置的备份组信息。
具体的,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息。
具体的配置信息的确定过程如下:
所述自动发现的控制器根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器,并使用netconfig协议向所述交换机下发包含所述主控制器和备控制器的信息的备份组信息。
在具体的应用场景中,一旦交换机和Controller建立好1个连接之后,Controller根据设备的DPID利用哈希算法计算出这台设备属于哪个主备组(这个哈希算法用户可以自己定义,用来对设备控制进行负载分担),然后使用netconfig协议对设备自动下发连接。
具体的,这个主备组的配置示例如下:
controller 0 address ip 192.168.212.100
controller 1 address ip 192.168.212.101
步骤S605、所述交换机与所述备份组信息所对应的控制器建立连接,并结束与所述自动发现的控制器之间的Openflow会话。
等设备和这个备份组真正建立好连接之后,断开之前与自动发现的控制器之间的那个连接,后面就使用这个备份组来对交换机进行控制。
与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。
为了进一步阐述本发明的技术思想,现结合具体的应用场景,对本发明的技术方案进行说明。
首先,在对于自动发现的控制器进行会话匹配的过程中,本法发明实施例采用了建立Openflow会话的方式,OpenFlow会话通过用户定义的流表(Flow Table)来匹配和处理报文。所有流表项都被组织在不同的Flow Table中,在同一个Flow Table中按流表项的优先级进行先后匹配。一个OpenFlow网络设备可以包含一个或者多个Flow Table。
在Controller下发流表时,协议报文结构如表1所示:
表1流表结构
Match Fields | Priority | Counters | Instructions | Timeouts | Cookie |
其中字段含义解释如下:
Match Fields:匹配字段,用于匹配报文;
Priority:优先级,匹配流表项时优先级高的先匹配;
Counters:计数器,匹配报文时更新;
Instructions:指令,更改动作集或管道处理;
Timeouts:超时时间,流表项在该交换机中保存的最大时间或闲置时间;
Cookie:控制器使用的一个标识,可能用于控制器过滤报文统计,流变更,流删除等。
协议里定义了多种匹配规则,包括目的mac地址,源mac地址,目的ip地址,源ip地址等,具体请参见协议文档。平台都支持这些匹配规则,产品根据自身能力进行定制。报文匹配时分为精确匹配和非精确匹配。
进一步的,对Openflow相关术语的含义解释如下:
Team:控制器集群。创建时需要指定一个team地址,北向应用通过此地址和team通信。数据会在整个team的控制器上同步。
Zookeeper leader:负责同步zookeeper之间的数据。应用上所有HA需要的数据都需要存入Zookeeper,如link、host、flow、topo等。一个team选举出一个leader,其他的称为follower。
controller leader:非事件/消息触发的同步由controller leader向其他member同步,如批备,事件/消息触发的同步由事件/消息的接收者向team其他成员发送bus消息同步。controller和zookeeper之间还有一个中间的存储介质keystore。一个team选举出一个leader,其他的称为member。
Zookeeper Leader选举:投票选举,投票超过半数的选举为leader。
controller Leader选举:比较随机,第一个和Zookeeper(选举稳定后)连上的控制器会选为leader,leader down掉,会从剩下的member中选中优先级高的为新的leader.
Region:备份组,定义主备控制器,以及主备控制器管理的OFS。因为主备控制器之间数据要同步,所以它们需要在同一个team里。一个region里定义一个master控制器,大于等于1个slave控制器。
Master/slave角色请求:
交换机请求控制器角色,主控制器回应master角色,备控制器回应slave角色,若备控制器检测不到主控制器,则认为主控制器失效,回复交换机master的角色。
交换机收到报文,若匹配miss rule流表上送控制器,则只上送master角色的控制器处理,也只处理master控制器的写操作(当前只有流表下发的写操作),支持主备控制器的读取操作。
Master选举:初始配置会定义哪个控制器为master,哪些控制器是slave。只有一个master,但是可以有多个slave。master down,则从剩下的slave中选中IP地址小的为新的master。原先的Master恢复,角色可以回切。
多Region:一个team内的控制器,可以配置在不同的region内,同一个控制器只能作为一个region的master,但可以作为其他region的slave,不同的region管理不同的OFS,这样可以将OFS分担到不同的region内,实现控制器管理OFS的负载分担功能。
基于上述的步骤S601~步骤S605,以及上述关于Openflow的相关信息的说明,进一步的对本发明实施例的技术方案的细节进行详细说明如下。
对于步骤S601和步骤S602所描述的ARP表项同步过程,其实现了交换机与被自动发现的控制器之间的ARP表项的同步,为后续的Openflow会话的建立创造了条件。
具体如图7所示,为本发明实施例所提出的一种交换机与自动发现的控制器之间进行ARP表项同步的流程示意图。
在交换机的直连接口配置了IP地址之后,会发送免费ARP报文,Controller在收到的免费ARP报文后,判断本地的ARP映射表中并没有与此报文对应的ARP表项,就将免费ARP报文中携带的信息添加到本地动态ARP映射表中。并主动触发与该免费ARP报文对应的交换机进行通信一次,即向其发送与该ARP表项相对应的ARP协议报文,让交换机可以学习到该Controller的ARP表项。
对于步骤S603所描述的Openflow会话的建立过程,其实现了交换机与被自动发现的控制器之间的连接建立,为后续的备份组信息配置创造了条件。
具体如图8所示,为本发明实施例所提出的一种交换机与自动发现的控制器之间进行Openflow会话建立的流程示意图。
步骤S801、交换机接收到Controller发送的ARP协议报文之后,学习相应的ARP表项。
步骤S802、交换机遍历本台设备,判断是否已经存在与该ARP表项相对应的Openflow会话。
如果存在Openflow会话,则不用触发进行TCP连接的创建。
如果不存在,则执行步骤S803。
步骤S803、交换机根据新增ARP表项主动去尝试与该Controller建立openflow会话的TCP连接。
步骤S804、交换机判断相应的TCP连接是否建立成功。
如果成功,则执行步骤S805。
如果多个直连端口都在进行TCP的建立,如果这时候有一个TCP建立成功,则立即中断其他直连端口TCP的建立。
如果当前TCP连接的建立没有成功,则执行步骤S806。
步骤S805、交换机与Controller进行Openflow会话的协商与建立。
步骤S806、交换机进行TCP重连。
如果重连成功,则执行步骤S805;
如果重连失败,则继续重新执行步骤S806,直至交换机中完成一个TCP连接的建立。
在这样的情况下,尤其是步骤S802的处理,可以保证如果有一个Openflow会话建立成功,则交换机在后续学习到新的ARP表项的时候,不再去触发建立TCP连接。
当然,参见前述的步骤S605,在交换机与真正分配给他的备份组建立连接后,如果又发现了新的控制器,则会重新开始执行本发明实施例所提出的技术方案,即在新发现控制器的情况下,自动实现控制器与交换机匹配关系的优化分配。
需要指出的是,上述的配置备份组的规则可以根据实际场景的需要进行调整,这样的变化并不会影响本发明的保护范围。
与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。
为了实现本发明的技术方案,本发明实施例还提出了一种交换机,其结构示意图如图9所示,包括:
发送模块91,用于在所述交换机的直连接口配置了IP地址之后,通过所述直连接口向自动发现的控制器发送免费ARP报文;
学习模块92,用于在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;
判断模块93,用于在所述学习模块92学习到新的ARP表项后,判断所述交换机当前是否存在Openflow会话;
会话建立模块94,用于在所述判断模块93判断所述交换机当前不存在Openflow会话时,根据所述学习模块92学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;
接收模块95,用于通过所述会话建立模块94所建立的Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;
连接建立模块96,用于根据所述接收模块95所接收到的备份组信息,与对应的控制器建立连接,并结束所述会话建立模块94所建立的与所述自动发现的控制器之间的Openflow会话。
在具体的应用场景中,所述交换机通过增加一条命令controller 1 addressautodiscovery,来支持可以自动发现控制器并下发配置的能力。
在实际应用中,
所述判断模块93,具体用于在所述学习模块92学习到所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话;
所述会话建立模块94,用于在所述判断模块93的判断结果为存在时结束当前操作,或在所述判断模块93的判断结果为不存在时,根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话;
其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述会话建立模块94结束其他直连端口的尝试建立TCP连接的过程。
本发明实施例还提出了一种控制器,其结构示意图如图10所示,包括:
接收模块101,用于接收交换机发送的免费ARP报文;
判断模块102,用于判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项,如果存在,则结束当前操作;
处理模块103,用于在所述判断模块102的判断结果为存在时结束当前操作,或在所述判断模块102的判断结果为不存在时,将所述免费ARP报文所对应的ARP表项添加到本地映射表中;
发送模块104,用于在所述处理模块添加了新的ARP表项后,向发送所述免费ARP报文的交换机发送与所述ARP表项相对应的ARP协议报文。
在实际的应用场景中,该控制器还包括:
确定模块105,用于在所述交换机与所述控制器建立Openflow会话之后,根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器;
所述发送模块104,还用于使用netconfig协议向所述交换机下发包含所述确定模块105所确定的所述主控制器和备控制器的信息的备份组信息。
与现有技术相比,本发明实施例所提出的技术方案具有以下优点:
通过应用本发明实施例所提出的技术方案,在交换机上使能一种自动发现控制器的能力,通过向自动发现的控制器发送免费ARP报文的方式,同步自身与该控制器上的ARP表项,并根据该表项建立Openflow会话,控制器通过该Openflow会话自动向交换机下发该交换机所应归属的主控制器和备控制器的信息,从而,可以实现交换机对于新增控制器的自动发现功能,并且,可以由控制器按照负载均分等原则调整交换机所应归属的主控制器和备控制器,实现交换机所归属备份组的自动配置功能。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施场景所述的方法。
本领域技术人员可以理解附图只是一个优选实施场景的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施场景中的装置中的模块可以按照实施场景描述进行分布于实施场景的装置中,也可以进行相应变化位于不同于本实施场景的一个或多个装置中。上述实施场景的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施场景的优劣。
以上公开的仅为本发明的几个具体实施场景,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
Claims (8)
1.一种控制器的自动发现和配置方法,其特征在于,所述方法包括:
在交换机的直连接口配置了IP地址之后,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文;
在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,所述交换机接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;
如果所述交换机当前不存在Openflow会话,所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;
所述交换机通过所述Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;
所述交换机与所述备份组信息所对应的控制器建立连接,并结束与所述自动发现的控制器之间的Openflow会话;
其中,在所述交换机的直连接口配置了IP地址之前,还包括:
在所述交换机中增加一条命令controller 1 address autodiscovery,用来支持可以自动发现控制器并下发配置的能力。
2.如权利要求1所述的方法,其特征在于,所述交换机通过所述直连接口向自动发现的控制器发送免费ARP报文之后,还包括:
所述自动发现的控制器判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项;
如果存在,则结束当前操作;
如果不存在,则将所述免费ARP报文所对应的ARP表项添加到本地映射表中,并向所述交换机发送与所述ARP表项相对应的ARP协议报文。
3.如权利要求1所述的方法,其特征在于,如果所述交换机当前不存在Openflow会话,所述交换机根据学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话,具体包括:
所述交换机学习所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话;
如果存在,则结束当前操作;
如果不存在,则根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话;
其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述交换机结束其他直连端口的尝试建立TCP连接的过程。
4.如权利要求1所述的方法,其特征在于,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息,具体为:
所述自动发现的控制器根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器,并使用netconfig协议向所述交换机下发包含所述主控制器和备控制器的信息的备份组信息。
5.一种交换机,其特征在于,包括:
发送模块,用于在所述交换机的直连接口配置了IP地址之后,通过所述直连接口向自动发现的控制器发送免费ARP报文;
学习模块,用于在所述自动发现的控制器确定当前本地映射表中没有所述免费ARP报文所对应的ARP表项时,接收所述自动发现的控制器返回的ARP协议报文,并学习所述ARP协议报文所对应的ARP表项;
判断模块,用于在所述学习模块学习到新的ARP表项后,判断所述交换机当前是否存在Openflow会话;
会话建立模块,用于在所述判断模块判断所述交换机当前不存在Openflow会话时,根据所述学习模块学习到的所述ARP表项,与所述自动发现的控制器建立Openflow会话;
接收模块,用于通过所述会话建立模块所建立的Openflow会话接收所述自动发现的控制器所配置的备份组信息,所述备份组信息为所述自动发现的控制器根据所述交换机的信息所确定的所述交换机所归属的主控制器和备控制器的信息;
连接建立模块,用于根据所述接收模块所接收到的备份组信息,与对应的控制器建立连接,并结束所述会话建立模块所建立的与所述自动发现的控制器之间的Openflow会话;
其中,在所述交换机的直连接口配置了IP地址之前,还包括:
在所述交换机中增加一条命令controller 1 address autodiscovery,用来支持可以自动发现控制器并下发配置的能力。
6.如权利要求5所述的交换机,其特征在于,
所述判断模块,具体用于在所述学习模块学习到所述ARP协议报文所对应的ARP表项之后,遍历本地当前状态,判断当前是否已经存在Openflow会话;
所述会话建立模块,用于在所述判断模块的判断结果为存在时结束当前操作,或在所述判断模块的判断结果为不存在时,根据学习到的所述ARP表项尝试与所述自动发现的控制器建立TCP连接,并在所述TCP连接建立成功后触发Openflow会话;
其中,当所述交换机中的多个直连端口都在同时尝试进行TCP连接的建立时,如果其中的任何一个TCP连接建立成功,则所述会话建立模块结束其他直连端口的尝试建立TCP连接的过程。
7.一种控制器,其特征在于,包括:
接收模块,用于接收交换机发送的免费ARP报文;
判断模块,用于判断当前本地映射表中是否存在所述免费ARP报文所对应的ARP表项,如果存在,则结束当前操作;
处理模块,用于在所述判断模块的判断结果为存在时结束当前操作,或在所述判断模块的判断结果为不存在时,将所述免费ARP报文所对应的ARP表项添加到本地映射表中;
发送模块,用于在所述处理模块添加了新的ARP表项后,向发送所述免费ARP报文的交换机发送与所述ARP表项相对应的ARP协议报文,以使所述交换机在不存在Openflow会话时,根据学习到的所述ARP协议报文所对应的ARP表项,与所述控制器建立Openflow会话。
8.如权利要求7所述的控制器,其特征在于,还包括:
确定模块,用于在所述交换机与所述控制器建立Openflow会话之后,根据所述交换机的DPID,利用哈希算法确定所述交换机所归属的主控制器和备控制器;
所述发送模块,还用于使用netconfig协议向所述交换机下发包含所述确定模块所确定的所述主控制器和备控制器的信息的备份组信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410403927.XA CN104202364B (zh) | 2014-08-15 | 2014-08-15 | 一种控制器的自动发现和配置方法和设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410403927.XA CN104202364B (zh) | 2014-08-15 | 2014-08-15 | 一种控制器的自动发现和配置方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104202364A CN104202364A (zh) | 2014-12-10 |
CN104202364B true CN104202364B (zh) | 2018-08-28 |
Family
ID=52087589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410403927.XA Active CN104202364B (zh) | 2014-08-15 | 2014-08-15 | 一种控制器的自动发现和配置方法和设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104202364B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105991606A (zh) * | 2015-02-27 | 2016-10-05 | 中兴通讯股份有限公司 | 一种OpenFlow报文的处理方法及网元 |
CN106330487B (zh) * | 2015-06-19 | 2019-11-22 | 华为技术有限公司 | 自动配置方法、控制器及设备 |
CN107979630B (zh) * | 2016-10-25 | 2020-04-03 | 新华三技术有限公司 | 一种信息获取方法及装置 |
TWI639325B (zh) | 2017-09-01 | 2018-10-21 | 財團法人工業技術研究院 | 自動配置的交換機、自動配置交換機的方法、交換機自動部署的軟體定義網路系統及其方法 |
US11095504B2 (en) | 2019-04-26 | 2021-08-17 | Juniper Networks, Inc. | Initializing network device and server configurations in a data center |
US11258661B2 (en) * | 2019-04-26 | 2022-02-22 | Juniper Networks, Inc. | Initializing server configurations in a data center |
CN114484766B (zh) * | 2021-12-21 | 2023-04-07 | 珠海格力电器股份有限公司 | 主备控制器的确定方法及相关设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656993A (zh) * | 2009-09-16 | 2010-02-24 | 华为技术有限公司 | 一种接入点切换方法及装置 |
CN102938794A (zh) * | 2012-11-14 | 2013-02-20 | 华为技术有限公司 | 地址解析协议arp消息转发方法、交换机和控制器 |
CN103051539A (zh) * | 2012-12-14 | 2013-04-17 | 中兴通讯股份有限公司 | 一种基于dht的控制网络实现方法、系统和网络控制器 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9184995B2 (en) * | 2012-04-11 | 2015-11-10 | Gigamon Inc. | Traffic visibility in an open networking environment |
-
2014
- 2014-08-15 CN CN201410403927.XA patent/CN104202364B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656993A (zh) * | 2009-09-16 | 2010-02-24 | 华为技术有限公司 | 一种接入点切换方法及装置 |
CN102938794A (zh) * | 2012-11-14 | 2013-02-20 | 华为技术有限公司 | 地址解析协议arp消息转发方法、交换机和控制器 |
CN103051539A (zh) * | 2012-12-14 | 2013-04-17 | 中兴通讯股份有限公司 | 一种基于dht的控制网络实现方法、系统和网络控制器 |
Also Published As
Publication number | Publication date |
---|---|
CN104202364A (zh) | 2014-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104202364B (zh) | 一种控制器的自动发现和配置方法和设备 | |
CN103825954B (zh) | 一种OpenFlow控制方法及相应插件、平台和网络 | |
CN104468236B (zh) | Sdn控制器集群、sdn交换机及其连接控制方法 | |
CN104158642B (zh) | 一种为软件定义网络控制器提供备份的方法及系统 | |
CN110098992A (zh) | 用于在交换机之间传送对等业务的专用虚拟局域网 | |
CN104092621B (zh) | 一种负载分担方法和装置 | |
CN104104570A (zh) | Irf系统中的聚合处理方法及装置 | |
CN100583801C (zh) | 一种动态建立组播虚拟局域网域的方法、系统及交换设备 | |
CN108011754B (zh) | 转控分离系统、备份方法和装置 | |
WO2021233093A1 (zh) | 帐号接入方法和装置、存储介质及电子设备 | |
CN104639615B (zh) | 一种控制器集群中数据处理方法和装置 | |
CN105119820B (zh) | 路由协议多实例并行执行系统及其并行执行方法 | |
CN111612466A (zh) | 一种共识和资源传输方法、设备及存储介质 | |
CN105282191A (zh) | 负载均衡系统、控制器和方法 | |
CN104901825B (zh) | 一种实现零配置启动的方法和装置 | |
US11736403B2 (en) | Systems and methods for enhanced autonegotiation | |
US10455041B2 (en) | Stateful service with partial replication | |
CN110830574A (zh) | 一种基于docker容器实现内网负载均衡的方法 | |
US20200244663A1 (en) | Group zoning and access control over a network | |
CN104301449A (zh) | 一种修改ip地址的方法和装置 | |
CN103401954B (zh) | 虚拟dhcp的实现方法 | |
CN106209680A (zh) | 信息处理装置以及方法 | |
CN106231003B (zh) | 一种地址分配方法及装置 | |
CN107682410A (zh) | 一种分布式sdn控制器集群的控制方法及装置 | |
CN105204662A (zh) | 一种控制多终端显示的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant after: Xinhua three Technology Co., Ltd. Address before: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No. Applicant before: Huasan Communication Technology Co., Ltd. |
|
CB02 | Change of applicant information | ||
GR01 | Patent grant | ||
GR01 | Patent grant |