CN104980296B - OpenFlow多控制器系统及其管理方法 - Google Patents
OpenFlow多控制器系统及其管理方法 Download PDFInfo
- Publication number
- CN104980296B CN104980296B CN201410145379.5A CN201410145379A CN104980296B CN 104980296 B CN104980296 B CN 104980296B CN 201410145379 A CN201410145379 A CN 201410145379A CN 104980296 B CN104980296 B CN 104980296B
- Authority
- CN
- China
- Prior art keywords
- backup
- control strategy
- control
- controller
- node
- 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
- 238000007726 management method Methods 0.000 title claims abstract description 21
- 238000011217 control strategy Methods 0.000 claims abstract description 267
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 28
- 238000012795 verification Methods 0.000 claims description 37
- 230000011218 segmentation Effects 0.000 claims description 19
- 238000012937 correction Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 abstract description 2
- 238000010200 validation analysis Methods 0.000 description 12
- 238000012986 modification Methods 0.000 description 8
- 230000004048 modification Effects 0.000 description 8
- 230000007246 mechanism Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 5
- 230000007123 defense Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000005192 partition Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000013256 coordination polymer Substances 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000015654 memory Effects 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及通信技术领域,公开了一种OpenFlow多控制器系统及其管理方法。其中,该方法包括:部署多个控制器节点,使每个控制器节点控制控制网中的一个预定的控制区域;对所述每个控制器节点的控制策略进行冗余备份;对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正。实施本发明实施例,可以提高OpenFlow多控制器系统的可靠性。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种OpenFlow多控制器系统及其管理方法。
背景技术
SDN(Software Defined Networking,软件定义网络)是由美国斯坦福大学cleanslate研究组提出的一种新型网络创新架构,其核心技术OpenFlow(开放流)通过将网络设备控制面与数据面分离开来,从而实现了网络流量的灵活控制,为核心网络及应用的创新提供了良好的平台。由于控制器上部署着网络中不同业务应用的控制策略,用于决策数据平面上流量的正确转发,以及监控整个网络设备的状态等作用,因此控制器是整个SDN/OpenFlow网络的核心设备。
然而现有的SDN/OpenFlow中往往采用单控制器对网络进行管理,一旦控制器遭到外来恶意攻击,导致控制策略被篡改,将会影响网络业务的正确运行。同样,如果来自于数据面的网络转发设备(OpenFlow交换机)产生PacketIn(OpenFlow协议中定义的一种交换机发送给控制器的标准消息)flooding(泛滥)攻击,将会消耗控制器计算资源,可能造成控制网瘫痪。
在公开号为CN201210363173.0的中国专利申请中,提出了一种实现Openflow交换机系统中控制器冗余备份的方法及系统,通过部署多个不同角色(主设备,从设备以及对等设备)的控制器,并实时监测主设备的可达性,在主设备出现不可达的情况下立即采用其余冗余设备接管,从而实现了系统中时刻存在可正常工作的主设备,进而提高了系统稳定性。
上述方案中存在的主要问题是:1)增加了控制器的备份,但却只有一个主设备具有网络控制的最高权限,造成其余设备资源浪费;2)主要解决的是单控制器可能存在的单点故障,没有实现多控制器协同工作;3)无法保障控制器中各个控制策略的可靠性。
发明内容
本发明实施例所要解决的技术问题是提供一种OpenFlow多控制器系统及其管理方法,用于提高OpenFlow多控制器系统的工作效率和可靠性。
本发明第一方面提供一种OpenFlow多控制器系统的管理方法,包括:
部署多个控制器节点,使每个控制器节点控制控制网中的一个预定的控制区域;
对所述每个控制器节点的控制策略进行冗余备份;
对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正。
在第一种可能的实施方式中,所述对所述每个控制器节点的控制策略进行冗余备份包括:
将应用第一控制策略的控制器节点作为第一控制策略的主备份控制器节点,所述主备份控制器节点保存所述第一控制策略的主备份副本;
计算所述第一控制策略所属用户ID的哈希值;
根据所述用户ID的哈希值获取所述用户ID在所述控制网中的位置,将与所述位置所对应的控制器节点作为第一控制策略的次备份控制器节点,所述次备份控制器节点保存所述第一控制策略的次备份副本;
将所述次备份控制器节点的一个或多个邻居节点作为冗余备份控制器节点,所述冗余备份控制器节点保存所述第一控制策略的冗余备份副本。
结合第一方面的第一种可能的实施方式,在第二种可能的实施方式中,所述对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正包括:
第一控制策略的主备份控制器节点将所述第一控制策略的主备份副本摘要发送至第一控制策略的次备份控制器节点;所述第一控制策略为任意一个控制策略;
所述第一控制策略的次备份控制器节点将所述主备份副本摘要与其保存的第一控制策略的次备份副本摘要进行比较,判断所述主备份副本摘要和所述次备份副本摘要是否一致:如果一致,向所述第一控制策略的冗余备份控制器节点发送主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要;如果不一致,向所述第一控制策略的冗余备份控制器节点发送主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要;
所述第一控制策略的冗余备份控制器节点接收所述主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要,将所述主备份副本摘要或次备份副本摘要与其保存的第一控制策略的冗余备份副本摘要进行比较,判断所述主备份副本摘要或次备份副本摘要与所述冗余备份副本摘要是否一致,如果不一致,向所述第一控制策略主备份控制器节点或次备份控制器节点发送备份修正请求以修正冗余备份副本;或者,
所述第一控制策略的冗余备份控制器节点接收所述主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要,将所述主备份副本摘要和次备份副本摘要分别与其保存的第一控制策略的冗余备份副本摘要进行比较,分别判断所述主备份副本摘要和次备份副本摘要与所述冗余备份副本摘要是否一致,如果所述主备份副本摘要与所述冗余备份副本摘要一致,则对所述次备份控制器节点保存的第一控制策略的次备份副本进行修正,如果所述次备份副本摘要与所述冗余备份副本摘要一致,则对所述主备份控制器节点保存的第一控制策略的主备份副本进行修正。
在第三种可能的实施方式中,所述对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正包括:
保存第一控制策略的第一控制器节点接收保存所述第一控制策略的其它控制器节点发送的第一控制策略的备份副本;第一控制器节点为保存第一控制策略的任意一个控制器节点;
所述第一控制器节点对所述第一控制策略的各个备份副本进行相互比较,如果出现备份副本不一致的情况,以多数一致的备份副本为正确的备份副本,并使用所述正确的备份副本修正使用其它备份副本。
在第四种可能的实施方式中,在所述对所述多个控制器节点的控制策略进行冗余备份之前,所述方法还包括:
获取策略冗余度;
所述对所述每个控制器节点的控制策略进行冗余备份包括:
根据所述策略冗余度对所述每个控制器节点的控制策略进行冗余备份,使每个控制器节点的控制策略的备份副本数量不小于所述策略冗余度。
结合第一方面的第四种可能的实施方式,在第五种可能的实施方式中,所述获取策略冗余度包括:
获取可容忍的控制策略最大错误率a和单个控制策略备份副本可能出错的概率Pe;
根据所述可容忍的控制策略最大错误率a和所述单个控制策略备份副本可能出错的概率Pe,计算使得控制策略错误率不大于所述可容忍的控制策略最大错误率a的策略备份副本数量的最小值,作为策略冗余度的值。
结合第一方面或第一方面的任意一种可能的实施方式,在第六种可能的实施方式中,所述方法还包括:
新增的控制器节点向其它控制器节点广播加入请求消息;
所述新增的控制器节点接收来自各个其它控制器节点的回复消息,所述回复消息携带各个其它控制节点的控制区域的信息;
所述新增的控制器节点根据所述回复消息查找控制区域的面积最大的控制区域,分别模拟按照至少二种预定的分割方式对所述面积最大的控制区域进行分割;
计算在各种分割方式下所述新增的控制器节点与其邻居节点之间的第一通信时延以及所述面积最大的控制区域的原控制器节点与其邻居节点之间的第二通信时延,选择所述第一通信时延与所述第二通信时延之和最小的分割方式作为最优分割方式;
所述新增的控制器节点按照所述最优分割方式将所述面积最大的控制区域分割成二个新的控制区域,并部署在所述二个新的控制区域中的其中一个控制区域。
结合第一方面的第六种可能的实施方式,在第七种可能的实施方式中,所述方法还包括:所述新增的控制器节点从所述面积最大的控制区域的原控制器节点获取需要的控制策略的备份副本。
结合第一方面或第一方面的任意一种可能的实施方式,在第八种可能的实施方式中,所述方法还包括:
欲下线节点选择一个邻居节点作为接管节点;
所述欲下线节点通知所述接管节点接管所述欲下线节点的控制区域;
所述接管节点接管所述欲下线节点的控制区域,并向其邻居节点发送控制区域更新消息。
结合第一方面的第八种可能的实施方式,在第九种可能的实施方式中,所述方法还包括:所述接管节点从所述欲下线节点获取所述欲下线节点保存的控制策略的备份副本。
结合第一方面或第一方面的任意一种可能的实施方式,在第十种可能的实施方式中,所述方法还包括:
各控制器节点探测自己的邻居节点中是否存在失效节点;
如果存在失效节点,以所述失效节点的其中一个邻居节点作为接管节点;
所述接管节点接管所述失效节点的控制区域,并向其邻居节点发送控制区域更新消息。
结合第一方面的第十种可能的实施方式,在第十一种可能的实施方式中,所述方法还包括:所述接管节点从所述失效节点保存的控制策略的其它备份控制器节点获取上述失效节点保存的控制策略的备份副本。
本发明第二方面提供一种OpenFlow多控制器系统,包括多个控制器节点,其中,
所述多个控制器节点中的每个控制器节点用于控制控制网中的一个预定的控制区域;
所述多个控制器节点用于按照预定的策略冗余度对所述每个控制器节点的控制策略进行冗余备份;
所述多个控制器节点用于对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正。
在第一种可能的实施方式中,所述多个控制器节点包括至少k个保存有第一控制策略的备份副本的控制器节点;k为预定的策略冗余度,所述第一控制策略为任意一个控制策略;其中,
应用第一控制策略的控制器节点作为第一控制策略的主备份控制器节点,所述主备份控制器节点保存所述第一控制策略的主备份副本;
所述主备份控制器节点第一控制策略所属用户ID的哈希值对应的在控制网中的位置所在的控制器节点作为次备份控制器节点,所述次备份控制器节点保存所述第一控制策略的次备份副本;
所述次备份控制器节点的一个或多个邻居节点作为冗余备份控制器节点,所述冗余备份控制器节点保存所述第一控制策略的冗余备份副本。
结合第二方面的第一种可能的实施方式,在第三种可能的实施方式中,第一控制策略的主备份控制器节点用于将所述第一控制策略的主备份副本摘要发送至第一控制策略的次备份控制器节点;
所述第一控制策略的次备份控制器节点用于将所述主备份副本摘要与其保存的第一控制策略的次备份副本摘要进行比较,判断所述主备份副本摘要和所述次备份副本摘要是否一致:如果一致,向第一控制策略的冗余备份控制器节点发送主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要;如果不一致,向第一控制策略的冗余备份控制器节点发送主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要;
所述第一控制策略的冗余备份控制器节点用于接收所述主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要,将所述主备份副本摘要或次备份副本摘要与其保存的第一控制策略的冗余备份副本摘要进行比较,判断所述主备份副本摘要或次备份副本摘要与所述冗余备份副本摘要是否一致,如果不一致,向所述第一控制策略主备份控制器节点或次备份控制器节点发送备份修正请求修正冗余备份副本;或者,
所述第一控制策略的冗余备份控制器节点用于接收所述主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要,将所述主备份副本摘要和次备份副本摘要分别与其保存的第一控制策略的冗余备份副本摘要进行比较,分别判断所述主备份副本摘要和次备份副本摘要与所述冗余备份副本摘要是否一致,如果所述主备份副本摘要与所述冗余备份副本摘要一致,则对所述次备份控制器节点保存的第一控制策略的次备份副本进行修正,如果所述次备份副本摘要与所述冗余备份副本摘要一致,则对所述主备份控制器节点保存的第一控制策略的主备份副本进行修正。
在第三种可能的实施方式中,保存第一控制策略的第一控制器节点用于接收保存所述第一控制策略的其它控制器节点发送的第一控制策略的备份副本;所述第一控制策略为任意一个控制策略,所述第一控制器节点为保存所述第一控制策略的任意一个控制器节点;
所述第一控制器节点还用于对所述第一控制策略的各个备份副本进行相互比较,如果出现备份副本不一致的情况,以多数一致的副本为正确的备份副本,并使用所述正确的备份副本修正使用其它备份副本。
结合第二方面或第二方面的任意一种可能的实施方式,在第四种可能的实施方式中,所述系统还包括新增的控制器节点;
所述新增的控制器节点用于向其它控制器节点广播加入请求消息;
所述新增的控制器节点还用于接收来自其它控制器节点的各个其它控制节点的控制区域的回复消息;
所述新增的控制器节点还用于根据所述回复消息查找控制区域的面积最大的控制区域,分别模拟按照至少二种预定的分割方式对所述面积最大的控制区域进行分割,计算在各种分割方式下所述新增的控制器节点与其邻居节点之间的第一通信时延以及所述面积最大的控制区域的原控制器节点与其邻居节点之间的第二通信时延,选择所述第一通信时延和所述第二通信时延之和最小的分割方式作为最优分割方式;
所述新增的控制器节点还用于按照所述最优分割方式将所述面积最大的控制区域分割成二个新的控制区域,并部署在所述二个新的控制区域中的其中一个控制区域。
结合第二方面的第四种可能的实施方式,在第五种可能的实施方式中,新增的控制器节点还用于从所述面积最大的控制区域的原控制器节点获取需要的控制策略的备份副本。
结合第二方面或第二方面的任意一种可能的实施方式,在第六种可能的实施方式中,如果所述多个控制器节点包括欲下线节点;
所述欲下线节点用于选择一个邻居节点作为接管节点;
所述欲下线节点用于通知所述接管节点接管所述欲下线节点的控制区域;
所述接管节点用于接管所述欲下线节点的控制区域,并向其邻居节点发送控制区域更新消息。
结合第二方面的第六种可能的实施方式,在第七种可能的实施方式中,所述接管节点还用于从所述欲下线节点获取所述欲下线节点保存的控制策略的备份副本。
结合第二方面或第二方面的任意一种可能的实施方式,在第八种可能的实施方式中,所述控制器节点还用于探测其邻居节点是否存在失效节点;
如果所述多个控制器节点包括失效节点,则所述失效节点的其中一个邻居节点作为接管节点;
所述接管节点用于接管所述失效节点的控制区域,并向其邻居节点发送控制区域更新消息。
结合第二方面的第八种可能的实施方式,在第九种可能的实施方式中,所述接管节点还用于从所述失效节点保存的控制策略的其它备份控制器节点获取上述失效节点保存的控制策略的备份副本。
本发明实施例中提供的OpenFlow多控制器系统及其管理方法,采用了分布式多控制器来扩展控制面的计算处理能力,可以防止单点失效,提高系统对外来网络攻击的防御能力;另外,通过冗余备份、控制策略异常验证与修正的容侵方法,使得控制器中部署的控制策略能够及时发现异常并进行自动修正,提高了SDN网络控制面的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例中逻辑控制网的示意图;
图2是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第一示意图;
图3是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第二示意图;
图4是本发明实施例中一种示例性的控制器节点的控制区域的分布示意图;
图5是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第三示意图;
图6是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第四示意图;
图7是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第五示意图;
图8是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第六示意图;
图9是本发明实施例提供控制区域的两种分割方式的示意图;
图10是本发明实施例提供的OpenFlow多控制器系统的管理方法的流程第七示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例中提供了一种OpenFlow多控制器系统及其管理方法,用于提高提高系统对外来网络攻击的防御能力和控制网的可靠性。以下分别进行详细说明。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
请参考图1,图1是本发明实施例中的SDN/OpenFlow网络中逻辑控制网的示意图,逻辑控制网被归一化到一个二维标识符空间,如图1所示,逻辑控制网被归一化为一个坐标为(0,0)至(1,1)的正方形。该逻辑控制网可以根据控制器的个数被划分为若干个区域,每一个区域由一台控制器节点管理,每台控制器节点均可存储其邻居节点的相关信息(例如IP地址、端口号、控制区域范围等信息)。例如在图1中,控制网包括3台控制器,分别为N1、N2、N3,其中N1控制的区域为((0,0.5),(0.5,1)),N2的区域为((0.5,0.5),(1,1)),N3的区域为((0,0),(1,0.5))。当然上述为示例性的描述控制网的区域划分方式,控制网包括的控制器的台数以及控制区域的划分方式均不受上述描述的限制。
优选地,在搭建OpenFlow网络前,可以部署一个OpenFlow配置点,该配置点可以采用OF-CONFIG(OpenFlow Configuration and Management Protocol,开放流配置和管理协议)协议对OpenFlow交换机进行配置(包括配置OpenFlow交换机的控制器IP地址,远程修改OpenFlow交换机的端口状态等),同时该配置点也可用于与控制器节点进行交互,进而能实现自动配置。需要说明的是,OpenFlow配置点采用OF-CONFIG协议对OpenFlow交换机进行配置的具体内容属于现有技术,在此不再赘述。
本发明实施例提供一种OpenFlow多控制器系统,该系统可包括多个控制器节点,其中,每一个控制器节点控制控制网中的一个预定的控制区域;该系统可设置有冗余备份机制,上述多个控制器节点将按照预定的策略冗余度对每个控制策略进行冗余备份,以使任一个控制策略的备份副本数量不低于上述预定的策略冗余度;该系统还可设置策略容侵机制,具体的,可以周期性(或非周期性)的对控制策略的多个备份副本的一致性进行验证,如果发现控制策略的各个备份副本不一致,则以多数一致的备份副本为正确的备份副本,并使用该正确的备份副本对其它备份副本进行修正。
上述OpenFlow多控制器系统包括多个控制器节点,每个控制器节点控制一个控制区域,形成分布式控制器系统,能够扩展控制面的计算处理能力,同时可以防止单点失效,提高系统对外来网络攻击(例如DDoS攻击(分布式拒绝服务,Distributed Denial ofService,))的防御能力;对各个控制器节点的控制策略进行了冗余备份,并且对控制策略的各个备份副本进行了异常检测和修正的容侵设计,可以提高控制网的可靠性。
举例来说,上述系统中的冗余备份机制的具体内容可包括:
对于第一控制策略,上述多个控制器节点中包括至少k个保存有上述第一控制策略的备份副本的控制器节点,其中,k为预定的策略冗余度,第一控制策略可以是任意一个控制策略;
在上述至少k个保存有上述第一控制策略的备份副本的控制器节点中:
应用第一控制策略的控制器节点作为第一控制策略的主备份控制器节点,上述主备份控制器节点保存上述第一控制策略的主备份副本;
上述第一控制策略所属用户ID的哈希值对应的控制网中的位置所在的控制器节点作为次备份控制器节点,上述次备份控制器节点保存上述第一控制策略的次备份副本;每个控制器节点的控制区域可以包括一个或多个交换机,第一控制策略的主备份控制器节点可以应用第一控制策略来控制第一交换机,第一控制策略所属用户ID可为使用第一交换机的用户的用户ID;
上述次备份控制器节点的一个或多个邻居节点作为冗余备份控制器节点,上述冗余备份控制器节点保存上述第一控制策略的冗余备份副本。
在完成第一控制策略的冗余备份之后,第一控制策略的各个备份控制器节点组成第一控制策略的策略验证组,该策略验证组内的各个备份控制器节点可保存有组内其它控制器节点的属性信息(ID,IP地址等),可以验证第一控制策略的一致性,以下进行详细说明。
举例来说,在其中一种实施方式中,上述多控制器系统中的策略容侵机制的具体内容可包括:
第一控制策略的主备份控制器节点将上述第一控制策略的主备份副本摘要发送至第一控制策略的次备份控制器节点;上述第一控制策略为任意一个控制策略;
上述第一控制策略的次备份控制器节点将上述主备份副本摘要与其保存的第一控制策略的次备份副本摘要进行比较,判断上述主备份副本摘要和上述次备份副本摘要是否一致:如果一致,向第一控制策略的冗余备份所在控制器节点发送主次一致的验证消息以及上述主备份副本摘要或次备份副本摘要;如果不一致,向第一控制策略的冗余备份控制器节点发送主次不一致的验证消息以及上述主备份副本摘要和次备份副本摘要;
上述第一控制策略的冗余备份控制器节点接收上述主次一致的验证消息以及上述主备份副本摘要或次备份副本摘要,将上述主备份副本摘要或次备份副本摘要与其保存的第一控制策略的冗余备份副本摘要进行比较,判断上述主备份副本摘要或次备份副本摘要与上述冗余备份副本摘要是否一致,如果不一致,向上述第一控制策略主备份控制器节点或次备份控制器节点发送备份修正请求以修正冗余备份副本;或者,
上述第一控制策略的冗余备份控制器节点接收上述主次不一致的验证消息以及上述主备份副本摘要和次备份副本摘要,将上述主备份副本摘要和次备份副本摘要分别与其保存的第一控制策略的冗余备份副本摘要进行比较,分别判断上述主备份副本摘要和次备份副本摘要与上述冗余备份副本摘要是否一致,如果上述主备份副本摘要与上述冗余备份副本摘要一致,则对上述次备份控制器节点保存的第一控制策略的次备份副本进行修正,如果上述次备份副本摘要与上述冗余备份副本摘要一致,则对上述主备份控制器节点保存的第一控制策略的主备份副本进行修正。
举例来说,在另外一种实施方式中,上述多控制器系统中的策略容侵机制的具体内容可包括:
保存第一控制策略的第一控制器节点用于接收保存上述第一控制策略的其它控制器节点发送的第一控制策略的备份副本;上述第一控制策略为任意一个控制策略,上述第一控制器节点为保存上述第一控制策略的任意一个控制器节点;
上述第一控制器节点还用于对上述第一控制策略的各个备份副本进行相互比较,如果出现备份副本不一致的情况,以多数一致的副本为正确的备份副本,并使用正确的备份副本修正使用其它备份副本。
优选地,上述第一控制器节点可以是第一控制策略的次备份控制器节点。
优选地,上述多控制器系统还可以增加新增的控制器节点,或减少现有的控制器节点。
在多控制器系统组成并部署完毕之后,由于系统负荷的不大加大或其他原因,可能还需要添加新增的控制器节点,其中,当多控制器系统中包括新增的控制器节点时:
新增的控制器节点用于向其它控制器节点广播加入请求消息;
上述新增的控制器节点还用于接收来自其它控制器节点的各个其它控制节点的控制区域的回复消息;
上述新增的控制器节点还用于根据上述回复消息查找控制区域的面积最大的控制区域,分别模拟按照至少二种预定的分割方式对上述面积最大的控制区域进行分割,计算在各种分割方式下上述新增的控制器节点与其邻居节点之间的第一通信时延以及上述面积最大的控制区域的原控制器节点与其邻居节点之间的第二通信时延,选择上述上述第一通信时延和上述第二通信时延之和最小的分割方式作为最优分割方式;
上述新增的控制器节点还用于按照上述最优分割方式将上述面积最大的控制区域分割成二个新的控制区域,并部署在上述二个新的控制区域中的其中一个控制区域。
在新增的控制器节点部署完毕之后,其可以从上述面积最大的控制区域的原控制器节点获取需要的控制策略的备份副本。
由于在网络运行过程中可能出现控制器节点需要更换设备或者宕机的情况,因此可能会需要减少现有的控制器节点,具体地,关于减少现有的控制器节点的情况可包括两种:节点主动下线、节点失效。
当上述多个控制器节点中包括欲下线节点时:
上述欲下线节点可用于选择一个邻居节点作为接管节点;
上述欲下线节点还可用于向上述接管节点发送接管请求消息以通知上述接管节点接管上述欲下线节点的控制区域;
上述接管节点可用于接管上述欲下线节点的控制区域,并向其邻居节点发送控制区域更新消息以使其邻居节点更新邻居列表。
优选地,上述欲下线节点还可用于向OpenFlow配置点发送配置修改请求消息,以请求OpenFlow配置点修改欲下线节点所管理的OpenFlow交换机的配置信息;上述配置修改请求消息可携带欲下线节点和接管节点的属性信息;
其中OpenFlow配置点可根据上述配置修改请求消息,配置上述接管节点的IP为欲下线节点的控制区域内交换机的首选控制器IP,则当该欲下线节点下线后,其管理的交换机可及时与新配置的接管节点进行重新连接;优选地,上述欲下线节点还可用于将保存的控制策略备份副本发送给上述接管节点,从而使接管节点获取到需要的控制策略备份副本;
另外上述欲下线节点还可用于通知其保存的控制策略的策略验证组的其它控制器节点进行验证组成员更新,例如欲下线节点保存有控制策略CP001的一个备份副本,则欲下线节点可以通知控制策略CP001的策略验证组的其它节点将欲下线节点的属性信息修改为接管节点的属性信息,这样在欲下线节点下线之后,接管节点即成为控制策略CP001的策略验证组的新成员,可继续对控制策略CP001的一致性进行验证。
上述接管节点还可用于将自身保存的控制策略备份副本与上述欲下线节点发送的控制策略备份副本一致性进行验证。
当上述多个控制器节点中包括失效节点时:
上述失效节点的其中一个邻居节点作为接管节点;
上述接管节点用于接管上述失效节点的控制区域,并向其邻居节点发送控制区域更新消息以使其邻居节点更新邻居列表。
优选地,上述接管节点还可以用于从上述失效节点保存的控制策略的其它备份控制器节点获取上述失效节点保存的控制策略备份副本,也可以用于对获取到的控制策略备份副本进行一致性的验证。
请参考图2,图2是本发明实施例提供的一种OpenFlow多控制器系统的管理方法的流程示意图。如图2所示,该方法可以包括:
202、部署多个控制器节点,使每个控制器节点控制控制网的一个预定的控制区域;
举例来说,在部署上述多个控制节点时,可以利用OpenFlow配置点来实现各个OpenFlow交换机的自动配置,其中包括配置OpenFlow交换机首选的控制器节点的IP地址,例如某控制器节点的控制区域内的OpenFlow交换机首选的控制器节点的IP地址可以为该控制节点的IP地址;
204、对上述每个控制器节点的控制策略进行冗余备份;
冗余备份可使得上述每个控制器节点的任意一条控制策略的副本数量大于或等于k,其中k为预定的策略冗余度;
206、对上述控制策略的备份副本的一致性进行验证,如果上述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确的备份副本,并使用上述正确的备份副本对其它备份副本进行修正。
上述OpenFlow多控制器系统的管理方法采用了分布式多控制器来扩展控制面的计算处理能力,可以防止单点失效,提高系统对外来网络攻击的防御能力;另外,通过冗余备份、控制策略异常验证与修正的容侵方法,使得控制器中部署的控制策略能够及时发现异常并进行自动修正,有一定的容侵能力,保障了SDN网络控制面的可靠性。
举例来说,如图3所示,上述204可以包括:
204A、将应用第一控制策略的控制器节点作为第一控制策略的主备份控制器节点,上述主备份控制器节点保存上述第一控制策略的主备份副本;
其中,第一控制策略并非特指一个特定的控制策略,而可以是任意一个控制器节点执行的控制策略,以下不再做重复说明;
204B、计算上述第一控制策略所属用户ID的哈希值;
每个控制器节点的控制区域内可以包括一个或多个交换机,第一控制策略的主备份控制器节点可以应用第一控制策略来控制第一交换机,第一控制策略所属用户ID可为使用(租赁)第一交换机的用户的用户ID;
204C、根据上述用户ID的哈希值获取上述用户ID在控制网中的位置,将上述位置所对应的控制器节点作为次备份控制器节点,上述次备份控制器节点保存上述第一控制策略的次备份副本;
控制网逻辑上是个坐标为(0,0)到(1,1)的正方形,每个控制器节点管理一个区域。对于第一控制策略,找到其对应的交换机的用户的用户ID,可以对该用户ID(UID)采用两个不同的hash(哈希)函数(比如hashX和hashY)进行计算,获得的结果归一化后形成新的(x,y)坐标,即为该用户ID在控制网中的位置;利用hash函数的具体计算方法属于现有技术,在此不再赘述;
204D、将上述次备份控制器节点的一个或多个邻居节点作为冗余备份控制器节点,上述冗余备份控制器节点保存上述第一控制策略的冗余备份副本。
图4是一种示例性的控制器节点的控制区域的分布示意图,例如在如图4所示的多控制器系统中,某一个控制策略的主备份控制器节点是N4,如果该控制策略所属用户ID的哈希值对应的位置在N6区域,则控制N6区域的控制器节点就为次备份控制器节点,与N6区域相邻的区域中选择一个或多个控制器节点作为冗余备份控制器节点,具体的,可根据策略冗余度进行选择,例如当策略冗余度为3时,冗余备份控制器节点数量为1,优选地,可以选择N6的X轴正向邻居节点N8作为冗余备份控制器节点。
上述内容对上述204的描述给出了一种示例性的冗余备份的方式,但上述内容并不是对冗余备份的方式进行具体的限制,本领域技术人员还可以根据实际情况选择其它合适的冗余备份方式,例如,以第一控制策略的主备份控制器节点的一个邻居节点作为次备份控制器节点,以另一个或多个邻居节点作为冗余备份节点,或者,以次备份控制器节点的一个或多个邻居节点作为冗余备份节点。
在完成第一控制策略的冗余备份之后,第一控制策略的各个备份控制器节点组成第一控制策略的策略验证组,该策略验证组内的各个备份控制器节点可以获知并保存组内其它控制器节点的属性信息(例如节点ID、IP地址等)。
举例来说,在一种可能的实施方式中,如图5所示,上述206可以包括:
206A、第一控制策略的主备份控制器节点将上述第一控制策略的主备份副本摘要发送至第一控制策略的次备份控制器节点;
其中,第一控制策略可以是任意一个控制策略;
206B、上述第一控制策略的次备份控制器节点将上述主备份副本摘要与其保存的第一控制策略的次备份副本摘要进行比较,判断上述主备份副本摘要和上述次备份副本摘要是否一致,如果一致,执行206C,否则执行206G;
206C、上述第一控制策略的次备份控制器节点向第一控制策略的冗余备份控制器节点发送主次一致的验证消息以及上述主备份副本摘要或次备份副本摘要;
如果存在多个冗余备份控制器节点,则可以向每个冗余备份控制器节点均发送主次一致的验证消息以及上述主备份副本摘要或次备份副本摘要;
206D、上述第一控制策略的冗余备份控制器节点接收上述主次一致的验证消息以及上述主备份副本摘要或次备份副本摘要,将上述主备份副本摘要或次备份副本摘要与其保存的第一控制策略的冗余备份副本摘要进行比较,判断上述主备份副本摘要或次备份副本摘要与上述冗余备份副本摘要是否一致,如果不一致,执行206E,如果一致结束流程;
206E、上述第一控制策略的冗余备份控制器节点向上述第一控制策略的主备份控制器节点或次备份控制器节点发送备份修正请求;
206F、上述第一控制策略的冗余备份控制器节点接收第一控制策略的主备份控制器节点发送的主备份副本或次备份控制器节点发送的次备份副本,使用上述主备份副本或次备份副本替换自身保存的冗余备份副本;结束流程;
优选地,由于第一控制策略的冗余备份控制器节点与第一控制策略的次备份控制器节点一般为邻居节点,因此优选可向次备份控制器节点发送备份修正请求,以请求通过次备份控制器节点保存的第一控制策略的次备份副本来修正自身保存的冗余备份副本;
206G、向第一控制策略的冗余备份控制器节点发送主次不一致的验证消息以及上述主备份副本摘要和次备份副本摘要;
如果存在多个冗余备份控制器节点,则可向每个冗余备份控制器节点均发送上述主次不一致的验证消息以及上述主备份副本摘要和次备份副本摘要;
206H、上述第一控制策略的冗余备份控制器节点接收上述主次不一致的验证消息以及上述主备份副本摘要和次备份副本摘要,将上述主备份副本摘要和次备份副本摘要分别与其保存的第一控制策略的冗余备份副本摘要进行比较,分别判断上述主备份副本摘要和次备份副本摘要与上述冗余备份副本摘要是否一致,如果主备份副本摘要与上述冗余备份副本摘要一致,执行206I,如果上述次备份副本摘要与上述冗余备份副本摘要一致,执行206J;
特别的,如果主备份副本摘要、次备份副本摘要、冗余备份副本摘要各自都不相同,则可生成一个警示信息发送给主备份控制器节点,以提醒主备份控制器节点其控制策略可能出现错误;
206I、对上述次备份控制器节点保存的第一控制策略的次备份副本进行修正;结束流程;
206J、对上述主备份控制器节点保存的第一控制策略的主备份副本进行修正。
举例来说,在另一种可能的实施方式中,上述206也可以包括:
保存第一控制策略的第一控制器节点接收保存上述第一控制策略的其它控制器节点发送的第一控制策略的备份副本;第一控制器节点可以为保存第一控制策略的任意一个控制器节点;
上述第一控制器节点对上述第一控制策略的各个备份副本进行相互比较,如果出现备份副本不一致的情况,以多数一致的副本为正确副本,并使用正确的备份副本修正其它备份副本。
需要说明的是,如果第一控制策略的备份副本数量(策略冗余度)为偶数,例如为4时,在可能性较小的情况下,可能会出现其中2个备份副本一致,另外2个备份副本一致,但这两对备份副本并不一致,这种情况下,第一控制器节点可以生成一个警示信息发送给第一控制策略的主备份控制器节点,以提醒主备份控制器节点其控制策略可能出现错误。
优选地,上述第一控制器节点可以是第一控制策略的次备份控制器节点。
进一步地,如图6所示,在上述202之前,该方法还可包括:
201、获取策略冗余度。
相应的,上述204可以包括:根据上述策略冗余度对上述每个控制器节点的控制策略进行冗余备份,使每个控制器节点的控制策略的备份副本数量不小于上述策略冗余度。
举例来说,上述201可以包括:
201A、获取可容忍的控制策略最大错误率a和单个策略备份副本可能出错的概率Pe;
其中,可容忍的控制策略最大错误率a和单个控制策略备份副本可能出错的概率Pe的具体数值都可以是根据需要或经验值预先设定的;
201B、计算使得控制策略错误率不大于上述可容忍的控制策略最大错误率a的控制策略备份副本数量的最小值,作为策略冗余度的值。
下面详细描述计算策略冗余度的值的具体过程:
系统可容忍的策略最大错误率表示为a,则PRA≥1-a(1),
PRA表示一条策略可用的概率;
本实施例中对于k个副本之间可通过多数投票方式来判断不一致的副本并进行修正,所以对于任意一条策略,如果该策略的副本不一致个数不超过(k-1)/2,即可采用剩下大部分一致副本的策略内容来纠正那些不一致的副本。
其中Pe为一个策略副本可能出错的概率,x为出错的副本个数;
在以上几个因素的限制下,在实际应用中可以计算出一个最合适的冗余度k值作为工程实现的参考;比如,在副本出错率Pe=0.05且α≤0.01时,根据公式(1)(2)可以计算出k=3或k≥5,因此可以确定优选的策略冗余度的值为3。
下表列举了在不同的策略副本出错率Pe的情况下,使用不同的冗余度得到的策略可用概率。
从上述策略冗余度的计算公式和上表可以看出,策略冗余度为偶数2N时,策略的可用概率反而比策略冗余度为奇数2N-1时更低,但保存策略所需要的开销是跟策略冗余度的大小成正比的,因此策略冗余度的优选值为奇数。
进一步地,在上述206之后,如图7所示,该方法还可包括:
207、添加新增的控制器节点。
在多控制器系统组成之后,由于系统负荷的不大加大或其他原因,可能还需要添加新增的控制器节点,一种示例性的添加方法如207A-207E所示:
如图8所示,上述207可以包括:
207A、新增的控制器节点向其它控制器节点广播加入请求消息;
207B、上述新增的控制器节点接收来自其它控制器节点的回复消息,上述回复消息携带各个其它控制节点的控制区域的信息;
207C、上述新增的控制器节点根据上述回复消息查找控制区域的面积最大的控制区域,分别模拟按照至少二种预定的分割方式对上述面积最大的控制区域进行分割;
举例来说,上述至少二种预定的分割方式可包括:对上述面积最大的控制区域进行横向分割(也可称为WE(West,East)分割)、对上述面积最大控制区域进行纵向分割(也可称为NS(North,South)分割);当然还可以包括其它合适的分割方式,在此不作具体的限制;
207D、计算在各种分割方式下上述新增的控制器节点与其邻居节点之间的第一通信时延以及上述面积最大的控制区域的原控制器节点与其邻居节点之间的第二通信时延,选择上述第一通信时延与上述第二通信时延之和最小的分割方式作为最优分割方式;
207E、上述新增的控制器节点按照上述最优分割方式将上述面积最大的控制区域分割成二个新的控制区域,将上述新增的控制器节点部署在上述二个新的控制区域中的其中一个。
在新增的控制器节点部署完毕之后,可以按照前述的冗余备份方法来更新控制策略的冗余备份,即上述方法还可包括:上述新增的控制器节点从上述面积最大的控制区域的原控制器节点获取需要的控制策略的备份副本,其中上述需要的控制策略可包括上述新增的控制器节点的控制区域内各个交换机对应的控制策略。
例如,新增的控制器节点的控制区域中可控制m台交换机,则这m台交换机对应的控制策略的主备份控制器节点即变为该新增的控制节点,可以从这m台交换机的原控制器节点将这m台交换机对应的控制策略复制或者剪切过来。
在新增的控制器节点获取其控制区域内各个交换机对应的控制策略之后,其可以通知上述各个控制策略的策略验证组内的其它控制器节点更新策略验证组的成员信息。
例如,在如图4所示的多控制器系统中,一个新增的控制器节点S1要加入,该新增的控制器节点S1向控制网广播一个加入请求消息,在收到来自其它控制器节点的回复消息之后,根据该回复消息中携带的控制区域的信息(例如N11控制器节点S2在回复消息中携带自身的控制区域的信息)判断出S2的控制区域(N11)最大;如图9所示,分别计算在WE分割和NS分割方式下,新加入节点和原节点与其各自邻居节点的通信时延之和,选择通信时延之和最小的一种作为最优分割方式;按照上述最优分割方式对面积最大的控制区域N11进行分割,假设NS分割为最优分割方式,则可将上述新增的控制器节点S1部署在NS分割后的控制区域N11’,N11的原控制器节点S2的控制区域为N11’’。新增的控制器节点S1从N11的原控制器节点S2获取控制区域N11’内的交换机对应的控制策略的备份副本,并且可以通知这些控制策略的验证组的其它控制器节点将N11的原控制器节点S2的属性信息替换为新增的控制器节点S1的属性信息。
进一步地,如图10所示,在上述206之后,该方法还可包括:
208、减少现有的控制器节点。
由于在网络运行过程中可能出现控制器节点需要更换设备或者宕机的情况,因此可能会需要减少现有的控制器节点,具体地,关于减少现有的控制器节点也分为节点主动下线和节点失效两种情况,以下进行详细描述。
举例来说,在其中一种可能的实施方式中,上述208可以包括:
208A、欲下线节点选择一个邻居节点作为接管节点;
优选地,欲下线节点选择与自己的控制区域面积相等的邻居节点作为接管节点;
欲下线节点可以通过查看自己的邻居节点信息(区域范围)来选择接管节点,如果有一个邻居节点的控制区域面积与自己的控制区域范围面积相等,则选择该邻居为接管节点,如果有多个邻居节点的控制区域面积和自己相等,则可在其中选择任意一个,或者选择其中一个负载较小的为接管节点;例如图4中的N6的控制器节点欲下线,则可选择与其控制面积相等的N7的控制器节点作为接管节点,又例如,N9的控制器节点欲下线,N5和N10的控制器节点的控制区域均与N9相同,则可在其中选择任意一个或负载较小的作为接管节点;
当然欲下线节点还可以采用其它的选择方式来选择接管节点,例如,可以选择邻居节点中控制区域最小的一个节点作为接管节点,在此不对欲下线节点选择接管节点的方式作具体的限制;
208B、上述欲下线节点通知上述接管节点接管上述欲下线节点的控制区域;
208C、上述接管节点接管上述欲下线节点的控制区域,并向其邻居节点发送控制区域更新消息,以使其邻居节点更新邻居列表。优选地,上述208还可包括:
上述欲下线节点向OpenFlow配置点发送配置修改请求消息,以请求OpenFlow配置点修改欲下线节点所管理的OpenFlow交换机的配置信息;上述配置修改请求消息可携带欲下线节点和接管节点的属性信息(可包括IP);其中OpenFlow配置点可配置上述接管节点的IP为欲下线节点的控制区域内交换机的首选控制器IP;当该欲下线节点下线后,其管理的交换机可及时与新配置的接管节点进行重新连接;
上述欲下线节点将保存的控制策略备份副本发送给上述接管节点,并通知每条控制策略的策略验证组(由该条控制策略的k个副本所在节点组成)的其它控制器节点进行验证组成员更新,例如欲下线节点保存有控制策略CP001的一个备份副本,则欲下线节点可以通知控制策略CP001的策略验证组的其它节点将欲下线节点的属性信息修改为接管节点的属性信息,这样在欲下线节点下线之后,接管节点即成为控制策略CP001的策略验证组的新成员,可继续对控制策略CP001的一致性进行验证。
上述接管节点可以将自身保存的控制策略备份副本与上述欲下线节点发送的控制策略备份副本一致性进行验证。例如,欲下线节点保存有控制策略A的主备份副本,接管节点保存有控制策略A的次备份副本,则接管节点在接收到欲下线节点发送的控制策略A的主备份副本后,可对控制策略A主次备份副本的一致性进行验证,如果一致,则接管节点成为控制策略A的新的主备份节点,可以根据前述的冗余备份方法再选择控制策略A的新的次备份节点(例如一个邻居节点);如果不一致,则可按照前述的备份副本的验证、修正方法对控制策略A进行修正。
举例来说,在另一种可能的实施方式中,上述208可以包括:
208A’、各控制器节点探测自己的邻居节点中是否存在失效节点;
具体地,各控制器节点可以周期性(或非周期性)的向邻居节点广播探测消息,以探测各个邻居节点是否失效,如果探测消息反馈超时,则可认为存在失效节点;
208B’、如果存在失效节点,以上述失效节点的其中一个邻居节点作为接管节点;
优选地,可以以与上述失效节点的控制区域面积相同的邻居节点为接管节点,或者以第一个发现该失效节点的控制器节点作为接管节点,或者可以以该失效节点的邻居节点中控制区域最小的控制器节点作为接管节点,在此不对接管节点的选择方式作具体的限制;
208C’、上述接管节点接管上述失效节点的控制区域,并向其邻居节点发送控制区域更新消息,以使其邻居节点更新邻居列表。
优选地,上述208还可包括:
上述接管节点向OpenFlow配置点发送配置修改请求消息,以请求OpenFlow配置点修改失效节点所管理的OpenFlow交换机的配置信息;上述配置修改请求消息可携带欲下线节点和接管节点的属性信息(可包括IP);OpenFlow配置点可根据配置修改请求消息,配置接管节点的IP为失效节点所管理的交换机的首选控制器IP;
上述接管节点从上述失效节点保存的控制策略的其它备份控制器节点获取上述失效节点保存的控制策略备份副本;
具体地,可以是接管节点通过发送广播消息的方式寻找失效节点所在的策略验证组,并接收失效节点所在的策略验证组的其它控制器节点发送的控制策略备份副本;广播消息中可以包括接管节点和失效节点的属性信息;
失效节点所在的策略验证组的其它控制器节点在接收到接管节点发送的广播消息后,可以将其保存的相应的控制策略副本发送到上述接管节点,并更新该条控制策略的策略验证组的成员信息(将失效节点的属性信息替换为接管节点的属性信息)。
接管节点如果接收到某条控制策略的多个备份副本(例如k-1个),可对这多个备份副本的一致性进行验证,如果都一致,则保存该控制策略的备份副本,如果出现不一致,以多数一致的备份副本为正确备份副本进行保存,并可通知与正确备份副本不一致的控制器节点修正该控制策略。
接管节点在获取到失效节点保存的各个控制策略备份副本之后,可以保持控制策略的策略冗余度不变,以及对失效节点的控制区域进行接管。
通过上述的失效节点的控制区域的接管机制的设置,可以在个别节点失效时,自动发现并进行接管,进一步提高控制网的可靠性。
需要说明的是,以上各实施例均属于同一发明构思,各实施例的描述各有侧重,在个别实施例中描述未详尽之处,可参考其他实施例中的描述。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random AccessMemory,RAM)、磁盘或光盘等。
以上对本发明实施例所提供的OpenFlow多控制器系统及其管理方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种开放流OpenFlow多控制器系统的管理方法,其特征在于,包括:
部署多个控制器节点,使每个控制器节点控制控制网中的一个预定的控制区域;
对所述每个控制器节点的控制策略进行冗余备份;
对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正;
所述方法还包括:
所述多个控制器节点接收新增的控制器节点广播的加入请求消息;
所述多个控制器节点向所述新增的控制器节点发送回复消息,所述回复消息携带所述多个控制器节点中各个控制器节点的控制区域的信息,以使得所述新增的控制器节点根据所述回复消息查找控制区域的面积最大的控制区域,分别模拟按照至少二种预定的分割方式对所述面积最大的控制区域进行分割,计算在各种分割方式下所述新增的控制器节点与其邻居节点之间的第一通信时延以及所述面积最大的控制区域的原控制器节点与其邻居节点之间的第二通信时延,选择所述第一通信时延与所述第二通信时延之和最小的分割方式作为最优分割方式,按照所述最优分割方式将所述面积最大的控制区域分割成二个新的控制区域,并部署在所述二个新的控制区域中的其中一个控制区域。
2.根据权利要求1所述的方法,其特征在于,所述对所述每个控制器节点的控制策略进行冗余备份包括:
将应用第一控制策略的控制器节点作为第一控制策略的主备份控制器节点,所述主备份控制器节点保存所述第一控制策略的主备份副本;
计算所述第一控制策略所属用户ID的哈希值;
根据所述用户ID的哈希值获取所述用户ID在所述控制网中的位置,将与所述位置所对应的控制器节点作为第一控制策略的次备份控制器节点,所述次备份控制器节点保存所述第一控制策略的次备份副本;
将所述次备份控制器节点的一个或多个邻居节点作为冗余备份控制器节点,所述冗余备份控制器节点保存所述第一控制策略的冗余备份副本。
3.根据权利要求2所述的方法,其特征在于,所述对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正包括:
第一控制策略的主备份控制器节点将所述第一控制策略的主备份副本摘要发送至第一控制策略的次备份控制器节点;所述第一控制策略为任意一个控制策略;
所述第一控制策略的次备份控制器节点将所述主备份副本摘要与其保存的第一控制策略的次备份副本摘要进行比较,判断所述主备份副本摘要和所述次备份副本摘要是否一致:如果一致,向所述第一控制策略的冗余备份控制器节点发送主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要;如果不一致,向所述第一控制策略的冗余备份控制器节点发送主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要;
所述第一控制策略的冗余备份控制器节点接收所述主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要,将所述主备份副本摘要或次备份副本摘要与其保存的第一控制策略的冗余备份副本摘要进行比较,判断所述主备份副本摘要或次备份副本摘要与所述冗余备份副本摘要是否一致,如果不一致,向所述第一控制策略主备份控制器节点或次备份控制器节点发送备份修正请求以修正冗余备份副本;或者,
所述第一控制策略的冗余备份控制器节点接收所述主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要,将所述主备份副本摘要和次备份副本摘要分别与其保存的第一控制策略的冗余备份副本摘要进行比较,分别判断所述主备份副本摘要和次备份副本摘要与所述冗余备份副本摘要是否一致,如果所述主备份副本摘要与所述冗余备份副本摘要一致,则对所述次备份控制器节点保存的第一控制策略的次备份副本进行修正,如果所述次备份副本摘要与所述冗余备份副本摘要一致,则对所述主备份控制器节点保存的第一控制策略的主备份副本进行修正。
4.根据权利要求1所述的方法,其特征在于,所述对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正包括:
保存第一控制策略的第一控制器节点接收保存所述第一控制策略的其它控制器节点发送的第一控制策略的备份副本;第一控制器节点为保存第一控制策略的任意一个控制器节点;
所述第一控制器节点对所述第一控制策略的各个备份副本进行相互比较,如果出现备份副本不一致的情况,以多数一致的备份副本为正确的备份副本,并使用所述正确的备份副本修正其它备份副本。
5.根据权利要求1所述的方法,其特征在于,在所述对所述多个控制器节点的控制策略进行冗余备份之前,所述方法还包括:
获取策略冗余度;
所述对所述每个控制器节点的控制策略进行冗余备份包括:
根据所述策略冗余度对所述每个控制器节点的控制策略进行冗余备份,使每个控制器节点的控制策略的备份副本数量不小于所述策略冗余度。
6.根据权利要求5所述的方法,其特征在于,所述获取策略冗余度包括:
获取可容忍的控制策略最大错误率a和单个控制策略备份副本可能出错的概率Pe;
根据所述可容忍的控制策略最大错误率a和所述单个控制策略备份副本可能出错的概率Pe,计算使得控制策略错误率不大于所述可容忍的控制策略最大错误率a的策略备份副本数量的最小值,作为策略冗余度的值。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:所述新增的控制器节点从所述面积最大的控制区域的原控制器节点获取需要的控制策略的备份副本。
8.一种开放流OpenFlow多控制器系统,其特征在于,包括多个控制器节点,其中,
所述多个控制器节点中的每个控制器节点用于控制控制网中的一个预定的控制区域;
所述多个控制器节点用于按照预定的策略冗余度对所述每个控制器节点的控制策略进行冗余备份;
所述多个控制器节点还用于对所述控制策略的多个备份副本的一致性进行验证,如果所述控制策略的各个备份副本不一致,则以多数一致的备份副本为正确备份副本,并使用所述正确备份副本对其它备份副本进行修正;
所述系统还包括新增的控制器节点;
所述新增的控制器节点用于向其它控制器节点广播加入请求消息;
所述新增的控制器节点还用于接收来自其它控制器节点的各个其它控制节点的控制区域的回复消息;
所述新增的控制器节点还用于根据所述回复消息查找控制区域的面积最大的控制区域,分别模拟按照至少二种预定的分割方式对所述面积最大的控制区域进行分割,计算在各种分割方式下所述新增的控制器节点与其邻居节点之间的第一通信时延以及所述面积最大的控制区域的原控制器节点与其邻居节点之间的第二通信时延,选择所述第一通信时延和所述第二通信时延之和最小的分割方式作为最优分割方式;
所述新增的控制器节点还用于按照所述最优分割方式将所述面积最大的控制区域分割成二个新的控制区域,并部署在所述二个新的控制区域中的其中一个控制区域。
9.根据权利要求8所述的系统,其特征在于,所述多个控制器节点包括至少k个保存有第一控制策略的备份副本的控制器节点;k为预定的策略冗余度,所述第一控制策略为任意一个控制策略;其中,
应用第一控制策略的控制器节点作为第一控制策略的主备份控制器节点,所述主备份控制器节点保存所述第一控制策略的主备份副本;
所述第一控制策略所属用户ID的哈希值对应的在控制网中的位置所在的控制器节点作为次备份控制器节点,所述次备份控制器节点保存所述第一控制策略的次备份副本;
所述次备份控制器节点的一个或多个邻居节点作为冗余备份控制器节点,所述冗余备份控制器节点保存所述第一控制策略的冗余备份副本。
10.根据权利要求9所述的系统,其特征在于,
第一控制策略的主备份控制器节点用于将所述第一控制策略的主备份副本摘要发送至第一控制策略的次备份控制器节点;
所述第一控制策略的次备份控制器节点用于将所述主备份副本摘要与其保存的第一控制策略的次备份副本摘要进行比较,判断所述主备份副本摘要和所述次备份副本摘要是否一致:如果一致,向第一控制策略的冗余备份控制器节点发送主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要;如果不一致,向第一控制策略的冗余备份控制器节点发送主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要;
所述第一控制策略的冗余备份控制器节点用于接收所述主次一致的验证消息以及所述主备份副本摘要或次备份副本摘要,将所述主备份副本摘要或次备份副本摘要与其保存的第一控制策略的冗余备份副本摘要进行比较,判断所述主备份副本摘要或次备份副本摘要与所述冗余备份副本摘要是否一致,如果不一致,向所述第一控制策略主备份控制器节点或次备份控制器节点发送备份修正请求修正冗余备份副本;或者,
所述第一控制策略的冗余备份控制器节点用于接收所述主次不一致的验证消息以及所述主备份副本摘要和次备份副本摘要,将所述主备份副本摘要和次备份副本摘要分别与其保存的第一控制策略的冗余备份副本摘要进行比较,分别判断所述主备份副本摘要和次备份副本摘要与所述冗余备份副本摘要是否一致,如果所述主备份副本摘要与所述冗余备份副本摘要一致,则对所述次备份控制器节点保存的第一控制策略的次备份副本进行修正,如果所述次备份副本摘要与所述冗余备份副本摘要一致,则对所述主备份控制器节点保存的第一控制策略的主备份副本进行修正。
11.根据权利要求8所述的系统,其特征在于,
保存第一控制策略的第一控制器节点用于接收保存所述第一控制策略的其它控制器节点发送的第一控制策略的备份副本;所述第一控制策略为任意一个控制策略,所述第一控制器节点为保存所述第一控制策略的任意一个控制器节点;
所述第一控制器节点还用于对所述第一控制策略的各个备份副本进行相互比较,如果出现备份副本不一致的情况,以多数一致的副本为正确的备份副本,并使用所述正确的备份副本修正其它备份副本。
12.根据权利要求8所述的系统,其特征在于,所述新增的控制器节点还用于从所述面积最大的控制区域的原控制器节点获取需要的控制策略的备份副本。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410145379.5A CN104980296B (zh) | 2014-04-11 | 2014-04-11 | OpenFlow多控制器系统及其管理方法 |
PCT/CN2015/074882 WO2015154620A1 (zh) | 2014-04-11 | 2015-03-23 | OpenFlow多控制器系统及其管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410145379.5A CN104980296B (zh) | 2014-04-11 | 2014-04-11 | OpenFlow多控制器系统及其管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104980296A CN104980296A (zh) | 2015-10-14 |
CN104980296B true CN104980296B (zh) | 2018-06-19 |
Family
ID=54276428
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410145379.5A Active CN104980296B (zh) | 2014-04-11 | 2014-04-11 | OpenFlow多控制器系统及其管理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104980296B (zh) |
WO (1) | WO2015154620A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105553689B (zh) * | 2015-12-03 | 2018-12-28 | 中国科学院信息工程研究所 | 一种openflow消息中流规则等价快速判定方法 |
CN105681193A (zh) * | 2016-03-02 | 2016-06-15 | 付宏伟 | 一个软件定义网络控制器系统 |
CN106330965B (zh) * | 2016-10-19 | 2019-03-29 | 安徽大学 | 基于OpenFlow协议的多控制器协同平台的协同方法 |
CN107465550B (zh) * | 2017-08-18 | 2020-09-18 | 深圳市泰信通信息技术有限公司 | 一种对接多厂商设备的控制项编排方法及装置 |
US10760485B2 (en) * | 2018-02-02 | 2020-09-01 | General Electric Company | Virtualizing data for a vehicle control system |
CN109617776A (zh) * | 2018-12-20 | 2019-04-12 | 桂林电子科技大学 | 基于分布式散列表的软件定义网络控制器的方法及系统 |
CN114355775A (zh) * | 2021-12-29 | 2022-04-15 | 航天科工网络信息发展有限公司 | 基于sdn网络和深度强化学习多控制器部署方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594697A (zh) * | 2012-02-21 | 2012-07-18 | 华为技术有限公司 | 负载均衡方法及负载均衡装置 |
CN102882719A (zh) * | 2012-09-26 | 2013-01-16 | 盛科网络(苏州)有限公司 | 实现Openflow交换机系统中控制器冗余备份的方法及系统 |
CN103346904A (zh) * | 2013-06-21 | 2013-10-09 | 西安交通大学 | 一种容错的OpenFlow 多控制器系统及其控制方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7137040B2 (en) * | 2003-02-12 | 2006-11-14 | International Business Machines Corporation | Scalable method of continuous monitoring the remotely accessible resources against the node failures for very large clusters |
US8055735B2 (en) * | 2007-10-30 | 2011-11-08 | Hewlett-Packard Development Company, L.P. | Method and system for forming a cluster of networked nodes |
CN102594689B (zh) * | 2012-02-22 | 2015-06-10 | 中兴通讯股份有限公司 | 一种分布式网络控制方法及装置 |
ES2536447T3 (es) * | 2012-04-27 | 2015-05-25 | Nec Europe Ltd. | Procedimiento y sistema para la determinación de interacciones en toda la red entre elementos de reenvío de una red |
-
2014
- 2014-04-11 CN CN201410145379.5A patent/CN104980296B/zh active Active
-
2015
- 2015-03-23 WO PCT/CN2015/074882 patent/WO2015154620A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594697A (zh) * | 2012-02-21 | 2012-07-18 | 华为技术有限公司 | 负载均衡方法及负载均衡装置 |
CN102882719A (zh) * | 2012-09-26 | 2013-01-16 | 盛科网络(苏州)有限公司 | 实现Openflow交换机系统中控制器冗余备份的方法及系统 |
CN103346904A (zh) * | 2013-06-21 | 2013-10-09 | 西安交通大学 | 一种容错的OpenFlow 多控制器系统及其控制方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015154620A1 (zh) | 2015-10-15 |
CN104980296A (zh) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104980296B (zh) | OpenFlow多控制器系统及其管理方法 | |
US11265216B2 (en) | Communicating state information in distributed operating systems | |
US11924044B2 (en) | Organizing execution of distributed operating systems for network devices | |
CN109729111B (zh) | 用于管理分布式系统的方法、设备和计算机程序产品 | |
US11316775B2 (en) | Maintaining coherency in distributed operating systems for network devices | |
US10111208B2 (en) | System and method for performing security management operations in network having non-static collection of nodes | |
US7392424B2 (en) | Router and routing protocol redundancy | |
CN103580915B (zh) | 集群系统中确定主控节点的方法及装置 | |
EP3371940B1 (en) | System and method for handling link loss in a network | |
US10728099B2 (en) | Method for processing virtual machine cluster and computer system | |
WO2016177231A1 (zh) | 基于双主控的主备倒换方法及装置 | |
CN112583708B (zh) | 一种连接关系控制方法、装置和电子设备 | |
CN109391526B (zh) | 一种网络环路的检测方法及装置 | |
CN112367182B (zh) | 容灾主备用设备的配置方法及装置 | |
CN109189854B (zh) | 提供持续业务的方法及节点设备 | |
CN109189403A (zh) | 操作系统os批量安装方法、装置和网络设备 | |
JP5613119B2 (ja) | マスター/スレーブシステム、制御装置、マスター/スレーブ切替方法、および、マスター/スレーブ切替プログラム | |
WO2017092539A1 (zh) | 虚拟机修复方法、虚拟机装置、系统及业务功能网元 | |
CN110603798A (zh) | 多个单板中的弹性一致性高可用性 | |
CN102546313A (zh) | 一种多激活检测方法和设备 | |
JP2017539147A (ja) | スイッチのポート内障害の場合にルーティングを迅速に再構成するための方法 | |
US10122588B2 (en) | Ring network uplink designation | |
CN103780485A (zh) | 一种邻居关系维护方法和设备 | |
US20160182349A1 (en) | Control technique for data distribution | |
CN114448889A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |