一种SDN体系架构中协调层的构建方法与流程

文档序号:11156396阅读:来源:国知局

技术特征:

1.一种SDN体系架构中协调层的构建方法,其特征在于,整体架构中协调层即OpenFlow协调器,位于应用异构型的SDN控制层和转发层之间;在OpenFlow协调器中,物理交换机对象负责与南向交换机建立连接,使得OpenFlow协调器对于转发层来说是一个集中的北向控制器,它的最终决策来源于应用异构型的SDN控制层;虚拟交换机对象负责与北向控制器建立连接,使得OpenFlow协调器对于控制层来说是一个交换机的集合,它的最终转发由转发层完成;

OpenFlow协调器划分为物理交换机模块、虚拟交换机模块、消息队列模块以及远程管理模块;

物理交换机模块,在OpenFlow协调器上线后被启动,在协调器对应的主机IP地址和端口上建立Socket,与之绑定的消息管道处理器有OpenFlow消息编解码器、管道空闲处理器、读超时处理器、OpenFlow握手超时处理器、管道线程池处理器以及OpenFlow消息处理器;消息管道的处理流程分为Socket读流程和Socket写流程;Socket读流程涉及的处理器依次为OpenFlow消息解码器、管道空闲处理器、读超时处理器、OpenFlow握手超时处理器、管道线程池处理器以及OpenFlow消息处理器;Socket写流程涉及的处理器依次为OpenFlow消息处理器、管道线程池处理器以及OpenFlow消息编码器;

物理交换机模块中,OpenFlow消息解码器根据OpenFlow协议栈将OpenFlow消息部分从管道消息的数据部分读取出来,而OpenFlow消息编码器将OpenFlow消息写入管道消息的数据部分;管道空闲处理器用于管理心跳机制,检测远端是否存活;读超时处理器用于控制读取数据时发生的超时情况,如果一段时间内没有数据读取就引发读超时,并关闭当前的消息管道;OpenFlow握手超时处理器用于控制OpenFlow握手流程中发生的超时情况,从握手流程开始时计算一段时间内如果没有握手成功就引发OpenFlow握手超时,并关闭当前的消息管道;管道线程池处理器用于转发管道消息给线程池执行多线程操作,提升消息处理的并发性;OpenFlow消息处理器用于处理南向交换机发送的OpenFlow消息,OpenFlow消息的处理过程定义为状态机,在不同的状态下,对OpenFlow消息采取不同的处理方式,接收到特定消息后根据OpenFlow协议,进行状态转移;

物理交换机模块同远端南向交换机建立连接后,状态机的初始状态从INIT转移到WAIT HELLO,并发起OpenFlow握手流程,根据OpenFlow协议标准,转移到中间状态WAIT FT_REP、WAIT CONFIG_REP和WAIT DESC_STATS;发生握手超时后,从当前状态转移到CHANNEL CLOSED,并中断握手流程;当状态成功转移到ACTIVE时,物理交换机模块同南向交换机间的OpenFlow握手成功,物理交换机模块为南向交换机在协调器中建立对应的物理交换机对象,开始ECHO REPLY,并启动新建物理交换机对象中的拓扑链路发现和统计信息收集网络状态维护功能;网络状态维护由定时发送LLDP和BDDP以及定时发送OFPT_STATS_REQUEST两部分构成;南向交换机向控制层发送的OpenFlow消息通过物理交换机对象进行处理,接收到LLDP、BDDP以及OFPT_STATS_REPLY后,根据网络状态维护功能更新网络状态,将发现的链路加入拓扑,并存储收集的统计信息,供控制层访问;接收到OFPT_PACKET_IN后,请求消息队列模块,经由合适的虚拟交换机对象发送给对应的北向控制器;远端南向交换机同物理交换机模块断开连接时,状态机的状态转移到CHANNEL CLOSED,物理交换机模块关闭对应的消息管道,回收管道处理器资源;

虚拟交换机模块,在物理交换机模块上线后被启动,接收到控制层变容的请求后,针对每个已存在的物理交换机对象,同新加入北向控制器对应的主机IP地址和端口建立Socket,并建立对应的虚拟交换机对象,与之绑定的消息管道处理器有重连接处理器、OpenFlow消息编解码器、管道空闲处理器、读超时处理器、OpenFlow握手超时处理器、管道线程池处理器以及OpenFlow消息处理器;消息管道的处理流程分为Socket读流程和Socket写流程,Socket读流程涉及的处理器依次为重连接处理器、OpenFlow消息解码器、管道空闲处理器、读超时处理器、OpenFlow握手超时处理器、管道线程池处理器以及OpenFlow消息处理器,Socket写流程涉及的处理器依次为OpenFlow消息处理器、管道线程池处理器、OpenFlow消息编码器以及重连接处理器;

