CN110225033A - 基于异常感知的异构控制器集群业务主动变迁系统及方法 - Google Patents
基于异常感知的异构控制器集群业务主动变迁系统及方法 Download PDFInfo
- Publication number
- CN110225033A CN110225033A CN201910502456.0A CN201910502456A CN110225033A CN 110225033 A CN110225033 A CN 110225033A CN 201910502456 A CN201910502456 A CN 201910502456A CN 110225033 A CN110225033 A CN 110225033A
- Authority
- CN
- China
- Prior art keywords
- controller
- isomery
- flow table
- message
- module
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Hardware Redundancy (AREA)
Abstract
一种基于异常感知的异构控制器集群业务主动调度系统及方法,系统包括状态采集模块、通信代理模块、异常状态感知模块、业务主动调度模块。方法的步骤为:通信代理模块建立与控制器和交换机的连接;状态采集模块采集控制器的运行环境状态参数与负载状态参数;通信代理模块获取控制器下发的流表消息并计算消息可信度;异常状态感知模块更新控制器的异常参数;异常状态感知模块判断控制器是否异常;业务主动调度模块选择备选控制器并主动调度异常控制器业务。本发明具有较高的普适性与独立性,在异构控制器集群中控制器出现异常时,能够及时准确地发现并对其业务进行主动调度。
Description
技术领域
本发明属于通信技术领域,更进一步涉及网络通信技术领域中的一种基于异常感知的异构控制器集群业务主动变迁系统及方法。本发明在软件定义网络SDN(SoftwareDefined Network)环境下,构建一种用于异构控制器集群的业务主动变迁系统,以实现支持异构控制器集群环境下对控制器节点的异常感知及对异常控制器节点的业务主动变迁。
背景技术
软件定义网络SDN(Software Defined Networking,SDN),是2006年由美国斯坦福大学Clean State课题研究组提出的一种新型网络创新架构,是网络虚拟化的一种实现方式。其核心技术OpenFlow通过将网络设备的控制面与数据面分离开来,从而实现了网络流量的灵活控制,使网络作为管道变得更加智能,为核心网络及应用的创新提供了良好的平台。控制器是当前SDN网络控制层的主要实现方式,其通常是一个定制化开发的管理应用程序,负责整个SDN网络的集中化控制,对于把握全网资源视图、改善网络资源交付都具有非常重要的作用。但由单一的控制器实现的控制层由于控制能力的集中化,也意味着控制器的可靠性和性能成为全网的瓶颈,同时,单一的控制器也无法应对跨多个地域的SDN网络问题。另一方面,由单控制器实现的SDN网络也具有巨大的安全隐患,一旦控制器失效便可使得整个网络面临瘫痪,同时控制器在设计之初并未考虑来自外部的网络攻击,安全防御性能不高,在面临外部的恶意攻击时也暴露出了巨大的单点脆弱性。目前,集群技术可以被用来解决上述难题,尤其是以多种不同控制器构成的异构控制器集群方案可以有效提升表征安全性,但是传统的异构控制器集群方案并没有根本上解决集群内控制器节点因异常导致集群的SDN控制层可靠性,需要及时对异常节点业务进行主动变迁以降低其对集群的SDN控制层可靠性造成的影响;同时在对异构控制器集群内进行业务主动变迁时还需要考虑变迁对集群的表征安全性和业务处理能力的影响,因此在对异构控制器集群进行业务主动变迁时仍存在较多的困难。
在实现对异构控制器集群的业务主动变迁时,需要解决的问题有三点:第一点是减少业务主动变迁系统对异构控制器集群环境的依赖,即在设计变迁系统时,需要保证变迁系统与异构控制器集群解耦,具有普适性与独立性,在异构控制器集群环境发生变化时不影响变迁系统的正常功能;第二点是设计业务的主动变迁策略,因为异构控制器集群中控制器具有表征差异性,需要设计一套能反应每个控制器状态的标准度量,变迁系统可以计算并对每个控制器的状态进行评估,主动对需要变迁的控制器进行业务的变迁,完成异构控制器集群业务的主动变迁;第三点是业务主动变迁对异构控制器集群造成的影响,即在业务主动变迁系统评估异构控制器集群中控制器的状态,降低对集群业务处理性能的影响,同时因为异构控制器集群的表征安全性依赖于异构控制器的组合,在需要对控制器业务进行变迁时需要充分考虑该业务变迁策略对异构控制器集群表征安全性与SDN控制层可靠性的影响,最终保障业务主动变迁对异构控制器集群的表征安全性、SDN控制层可靠性与业务处理性能的影响降到最小。本发明在解决上述三个问题的基础上,实现了异构控制器集群的业务主动变迁系统。
Karim ElDefrawy等作者在其发表的论文“Byzantine Fault TolerantSoftware-Defined Networking(SDN)Controllers”(IEEE 40th Annual ComputerSoftware and Applications Conference(COMPSAC),2016)中设计实现了一种基于BFT的分布式控制器集群管理原型系统。该系统基于Java的Beacon和OpenFlowJ控制器套件整合BFT_SMaRt实现,同时通过在交换机和控制器集群间添加一个代理模块作为他们之间的通信桥梁,当交换机提交Packet In消息时,代理模块对其进行重新格式化然后将其发送至BFT节点,将BFT节点下发的Packet Out和Flow Mod消息做类似的处理发送至交换机;同时系统在实现中禁止控制器向客户端发送未经请求的消息,并要求交换机对这类消息不做处理,除非交换机接收到大于半数的一致的消息回复。该系统的优点可以通过BFT机制快速有效地发现控制器集群中的异常节点并过滤该节点下发流表消息,提高了集群的SDN控制层可靠性,同时通过添加通信代理模块,简化了系统的部署以及对控制器集群与交换机间通信流表的转发控制实现。但是该系统仍然存在的不足之处是:系统与控制器集群的耦合度过高,当集群环境改变时会对该系统的功能性产生影响。
顾泽宇等作者在其发表的论文“基于拟态防御理论的SDN控制层安全机制研究”(计算机应用研究,2018,35(07):2148-2152)中提出了一种基于一致性容错算法的异构控制器集群业务变迁方法。该方法采用拟态防御理论中的动态异构冗余架构,通过裁决器采集异构控制器集群对交换机下发的流表,采用一致性容错算法根据全局状态表判决出正确数据结果以及错误节点,以此发现集群中的异常节点,周期性地对异常节点业务进行变迁。该方法的优点是可以准确发现集群中的异常控制器,通过周期性地变迁异常节点业务避免异常节点对集群的SDN控制层可靠性的影响。但是该方法仍然存在的不足之处是:该方法对控制器的异常状态判别方法实现基于广播Gossip协议,而Gossip协议是一种弱一致性协议,需要花费较长的时间达到状态的判别,会严重影响集群的业务处理性能。
中国人民解放军信息工程大学在其申请的专利文献“一种拟态化SDN控制器构建方法”(专利申请号CN201610111148,公开号CN105791279B)中公开了一种基于拟态化的异构SDN控制器集群构建方法。该方法的具体步骤为,收集控制器所管理子网的拓扑信息以及交换机等状态信息并转发至控制器执行体;实时地对网络运行状态进行感知检测;动态地对控制层的控制器进行变迁;利用择多判决机制对下发信息进行表决输出。该方法的优点是主动采集控制器节点信息结合择多判决机制实现对异常节点的发现,通过变迁器主动对其业务进行变迁,实现了对异常节点的判别与处理;通过决策器对多个节点处理结果进行一致性表决可以有效防止在单一节点异常的情况下保证集群的高可用性。但是该方案的不足之处是:变迁器进行业务变迁时未考虑业务变迁策略对异构控制器集群表征安全结构的破坏、降低SDN控制层可靠性的问题。
发明内容
本发明的目的在于针对上述现有技术存在的不足,提出一种基于异常感知的异构控制器集群业务主动变迁系统及方法,用于解决现有技术中存在的系统与异构控制器集群的耦合度过高,控制器的异常发现策略降低异构控制器集群的业务处理性能,业务变迁策略破坏异构控制器集群的表征安全结构、降低SDN控制层可靠性的问题。
实现本发明目的的思路是:首先状态采集模块动态采集异构控制器集群中控制器的运行环境状态参数与负载状态参数,通信代理模块建立与异构控制器集群和交换机间的连接,采用流表消息缓存队列的方式获取待分析的流表消息,降低了系统与异构控制器集群的耦合度;然后通信代理模块提取待分析流表消息字段中的事件ID作为统一标识,采用消息可信度公式快速地计算控制器的消息可信度,根据消息可信度判断控制器的异常状态,减少了控制器的异常发现策略对异构控制器集群业务处理性能的下降;最后主动变迁模块读取状态采集模块采集的控制器运行状态参数与负载状态参数,采用优先度公式计算出异构控制器集群中的最有备选控制器,实现异常控制器的业务主动变迁,避免了业务变迁对异构控制器表征安全性的破坏与SDN可靠性的降低。
本发明的系统包括状态采集模块、通信代理模块、异常状态感知模块、业务主动变迁模块,其中:
所述状态采集模块,用于采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数;采集模块采集当前时刻下异构控制器集群中每个控制器所控制的交换机的总数,作为异构控制器集群中该控制器的负载状态参数;将运行环境状态参数和负载状态参数存储于MySQL数据库中;
所述通信代理模块,用于读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口,通过Sockets方式创建与业务主动变迁系统与异构控制器节点和交换机的连接;对每一个交换机构造一个FIFO的流表消息缓存队列,读取流表消息的nw_dst字段获取目的交换机IP,并以此为分类控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存;将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息;读取待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度;将消息可信度存储于MySQL数据库中;
所述异常状态感知模块,用于从MySQL数据库中提取控制器的消息可信度,将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新,判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,若是,则选择备选控制器,否则,继续获取控制器下发的流表消息;
所述业务主动变迁模块,用于从MySQL数据库中提取状态采集模块采集到的异构控制器集群中所有异构控制器的环境状态参数与负载状态参数;从MySQL数据库中提取异构控制器集群中所有异构控制器的异常参数;通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器;获取异常控制器所控制的交换机集合,修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁。
本发明方法的步骤包括如下:
(1)建立与异构控制器和交换机的连接;
(1a)通信代理模块读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口;
(1b)通信代理模块通过Sockets方式创建与业务主动变迁系统与异构控制器节点和交换机的连接;
(2)获取异构控制器集群中每个控制器的运行环境状态参数与负载状态参数:
(2a)状态采集模块采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数;
(2b)状态采集模块采集当前时刻下异构控制器集群中每个控制器所控制的交换机的总数,作为异构控制器集群中该控制器的负载状态参数;
(2c)状态采集模块将运行环境状态参数和负载状态参数存储于MySQL数据库中;
(3)获取控制器下发的流表消息:
(3a)通信代理模块对每一个交换机构造一个FIFO的流表消息缓存队列,通信代理模块通过读取流表消息的nw_dst字段获取目的交换机IP,并以此为分类将控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存;
(3b)通信代理模块将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息;
(3c)通信代理模块将流表消息缓存队列中出队的流表消息下发至对应的交换机中;
(4)计算控制器的消息可信度:
(4a)通信代理模块读取标记的待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度;
(4b)通信代理模块将消息可信度存储于MySQL数据库中;
(5)更新控制器的异常参数:
(5a)异常状态感知模块从MySQL数据库中提取控制器的消息可信度;
(5b)异常状态感知模块将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新;
(6)异常状态感知模块判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,若是,则执行步骤(7),否则,执行步骤(3);
(7)选择备选控制器:
(7a)业务主动变迁模块从MySQL数据库中提取状态采集模块采集到的异构控制器集群中所有异构控制器的环境状态参数与负载状态参数;
(7b)业务主动变迁模块从MySQL数据库中提取异构控制器集群中所有异构控制器的异常参数;
(7c)业务主动变迁模块通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器;
(8)将异常控制器的业务变迁至备选控制器:
(8a)业务主动变迁模块获取异常控制器所控制的交换机集合;
(8b)业务主动变迁模块修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁。
本发明与现有技术相比具有以下优点:
第一,由于本发明系统中的状态采集模块可以采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数,在异构控制器集群中异构控制器环境发生改变时动态地获取与更新异构控制器集群中控制器的信息;通信代理模块读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口,通过Sockets方式创建与业务主动变迁系统与异构控制器节点和交换机的连接,因为仅通过建立代理连接的方式获取异构控制器集群下发至交换的流表消息,并获取需要分析的流表消息,使得系统能够独立于异构控制器进行实现,克服了现有技术的系统与异构控制器集群耦合度过高的问题,使得本发明系统具有更高的普适性与独立性的优点。
第二,由于本发明的方法可以对每一个交换机构造一个FIFO的流表消息缓存队列,读取流表消息的nw_dst字段获取目的交换机IP,并以此为分类控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存;将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息;读取待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度;将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新,判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,因为本方法中建立流表消息缓存队列的方式可以高效率地获取用于分析的数据,并采用消息可信度公式快速计算控制器的消息可信度并更新对应异常参数,克服了现有技术的方法中控制器的异常发现策略降低异构控制器集群的业务处理性能的问题,使得本发明的方法具有减少对异构控制器集群业务处理性能影响的优点。
第三,由于本发明的方法可以采集到异构控制器集群中所有异构控制器的环境状态参数与负载状态参数;计算异构控制器集群中所有异构控制器的异常参数;通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器;获取异常控制器所控制的交换机集合,修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁,使得本发明的方法可以在考虑异构度、负载度的条件下选取最优备选控制器,克服了现有技术中业务变迁策略对异构控制器集群表征安全性、SDN控制层可靠性影响过大的问题,使得本发明的方法具有减少对异构控制器集群的表征安全性、SDN控制层可靠性影响的优点。
附图说明
图1为本发明系统的结构示意图;
图2为本发明方法的流程图。
具体实施方式
下面结合附图对本发明作进一步的描述。
参照图1,对本发明的系统作进一步的描述。
本发明的系统包括状态采集模块、通信代理模块、异常状态感知模块、业务主动变迁模块,其中:所述状态采集模块,用于采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数;采集模块采集当前时刻下异构控制器集群中每个控制器所控制的交换机的总数,作为异构控制器集群中该控制器的负载状态参数;将运行环境状态参数和负载状态参数存储于MySQL数据库中。
所述通信代理模块,用于读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口,通过Sockets方式创建与业务主动变迁系统与异构控制器节点和交换机的连接;对每一个交换机构造一个FIFO的流表消息缓存队列,读取流表消息的nw_dst字段获取目的交换机IP,并以此为分类控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存;将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息;读取待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度;将消息可信度存储于MySQL数据库中。
所述异常状态感知模块,用于从MySQL数据库中提取控制器的消息可信度,将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新,判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,若是,则选择备选控制器,否则,继续获取控制器下发的流表消息。
所述业务主动变迁模块,用于从MySQL数据库中提取状态采集模块采集到的异构控制器集群中所有异构控制器的环境状态参数与负载状态参数;从MySQL数据库中提取异构控制器集群中所有异构控制器的异常参数;通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器;获取异常控制器所控制的交换机集合,修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁。
下面结合附图2,对本发明方法的具体步骤做进一步的描述。
步骤1,建立与异构控制器和交换机的连接。
通信代理模块读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口。
所述的系统环境变量$CONTROLLERS与$SWITCHS是通过手动添加至系统的/etc/profile文件中,具体的配置格式如下:
export CONTROLLERS=IP地址:端口号
export CONTROLLERS=IP地址:端口号:$CONTROLLERS
export SWITCHS=IP地址:端口号
export SWITCHS=IP地址:端口号:$SWITCHS。
通信代理模块通过Sockets方式创建与业务主动变迁系统与异构控制器节点和交换机的连接;
所述的Sockets方式是通过Python的PySocks库实现的。
本发明的实施例中,配置如下内容的Linux系统的/etc/profile的$CONTROLLERS与$SWITCHS:
export CONTROLLERS=192.168.1.1:6633
export CONTROLLERS=192.168.1.2:6633:$CONTROLLERS
export CONTROLLERS=192.168.1.3:6633:$CONTROLLERS
export SWITCHS=10.173.1.1:53968
export SWITCHS=192.168.1.2:53968:$SWITCHS。
其中,前三行环境变量表示异构控制器集群中三个控制器的通信地址与通信端口,后两行表示两个交换机的通信地址与通信端口。
步骤2,获取异构控制器集群中每个控制器的运行环境状态参数与负载状态参数。
状态采集模块采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数。
状态采集模块采集当前时刻下异构控制器集群中每个控制器所控制的交换机的总数,作为异构控制器集群中该控制器的负载状态参数。
状态采集模块将运行环境状态参数和负载状态参数存储于MySQL数据库中。
本发明的实施例中,预设的异构控制器的运行环境均为Linux发行版本,系统内核对应Linux的系统内核,控制器采取三种开源SDN控制器OpenDayLight、ONOS和Floodlight;获取到控制器的环境状态参数并将其保存至MySQL数据库的Node_Run_Status表中,该表的结构为{id:主键,node_addr:控制器地址,os:操作系统类别,os_core:操作系统内核,type:控制器类别};状态采集模块基于OpenFLow1.3标准协议中Symmetric事件的Echo流表获取控制器所控制的交换机总数,并将负载状态参数保存至MySQL数据库的Node_Load_Status表中,该表的结构为{id:主键,node_addr:控制器地址,os_load:控制器负载}。
步骤3,获取控制器下发的流表消息。
通信代理模块对每一个交换机构造一个FIFO的流表消息缓存队列,通信代理模块通过读取流表消息的nw_dst字段获取目的交换机IP,并以此为分类将控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存。
所述的流表消息的结构遵循OpenFlow1.3协议规范。
通信代理模块将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息。
所述的流表消息的结构遵循OpenFlow1.3协议规范。
通信代理模块将流表消息缓存队列中出队的流表消息下发至对应的交换机中。
所述的流表消息的结构遵循OpenFlow1.3协议规范。
步骤4,计算控制器的消息可信度。
通信代理模块读取标记的待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度。
所述的流表消息的结构遵循OpenFlow1.3协议规范。
所述消息可信度公式如下:
其中,σi表示步骤(3b)中出队流表消息所属控制器i的消息可信度,∑表示求和操作,C表示所有事件标识ID与控制器i相同的控制器,k表示所有事件标识ID与控制器i相同的控制器的所有序号,∈表示属于符号,Fij表示步骤(3b)中出队流表消息所属控制器i发送给第j个交换机的流表消息,and表示逻辑与操作,Fkj表示第k个控制器发送给第j个交换机的流表消息。
通信代理模块将消息可信度存储于MySQL数据库中。
步骤5,更新控制器的异常参数。
异常状态感知模块从MySQL数据库中提取控制器的消息可信度。
异常状态感知模块将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新。
步骤6,异常状态感知模块判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,若是,则执行步骤7,否则,执行步骤3。
步骤7,选择备选控制器。
业务主动变迁模块从MySQL数据库中提取状态采集模块采集到的异构控制器集群中所有异构控制器的环境状态参数与负载状态参数。
业务主动变迁模块从MySQL数据库中提取异构控制器集群中所有异构控制器的异常参数。
业务主动变迁模块通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器。
所述的变迁优先度公式如下:
θs=Msδs(α1fO(t,s)fL(t,s)+α2fT(t,s))
其中,θs表示异构控制器集群中除异常控制器以外第s个控制器的变迁优先度,Ms表示采集的除异常控制器以外的第s个控制器的业务负载参数,δs表示除异常控制器以外的第s个控制器的异常参数,O、L与T分别表示采集的控制器操作系统类型、系统内核与控制器类型,fO、fL和fT分别表示计算两个控制器间关于操作系统类别、操作系统内核和控制器类别的异构程度函数,α1和α1表示异构权重系数,且fO,fL,fT,α1+α2≤1。
步骤8,将异常控制器的业务变迁至备选控制器。
业务主动变迁模块获取异常控制器所控制的交换机集合。
业务主动变迁模块修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁。
所述的基于优先级与角色属性完成控制器节点间的业务变迁策略基于由Zookeeper实现的异构控制器集群架构。
本发明的实施例中,实现对异常SDN控制器节点业务的主动变迁后,还需继续对异构控制器集群中控制器的异常状态进行感知并对异常控制器节点业务进行主动变迁,其感知与变迁方法与步骤3至步骤8所述的方法相同。
Claims (8)
1.一种基于异常感知的异构控制器集群业务主动变迁系统,其特征在于,包括状态采集模块、通信代理模块、异常状态感知模块、业务主动变迁模块,其中:
所述状态采集模块,用于采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数;采集模块采集当前时刻下异构控制器集群中每个控制器所控制的交换机的总数,作为异构控制器集群中该控制器的负载状态参数;将运行环境状态参数和负载状态参数存储于MySQL数据库中;
所述通信代理模块,用于读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口,通过Sockets方式创建与业务主动变迁系统与异构控制器和交换机的连接;对每一个交换机构造一个FIFO的流表消息缓存队列,读取流表消息的nw_dst字段获取目的交换机IP,分类控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存;将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息;读取待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度;将消息可信度存储于MySQL数据库中;
所述异常状态感知模块,用于从MySQL数据库中提取控制器的消息可信度,将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新,判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,若是,则选择备选控制器,否则,继续获取控制器下发的流表消息;
所述业务主动变迁模块,用于从MySQL数据库中提取状态采集模块采集到的异构控制器集群中所有异构控制器的环境状态参数与负载状态参数;从MySQL数据库中提取异构控制器集群中所有异构控制器的异常参数;通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器;获取异常控制器所控制的交换机集合,修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁。
2.一种基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,对由多个异构SDN控制器组成的异构控制器集群建立与异构控制器和交换机的连接,获取控制器下发的流表消息,计算控制器的消息可信度,选择备选控制器,该方法的步骤如下:
(1)建立与异构控制器和交换机的连接:
(1a)通信代理模块读取Linux在/etc/profile文件中的系统环境变量$CONTROLLERS与$SWITCHS,获取当前异构控制器集群环境下的控制器和交换机的通信IP地址与通信端口;
(1b)通信代理模块通过Sockets方式创建与业务主动变迁系统与异构控制器和交换机的连接;
(2)获取异构控制器集群中每个控制器的运行环境状态参数与负载状态参数:
(2a)状态采集模块采集异构控制器集群中每个控制器的操作系统类型、系统内核、控制器类型组成该控制器的运行环境状态参数;
(2b)状态采集模块采集当前时刻下异构控制器集群中每个控制器所控制的交换机的总数,作为异构控制器集群中该控制器的负载状态参数;
(2c)状态采集模块将运行环境状态参数和负载状态参数存储于MySQL数据库中;
(3)获取控制器下发的流表消息:
(3a)通信代理模块对每一个交换机构造一个FIFO的流表消息缓存队列,通信代理模块通过读取流表消息的nw_dst字段获取目的交换机IP,并以此为分类将控制器下发给交换机的流表消息存入到对应的流表消息缓存队列进行缓存;
(3b)通信代理模块将流表消息缓存队列中出队的每个属于Controller-to-Switch类型流表消息标记为待处理流表消息;
(3c)通信代理模块将流表消息缓存队列中出队的流表消息下发至对应的交换机中;
(4)计算控制器的消息可信度:
(4a)通信代理模块读取待处理流表消息中的事件ID字段,并以此ID值作为该事件的统一标识,利用消息可信度公式,计算该流表消息所属控制器的消息可信度;
(4b)通信代理模块将消息可信度存储于MySQL数据库中;
(5)更新控制器的异常参数:
(5a)异常状态感知模块从MySQL数据库中提取控制器的消息可信度;
(5b)异常状态感知模块将控制器的消息可信度累加至控制器的异常参数,完成控制器的异常参数更新;
(6)异常状态感知模块判断更新后的控制器的异常参数是否大于取值为60的异常状态阈值,若是,则执行步骤(7),否则,执行步骤(3);
(7)选择备选控制器:
(7a)业务主动变迁模块从MySQL数据库中,提取状态采集模块采集到的异构控制器集群中所有异构控制器的环境状态参数与负载状态参数;
(7b)业务主动变迁模块从MySQL数据库中,提取异构控制器集群中所有异构控制器的异常参数;
(7c)业务主动变迁模块通过异常参数与状态参数,利用变迁优先度公式,计算异构控制器集群中除异常控制器以外的每个控制器的变迁优先度,选择其中变迁优先度最大的控制器作为备选控制器;
(8)将异常控制器的业务变迁至备选控制器:
(8a)业务主动变迁模块获取异常控制器所控制的交换机集合;
(8b)业务主动变迁模块修改异常控制器与备选控制器对交换机集合的所属角色与优先级,实现对异常控制器的业务主动变迁。
3.根据权利要求2所述的基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,步骤(1a)中所述的系统环境变量$CONTROLLERS与$SWITCHS是通过手动添加至系统的/etc/profile文件中,具体的配置格式如下:
export CONTROLLERS=IP地址:端口号
export CONTROLLERS=IP地址:端口号:$CONTROLLERS
export SWITCHS=IP地址:端口号
export SWITCHS=IP地址:端口号:$SWITCHS。
4.根据权利要求2所述的基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,步骤(1b)中所述的Sockets方式是通过Python的PySocks库实现的。
5.根据权利要求2所述的基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,步骤(3a)、步骤(3b)、步骤(3c)、步骤(4a)中所述的流表消息的结构遵循OpenFlow1.3协议规范。
6.根据权利要求2所述的基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,步骤(4a)中所述消息可信度公式如下:
其中,σi表示步骤(3b)中出队流表消息所属控制器i的消息可信度,∑表示求和操作,C表示所有事件标识ID与控制器i相同的控制器,k表示所有事件标识ID与控制器i相同的控制器的所有序号,∈表示属于符号,Fij表示步骤(3b)中出队流表消息所属控制器i发送给第j个交换机的流表消息,and表示逻辑与操作,Fkj表示第k个控制器发送给第j个交换机的流表消息。
7.根据权利要求2所述的基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,步骤(7c)中所述的变迁优先度公式如下:
θs=Msδs(α1fO(t,s)fL(t,s)+α2fT(t,s))
其中,θs表示异构控制器集群中除异常控制器以外第s个控制器的变迁优先度,Ms表示步骤(2b)中采集的除异常控制器以外的第s个控制器的业务负载参数,δs表示除异常控制器以外的第s个控制器的异常参数,O、L与T分别表示步骤(2a)中采集的控制器操作系统类型、系统内核与控制器类型,fO、fL和fT分别表示计算两个控制器间关于操作系统类别、操作系统内核和控制器类别的异构程度函数,α1和α1表示异构权重系数,且fO,fL,fT,α1+α2≤1。
8.根据权利要求2所述的基于异常感知的异构控制器集群业务主动变迁方法,其特征在于,步骤(8b)中所述的基于优先级与角色属性完成控制器间的业务变迁策略基于由Zookeeper实现的异构控制器集群架构。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502456.0A CN110225033B (zh) | 2019-06-11 | 2019-06-11 | 基于异常感知的异构控制器集群业务主动变迁系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502456.0A CN110225033B (zh) | 2019-06-11 | 2019-06-11 | 基于异常感知的异构控制器集群业务主动变迁系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110225033A true CN110225033A (zh) | 2019-09-10 |
CN110225033B CN110225033B (zh) | 2021-05-18 |
Family
ID=67816580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910502456.0A Active CN110225033B (zh) | 2019-06-11 | 2019-06-11 | 基于异常感知的异构控制器集群业务主动变迁系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110225033B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111562829A (zh) * | 2020-04-28 | 2020-08-21 | 江苏拟态极算信息技术有限公司 | 基于拟态计算服务器系统的数据处理方法 |
CN111884950A (zh) * | 2020-07-27 | 2020-11-03 | 深圳市信锐网科技术有限公司 | 数据传输方法、目标交换机、指定交换机及交换机系统 |
CN112367389A (zh) * | 2020-10-30 | 2021-02-12 | 杭州安恒信息技术股份有限公司 | 一种基于代理的软件定义网络方法及装置 |
CN112929200A (zh) * | 2021-01-07 | 2021-06-08 | 浙江工商大学 | 一种面向sdn多控制器的异常检测方法 |
CN113452552A (zh) * | 2021-06-16 | 2021-09-28 | 西安电子科技大学 | 一种基于信息熵感知的超多目标控制器放置方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243239A (zh) * | 2014-09-23 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种sdn集群中控制器的状态检测方法和装置 |
US20160316011A1 (en) * | 2015-04-27 | 2016-10-27 | Telefonaktiebolaget L M Ericsson (Publ) | Sdn network element affinity based data partition and flexible migration schemes |
CN106953742A (zh) * | 2017-02-16 | 2017-07-14 | 广州海格通信集团股份有限公司 | 一种基于sdn的无线异构网带宽保障方法 |
CN109039933A (zh) * | 2018-08-14 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种集群网络优化方法、装置、设备及介质 |
CN109412943A (zh) * | 2017-08-18 | 2019-03-01 | 中兴通讯股份有限公司 | 一种sdn控制器集群流量处理方法、装置、设备及存储介质 |
-
2019
- 2019-06-11 CN CN201910502456.0A patent/CN110225033B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104243239A (zh) * | 2014-09-23 | 2014-12-24 | 杭州华三通信技术有限公司 | 一种sdn集群中控制器的状态检测方法和装置 |
US20160316011A1 (en) * | 2015-04-27 | 2016-10-27 | Telefonaktiebolaget L M Ericsson (Publ) | Sdn network element affinity based data partition and flexible migration schemes |
CN106953742A (zh) * | 2017-02-16 | 2017-07-14 | 广州海格通信集团股份有限公司 | 一种基于sdn的无线异构网带宽保障方法 |
CN109412943A (zh) * | 2017-08-18 | 2019-03-01 | 中兴通讯股份有限公司 | 一种sdn控制器集群流量处理方法、装置、设备及存储介质 |
CN109039933A (zh) * | 2018-08-14 | 2018-12-18 | 郑州云海信息技术有限公司 | 一种集群网络优化方法、装置、设备及介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111562829A (zh) * | 2020-04-28 | 2020-08-21 | 江苏拟态极算信息技术有限公司 | 基于拟态计算服务器系统的数据处理方法 |
CN111884950A (zh) * | 2020-07-27 | 2020-11-03 | 深圳市信锐网科技术有限公司 | 数据传输方法、目标交换机、指定交换机及交换机系统 |
CN111884950B (zh) * | 2020-07-27 | 2022-08-05 | 深圳市信锐网科技术有限公司 | 数据传输方法、目标交换机、指定交换机及交换机系统 |
CN112367389A (zh) * | 2020-10-30 | 2021-02-12 | 杭州安恒信息技术股份有限公司 | 一种基于代理的软件定义网络方法及装置 |
CN112929200A (zh) * | 2021-01-07 | 2021-06-08 | 浙江工商大学 | 一种面向sdn多控制器的异常检测方法 |
CN112929200B (zh) * | 2021-01-07 | 2022-11-25 | 浙江工商大学 | 一种面向sdn多控制器的异常检测方法 |
CN113452552A (zh) * | 2021-06-16 | 2021-09-28 | 西安电子科技大学 | 一种基于信息熵感知的超多目标控制器放置方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110225033B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110225033A (zh) | 基于异常感知的异构控制器集群业务主动变迁系统及方法 | |
CN109067579B (zh) | 面向底层节点失效的5g网络切片拓扑设计及可靠映射方法 | |
CN104734878B (zh) | 软件定义联网灾难恢复的方法和系统 | |
CN109495300B (zh) | 一种可靠的sdn虚拟网络映射方法 | |
WO2022083540A1 (zh) | 故障恢复预案确定方法、装置及系统、计算机存储介质 | |
CN101371237B (zh) | 在网络元件中代表应用执行消息有效载荷处理功能 | |
CN105553849B (zh) | 一种传统ip网络与sptn网络互通方法与系统 | |
CN109547966A (zh) | 输电线路无线传感器网络的路由规划及故障诊断备份方法 | |
JP2018504038A (ja) | ソフトウェア定義型データセンター、並びにそのためのサービスクラスタスケジューリング方法及びトラフィック監視方法 | |
Das et al. | FT-SDN: a fault-tolerant distributed architecture for software defined network | |
US20120314608A1 (en) | Information and communication processing system, method, and network node | |
Xu et al. | Enhancing survivability in virtualized data centers: A service-aware approach | |
CN107925633A (zh) | 数据中心资源跟踪 | |
CN105052113B (zh) | 提供针对网络设备的共同代理框架的方法、设备及介质 | |
CN106797328A (zh) | 收集和分析所选择的网络流量 | |
CN103825759B (zh) | 获取网络拓扑信息的方法和系统 | |
CN103581307A (zh) | 一种基于集群的发布/订阅系统及其可靠性保障方法 | |
CN106982244A (zh) | 在云网络环境下实现动态流量的报文镜像的方法和装置 | |
CN107317758A (zh) | 一种高可靠性的细粒度sdn流量监控架构 | |
CN109756422B (zh) | 一种转发路由节点选取方法 | |
CN111813556B (zh) | 云计算环境下的虚拟集群的弹性伸缩方法 | |
Thorat et al. | Optimized self-healing framework for software defined networks | |
CN106998299B (zh) | 数据中心网络中网络设备的识别方法、装置及系统 | |
Tang et al. | Slicing-based software-defined mobile edge computing in the air | |
CN113037542B (zh) | 一种基于软件定义网络的云网络拓扑构建方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |