基于OpenFlow协议的多控制器协同平台的协同方法与流程

文档序号:12624679阅读:579来源:国知局
基于OpenFlow协议的多控制器协同平台的协同方法与流程

本发明涉及计算机应用技术,具体涉及一种基于OpenFlow协议的多控制器协同平台的协同方法。



背景技术:

随着网络规模的不断扩大和网络互连设备的日益增多,传统网络正面临着越来越多的问题,比如对网络设备的管理、对网络的扩展与延伸、对网络的集中控制。软件定义网络作为一种新型的网络架构,通过将控制平面和数据平面分离,从而实现对网络流量的灵活控制,控制平面负责生成转发策略并给应用层提供开发的接口,数据平面负责数据包的转发。SDN集中控制减少了复杂网络的管理和配置,但随着网络规模的扩大和服务需求的增加,对于大量交换机的流请求和控制平面的扩展,单一的集中式控制器已无法满足整个网络的性能需求,这就促进了多控制器架构的产生。

多控制器的协同工作可以更加方便的实现对网络进行扩展和对网络设备的管理,控制器之间通过东西向接口完成数据同步和对全网的管理,多控制器架构解决了单个控制器的低扩展性和高负载的问题,同时多控制器的架构也带来了问题。多控制器之间的通信缺乏安全规范,现有的OpenFlow协议仅给出了控制器和交换机间的通信规范,但并未指定多个控制器之间通信的具体安全协议和标准,因而多个控制器之间的通信仍面临着认证、数据同步等方面的安全问题;同时如何实现多控制器间的负载均衡以达到资源的有效利用,如何实现多控制器间的故障转移,避免单控制器的失效导致网络的瘫痪,这些也是多控制器架构面临的挑战。



技术实现要素:

发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于OpenFlow协议的多控制器协同平台的协同方法。

技术方案:本发明所述的一种基于OpenFlow协议的多控制器协同平台的协同方法,所述多控制器协同平台包括控制器安全连接模块、交换机证书密钥存储模块、负载均衡策略模块和故障转移策略模块,具体包括以下步骤:

(1)通过控制器安全连接模块多控制器协同平台与控制器之间采用基于消息认证码的安全通信机制,防止攻击者接入到控制器,多控制器协同平台提供有效的信任评估;

(2)通过交换机证书密钥存储模块对控制器和交换机之间的安全传输TLS认证过程进行改进,让各个交换机生成聚合证书,并与控制器进行安全认证,并将交换机的证书与密钥存于多控制器协同平台;

(3)通过负载均衡策略模块多控制器协同平台持续查看全网各个控制器的负载情况,并制定相应的负载均衡算法;

(4)通过故障转移策略模块多控制器协同平台持续查看全网各个控制器是否处于正常工作状态,,当发现某个控制器发生故障时,及时执行故障转移策略,并将故障控制器管理的交换机的证书和密钥发送给即将连接的控制器进行认证。

进一步的,所述步骤(1)的具体过程为:

(11)在发送消息前,各个控制器与多控制器协同平台之间首先协商好共同的散列函数和密钥;

(12)当控制器给多控制器协同平台发送消息时,控制器使用双方协商好的散列函数和密钥计算得到消息对应的的散列值MAC,并将消息和MAC一起发送给多控制器协同平台;

(13)当多控制器协同平台收到消息和MAC时,同时利用协商好的散列函数计算消息的散列值,将此本地计算出的散列值和收到的MAC比较,若两者相等,则消息通过认证。

进一步的,所述步骤(2)的具体过程为:

(21)采用深度优先遍历将所有交换机的证书和密钥发送给根节点交换机,该根节点交换机将所有交换机的证书和密钥发送给控制器统一进行TLS安全认证;

(22)控制器将该域范围内所有交换机的证书与密钥存于多控制器协同平台中。

进一步的,所述步骤(3)的具体过程为:

(31)多控制器协同平台设置负载均衡系数LB和浮动系数FL,例如初始时设置LB为0.8,FL为0.2,当对负载均衡精度要求比较高时,就适当改变参数的数值;

(32)多控制器协同平台每隔一段时间(例如可以是30s),统计各个控制器收到的Packet-in消息的数量CP作为各个控制器自身的负载,并且分别统计该控制器所连交换机这段时间发给控制器的Packet-in消息数量SP;

(33)多控制器协同平台根据收到的控制器负载信息,计算出各个控制器负载CP的平均值AVG_CP,并筛选出各个控制器的负载CP中的最大值MAX_CP与最小值MIN_CP,然后计算出AVG_CP/MAX_CP;

(34)当AVG_CP/MAX_CP不在(LB-FL,LB+FL)区间内时,就执行负载均衡策略;

(35)当需要执行负载均衡策略时,多控制器协同平台就筛选出负载最大的控制器所连交换机中SP最大的交换机,通过修改控制器的角色,将这个交换机转移给负载最小的控制器进行控制。

进一步的,所述步骤(4)的具体过程为:

(41)多控制器协同平台持续监听各控制器的状态,检测是否有控制器发生故障:当检测到某台控制器出现故障时,多控制器协同平台选择出剩余控制器中负载最小的控制器,通过修改其角色,将故障控制器管理的交换机转移给这台控制器进行控制;

(42)将存于多控制器协同平台的交换机的密钥和证书发送给这台控制器进行认证,避免这些交换机重新给控制器发送证书和密钥进行认证。

有益效果:本发明,与现有技术相比具有以下优点:

(1)本发明考虑了在实际场景中可能存在伪造的攻击者接入到控制器,获取网络的拓扑结构并窃取和修改网络数据,造成网络瘫痪的问题;本发明让控制器与多控制器协同平台间的通信采用基于消息认证码的验证,多控制器协同平台可以相信消息未被修改,因为如果攻击者改变了消息,但他无法改变相应的MAC,所以多控制器协同平台计算出的MAC将不等于接收到的MAC;多控制器协同平台可以相信消息是来自真实的控制器C,因为其他各方均不知道密钥,因此伪造方不能产生具有正确的MAC,这样就能确保多控制器协同平台与控制器之间的通信安全。

(2)本发明考虑了在OpenFlow协议的通信规范中,控制器和交换机之间采用安全传输协议TLS对消息进行加密和认证,该过程涉及多次握手及信息确认步骤,此操作较为繁琐。本发明改进控制器和交换机的认证过程,让各个交换机生成聚合证书,统一的与控制器进行基于TLS的安全认证,并将交换机的证书与密钥存于多控制器协同平台,避免了控制器与每个交换机进行多次繁琐的握手与信息确认,提高了控制层和基础设置之间的安全认证效率,同时也节省了带宽。

(3)本发明考虑了多控制器之间的负载均衡问题,多控制器协同平台持续监控全网各个控制器的负载情况,并制定相应的算法,实现各个控制器之间的负载均衡。

(4)本发明考虑了多控制器之间的故障转移问题,多控制器协同平台持续监控全网各个控制器的状态,当发现某个控制器发生故障时,及时执行故障转移的策略,实现了控制器故障的动态转移。

附图说明

图1为本发明的整体结构示意图;

图2为本发明步骤(1)中安全通信的示意图;

图3为本发明步骤(2)中安全认证的示意图;

图4为本发明步骤(3)中负载均衡策略的具体流程图;

图5为本发明步骤(4)中故障转移策略的具体流程图。

具体实施方式

下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。

如图1所示,本发明基于OpenFlow协议的多控制器协同平台的协同方法中,在控制器平面上建立一个多控制器协同平台,多控制器协同平台由控制器安全连接模块、交换机证书密钥存储模块、负载均衡策略模块和故障转移策略模块这4个模块构成。