虚拟交换机模块中,OpenFlow消息编解码器、管道空闲处理器、读超时处理器、OpenFlow握手超时处理器、管道线程池处理器的作用与物理交换机模块中相同;重连接处理器用于消息管道断开时的重连接操作,连接断开时等待一段时间后与远端重新建立连接;OpenFlow消息处理器用于处理北向控制器发送的OpenFlow消息,OpenFlow消息的处理过程定义为状态机,在不同的状态下,对OpenFlow消息采取不同的处理方式,接收到特定消息后根据OpenFlow协议,进行状态转移;

虚拟交换机模块同远端北向控制器建立连接后,状态机的初始状态从INIT转移到WAIT HELLO,并发起OpenFlow握手流程,检测OpenFlow协议兼容性,根据OpenFlow协议标准,转移到中间状态WAIT FT_REQ,虚拟交换机模块依据对应的物理交换机对象信息构建FT_REP;当OpenFlow协议不兼容或握手超时后,从当前状态转移到CHANNEL CLOSED,并中断握手流程;当状态成功转移到ACTIVE时,虚拟交换机模块同北向控制器间的OpenFlow握手成功,开始ECHO REQUEST和ECHO REPLY,北向控制器向转发层发送的OpenFlow消息通过虚拟交换机对象进行处理;虚拟交换机模块接收到LLDP、BDDP以及OFPT_STATS_REQUEST后,根据已存储的网络状态对北向控制器进行回复;接收到OFPT_PACKET_OUT、OFPT_FLOW_MOD以及OFPT_PORT_MOD后,请求消息队列模块,经由合适的物理交换机对象发送给对应的南向交换机;北向控制器同虚拟交换机模块断开连接时,状态机的状态转移到CHANNEL CLOSED,虚拟交换机模块尝试重连接北向控制器,重连接成功后,恢复对应的消息管道处理,重连接失败后,虚拟交换机模块关闭对应的消息管道,回收管道处理器资源;

消息队列模块,在虚拟交换机模块上线后被启动,为OpenFlow控制流的转发提供策略;提供不同功能的南向交换机需求不同的控制层服务,将提供对应服务的北向控制器加入相对应的服务分组,即南向交换机的需求与北向控制器提供的服务是相互对应;为北向控制器创建消息队列时,将北向控制器的服务分组作为消息队列的属性,同时该属性也存在于物理交换机对象中;北向控制器各自拥有独立的消息队列,消息队列的更新操作分为入队操作和出队操作,入队操作将转发层发送的OFPT_PACKET_IN消息的buffer_id字段作为消息的标识加入队列,令队列长度自增,出队操作将控制层发送的OFPT_PACKET_OUT消息的buffer_id字段作为消息的标识从队列中弹出,令队列长度自减,消息队列中的入队以及出队操作具有原子性;

当物理交换机模块收到转发层发送的OpenFlow请求时,向消息队列模块请求合适的北向控制器;消息队列模块收到请求,根据物理交换机对象的服务分组属性,查询对应服务分组内的消息队列,并选择其中负载因子最小,即队列长度与负载权重乘积最小的消息队列,负载权重为介于0和1之间的实数,类型为double,根据组织者设置的转发策略确定,消息队列模块将OpenFlow请求入队,并返回相应的北向控制器接口,供物理交换机模块进行请求转发;

当虚拟交换机模块收到控制层发送的OpenFlow决策时,请求消息队列模块将相应的OpenFlow请求出队;北向控制器各自的消息队列中反映的是当前北向控制器对于OpenFlow请求的处理情况;

远程管理模块,在消息队列模块上线后被启动,为协调器的管理提供远程接口;来自外部的控制请求由RPC服务器接收并进行处理,RPC服务器提供两种WebSocket,分别是HTTP WebSocket和HTTPS WebSocket,其中HTTPS WebSocket提供基于SSL证书认证的加密数据传输的连接,WebSocket的处理绑定了两种服务组件,要求处理前进行请求身份的认证,不同的请求身份拥有不同的服务组件的访问权限,其中监控者身份仅访问监控服务组件,管理员身份除了访问监控服务组件,还访问管理服务组件;监控服务组件提供三种监控服务的接口,分别是查询网络状态、查询消息队列以及查询资源列表;查询网络状态用于读取保存在协调器中的由物理交换机对象负责维护的网络状态,包括转发层的拓扑链路以及统计信息;查询消息队列用于读取消息队列模块负责维护的各个北向控制器的消息队列状态;查询资源列表用于读取保存在协调器中的物理交换机对象、虚拟交换机对象、北向控制器列表以及三者之间的映射关系;管理服务组件提供三种管理服务的接口,分别是控制层变容、设置转发策略以及设置服务分组;控制层变容用于弹性的增加或减少控制层中的北向控制器,创建或删除虚拟交换机对象以及同北向控制器的连接;设置转发策略用于更新消息队列模块中的负载权重;设置服务分组用于更新物理交换机对象和消息队列中的服务分组属性。

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