其中,控制器安全连接模块负责协同平台和控制器的安全连接,交换机证书密钥存储模块负责管理交换机的证书与密钥,负载均衡模块负责实现各个控制器的负载均衡,故障转移模块负责实现各个控制器的故障恢复。

控制器与多控制器协同平台间的通信采用基于消息认证码的验证,以保证多控制器协同平台所收到的消息确实来自真实的发送方控制器,且是未被修改的消息,控制器与交换机之间采用改进的安全传输协议TLS进行认证;同时多控制器协同平台通过收集各个控制器的状态信息,从而下发策略实现多控制器间的负载均衡与故障转移。

如图2所示,本发明中控制器与多控制器协同平台安全通信过程为:多控制器协同平台与控制器之间采用基于消息认证码的安全通信机制,控制器与多控制器协同平台共同协商的密钥可以设为0xFFFF,散列函数可以是将消息字符串映射为整形数字,并与密钥0xFFFF进行异或,产生消息认证码。当控制器连接多控制器协同平台时,控制器给多控制器协同平台发送的requestconnect消息加密为requestconnect577b,多控制器协同平台接收到消息requestconnect577b,通过对消息requestconnect使用散列函数计算MAC,计算得到577b,和接收到的消息认证码相同,说明认证成功,若认证不成功,多控制器协同平台将拒绝控制器的连接请求。

如图3所示,本发明中控制器与交换机安全认证的具体过程为:本方案采用深度优先遍历将所有交换机的证书和密钥发送给根节点交换机,这个交换机将所有交换机的证书和密钥发送给控制器统一进行认证,认证后,控制器将该域范围内所有交换机的证书与密钥存于多控制器协同平台中。这样控制器不需要与每个交换机都进行多次握手及信息确认,只需和所有交换机进行一次统一的认证,且当某个控制器发生故障时,将存于多控制器协同平台的交换机的证书和密钥发送给新的控制器进行认证,避免了这些交换机重新给控制器发送证书和密钥进行认证,节省了带宽,同时也提高了资源利用率。

如图4所示,本发明中负载均衡策略的具体流程为:控制器的主要负载来源于Packet-in消息,多控制器协同平台每隔一段时间统计各个控制器收到的Packet-in消息的数量CP作为各个控制器自身的负载,并且分别统计该控制器所连交换机这段时间发给控制器的Packet-in消息数量SP。协同平台根据收到的控制器负载信息,计算出各个控制器负载CP的平均值AVG_CP,并计算出各个控制器的负载CP中的最大值MAX_CP与最小值MIN_CP,然后计算出AVG_CP/MAX_CP,这个值在一定范围内浮动越小,各控制器负载越均衡。设置一个负载均衡系数LB和一个浮动系数FL,当AVG_CP/MAX_CP不在(LB-FL,LB+FL)区间内,就执行负载均衡策略,初始时我们设置LB为0.8,FL为0.2,当对负载均衡精度要求比较高时,可以适当改变参数的数值。当需要执行负载均衡策略时,多控制器协同平台就筛选出负载最大的控制器所连交换机中SP最大的交换机,通过修改控制器的角色,将这个交换机转移给负载最小的控制器进行控制,这样一段时间后,可实现局域网内所有控制器之间的负载均衡。

如图5所示,本发明中故障转移策略的具体流程为:多控制器协同平台负责管理控制器的角色,初始时多控制器协同平台通过控制器提供的REST-API将角色下发给控制器,并持续监听各控制器的状态,检测是否有控制器发生故障。当检测到某台控制器出现故障时,多控制器协同平台选择出剩余控制器中负载最小的控制器,通过修改其角色,将故障控制器管理的交换机转移给这台控制器进行控制,并将存于多控制器协同平台的交换机的密钥和证书发给这台控制器进行认证,这样可以实现多控制间的故障转移,且避免了这些交换机重新给控制器发送证书和密钥进行认证。

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