法律状态公告日
法律状态信息
法律状态
2018-06-19
授权
授权
2016-06-01
实质审查的生效 IPC(主分类):H04L12/775 申请日:20151214
实质审查的生效
2016-05-04
公开
公开
技术领域
本发明涉及网络通信安全技术领域,具体的说是涉及一种基于openflow的多逻辑变体路由控制系统及控制方法。
背景技术
传统的路由器是在一个硬件平台内,采用紧耦合方式使控制面和数据面紧密结合。但是这种的方式在应用于在网络环境中,却存在一旦遭到成功的路由攻击,轻者造成网络业务数据丢失,重者造成大范围网络瘫痪的致命缺陷。一般的,在实际应用中,为了防止这种情况发生,可通过下述两种方式进行改进:一方面可以从加强路由器本身的安全措施入手,另一方面可采用冗余方式以减小这方面的风险。
其中在采用冗余方式进行规避上述问题时,特别是设备级的冗余措施中,单节点部署多台设备的冗余方式比较普遍,但是这种方式由于冗余度有限,其使用效果并不理想,同时也会带来部署成本和管理成本的上升等问题。
发明内容
鉴于已有技术存在的缺陷,本发明的目的是要提供一种基于openflow的多逻辑变体路由控制系统,该控制系统实现了路由器的控制面和数据面的分离,其通过在同一个网络节点上部署多台逻辑上相互独立的路由控制面,且在上述多个路由器的控制面生成路由表后,把这些路由表转化为数据面可执行的流表向数据面输出时,通过设置分析及仲裁机构对所述流表进行分析、仲裁、合并后再向数据面进行流表输出;有效保证了在某个路由器的控制面异常时,仍能保证数据面接收到的可执行流表是正确的,从而不影响正常的网络通信,同时对选举失败的路由器进行报警,从而启动自动或人工纠错和恢复机制。
为了实现上述目的,本发明的技术方案:
一种基于openflow的多逻辑变体路由控制系统,其特征在于:
该控制系统包括
多个逻辑上相互独立,部署于同一个网络节点上的路由控制面;各路由控制面分别独立运行相同的选路协议,生成各自对应的路由表,转化为对应的控制面数据流表后输出;
通信仲裁单元,用以控制各路由控制面以及路由数据面之间的上下行数据通信过程,所述上下行数据通信过程包括将各路由控制面输出的各个控制面数据流表进行仲裁合并处理后,向数据面输出对应的数据面数据流表的下行数据通信过程以及将路由数据面上传的数据信息配置发送至与该数据信息地址对应的路由控制面的上行数据通信过程;
以及路由数据面,该路由数据面用以完成与当前网络节点的数据通信过程。
进一步的,所述路由控制面包括openflow控制器、openflow适配器以及路由逻辑单元;所述openflow控制器用以向上层业务应用提供开放的北向接口以及基于openflow协议实现与所述路由数据面的通信;所述openflow适配器基于所述openflow控制器提供的北向接口,实现所述openflow控制器与所述路由逻辑单元之间的通信匹配过程;所述路由逻辑单元用以实现其作为路由器组件的网络层和数据链路层功能,即用以运行选路协议,生成各自对应的路由表并完成数据链路的逻辑控制。
优选的,所述路由控制面的路由逻辑单元仅用以实现其作为路由器组件的网络层功能,即用以运行选路协议,生成各自对应的路由表;同时通过所述openflow控制器提供北向接口,采用独立的数据链路控制模块完成数据链路的逻辑控制。
优选的,所述路由数据面采用openflow交换机实现。
进一步的,所述通信仲裁单元采用预设用以控制各路由控制面以及路由数据面之间的上下行数据通信过程的通信仲裁规则的openflow服务器实现。
所述的通信仲裁规则包括:在路由控制面向路由数据面下发流表的下行数据通信过程中,基于各路由控制面输出的控制面数据流表对应的流表项匹配域内容,分析各流表项对应的动作内容,若各流表项的动作内容一致,则将生效时间最早的流表项作为数据面数据流表向数据面输出;若各流表项的动作内容不一致,则选择出动作内容一致个数最多的动作内容作为目标动作内容,并将与所述目标动作内容对应的且生效时间最早的流表项作为数据面数据流表向数据面输出。
进一步的,所述通信仲裁规则还包括报警纠错机制,即在发现各流表项的动作内容不一致时,将与目标动作内容不一致的流表项所对应的路由控制面进行报警标识,将对应的路由控制面标识为异常路由控制面。
一种基于OpenFlow的多逻辑变体路由控制系统的控制方法,其特征在于:
包括
S1、通过各所述路由控制面下发对应的控制面数据流表或者接收路由数据面上传的数据信息;
S2、通过通信仲裁单元控制各路由控制面以及路由数据面之间的上下行数据通信过程,所述上下行数据通信过程包括将各路由控制面输出的各个控制面数据流表进行仲裁合并处理后,向数据面输出对应的数据面数据流表的下行数据通信过程以及将路由数据面上传的数据信息配置发送至与该数据信息地址对应的路由控制面的上行数据通信过程。
进一步的,所述路由控制面包括openflow控制器、openflow适配器以及路由逻辑单元;所述openflow控制器用以向上层业务应用提供开放的北向接口以及基于openflow协议实现与所述路由数据面的通信;所述openflow适配器基于所述openflow控制器提供的北向接口,实现所述openflow控制器与所述路由逻辑单元之间的通信匹配过程;所述路由逻辑单元用以实现其作为路由器组件的网络层和数据链路层功能,即用以运行选路协议,生成各自对应的路由表并完成数据链路的逻辑控制。
优选的,所述路由控制面的路由逻辑单元仅用以实现其作为路由器组件的网络层功能,即用以运行选路协议,生成各自对应的路由表;同时通过所述openflow控制器提供北向接口,采用独立的数据链路控制模块完成数据链路的逻辑控制。
优选的,所述路由数据面采用openflow交换机实现。
进一步的,所述通信仲裁单元采用预设用以控制各路由控制面以及路由数据面之间的上下行数据通信过程的通信仲裁规则的openflow服务器实现。
所述的通信仲裁规则包括:在路由控制面向路由数据面下发流表的下行数据通信过程中,基于各路由控制面输出的控制面数据流表对应的流表项匹配域内容,分析各流表项对应的动作内容,若各流表项的动作内容一致,则将生效时间最早的流表项作为数据面数据流表向数据面输出;若各流表项的动作内容不一致,则选择出动作内容一致个数最多的动作内容作为目标动作内容,并将与所述目标动作内容对应的且生效时间最早的流表项作为数据面数据流表向数据面输出。
进一步的,所述通信仲裁规则还包括报警纠错机制,即在发现各流表项的动作内容不一致时,将与目标动作内容不一致的流表项所对应的路由控制面进行报警标识,将对应的路由控制面标识为异常路由控制面。
与现有技术相比,本发明的有益效果:
本发明通过多个逻辑上相互独立,部署于同一个网络节点上的路由控制面且通过通信仲裁单元与数据面通信的拓扑结构构成了一个类似多变体的路由器结构,从物理结构上,该结构只串入了一个物理节点,逻辑上则相当于有多个路由器并联,而且每个路由器都可以独立地运行路由协议,各个变体之间也能够正常进行路由的更新;同时本发明在每个路由器配置相同路由参数的情况下,本发明通过通信仲裁规则实现了多余度选举特性来避免某个变体异常造成的网络故障;另,本发明在各自独立配置的情况下,实现了网络层上的冗余备份,也能在一定程度避免单体异常造成的网络故障。
附图说明
图1为所述基于openflow的多逻辑变体路由控制系统结构示意图一;
图2为所述基于openflow的多逻辑变体路由控制系统结构示意图二;
图3为所述通信仲裁单元在处理流表操作报文时添加流表项的处理流程步骤图;
图4为图3添加流表项对应的仲裁处理流程步骤图;
图5为所述通信仲裁单元在处理流表操作报文时删除流表项的处理流程步骤图;
图6为图5删除流表项对应的仲裁处理流程步骤图;
图7为上行数据通信过程中对于Packet_In消息的处理流程步骤图;
图8为上行数据通信过程中对于packet-out消息的处理流程步骤图;
图9本发明所述方案对应的具体实例结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图,对本发明进行进一步详细说明。
本发明设计原理:利用基于OpenFlow协议实现的SDN概念,以实现路由控制面和数据面的分离,即在一个网络节点上部署多台逻辑上独立的路由控制面,每台路由器的控制面独立地运行相同的选路协议,这些路由器的控制面都可以和网络阶点外的传统路由器进行路由协议发现和协商,并生成独立的路由表。由于这些路由器的控制面所处的网络环境相同,选路协议的配置参数也相同,在正常情况下,它们会生成相同的路由表;在多个路由器的控制面生成路由表后,把这些路由表转化为数据面可执行的数据面流表向数据面输出时,加入一个分析和仲裁机构,对多个路由控制面输出的流表进行分析和仲裁,把多个控制面的流表合并后,向一个流表执行机构(数据面)输出。
其中输出原则(或称为仲裁原则):若对某一个指定路径多个流表项的动作内容多数一致(称为多余度选举),才能够向数据面输出。这就保证了在某个路由器的控制面异常时,通过仲裁原则,仍然保证数据面接收到的可执行流表是正确的,从而不影响正常的网络通信,同时利用多余度选举的结果,对选举失败的路由器进行报警,从而启动自动或人工纠错和恢复机制。同时这样的结构从每个路由器的控制面的角度看,它们都是独立的路由单元,但从整个系统的角度看,每个路由器的控制面又只在执行机构中体现出了部分作用,因而每个路由控制面都可以称为一个变体。因此本发明实际上可称为基于openflow的多逻辑变体路由器。
基于上述原理及图1-图2,所述基于openflow的多逻辑变体路由控制系统,其主要包括多个路由控制面(至少为3个)、通信仲裁单元以及路由数据面;
(1)多个逻辑上相互独立,部署于同一个网络节点上的路由控制面;各路由控制面分别独立运行相同的选路协议,生成各自对应的路由表,转化为对应的控制面数据流表后输出;
进一步的,所述路由控制面包括openflow控制器、openflow适配器以及路由逻辑单元;所述openflow控制器用以向上层业务应用提供开放的北向接口(北向接口是通过控制器向上层业务应用开放的接口,其目标是使得业务应用能够便利地调用底层的网络资源和能力。通过北向接口,网络业务的开发者能以软件编程的形式调用各种网络资源;同时上层的网络资源管理系统可以通过控制器的北向接口全局把控整个网网络的资源状态,并对资源进行统一调度)以及基于openflow协议实现与所述路由数据面的通信;所述openflow适配器基于所述openflow控制器提供的北向接口,实现所述openflow控制器与所述路由逻辑单元之间的通信匹配过程;所述路由逻辑单元用以实现其作为路由器组件的网络层和数据链路层功能,即用以运行选路协议,生成各自对应的路由表并完成数据链路的逻辑控制。
由于每个路由控制面(即变体的路由)的路由逻辑单元,都对转发接口配置了不同的网络层逻辑地址,这些接口都对外部网络暴露,因此从外部网络看,在网络层存在多个路由器实体,而实际上接入网络的转发器只有一个。因此这系统可看作是一个物理实体,即为多个逻辑变体的路由器。
优选的,所述路由控制面的路由逻辑单元仅用以实现其作为路由器组件的网络层功能,即用以运行选路协议,生成各自对应的路由表;同时通过所述openflow控制器提供北向接口,采用独立的数据链路控制模块完成数据链路的逻辑控制。
优选的,所述路由控制面可以通过多路由控制面部署在不同的主机上如图1,以达成硬件级别的多逻辑变体,也可部署在同一个主机上如图2,实现软件级别的多逻辑变体。
(2)鉴于控制面与数据面之间的通信,除了一般的配置和查询之外,控制系统相对外部网络的行为的影响主要体现在,控制面的控制器对数据面的流表操作控制过程以及网络数据与控制面的控制器的通信,包括上行到控制器和从控制器到外部网络的数据报文,在openflow连接上分别封装为Packet-IN和Packet-Out数据包。为了实现对上述OpenFlow数据包的分析处理,本控制系统在多个路由控制面与路由数据面的连接上,加入通信仲裁单元,用以控制各路由控制面以及路由数据面之间的上下行方向上的数据通信过程,所述上下行数据通信过程包括:①、在下行方向上,将各路由控制面输出的各个控制面数据流表进行仲裁合并处理后,向数据面输出对应的数据面数据流表的下行数据通信过程,以实现每个路由控制面在向路由数据面下发配置指令时,如果出现指令重复或指令冲突,则对其进行仲裁和错误判断,保证正确的配置指令下发给路由数据面;②、上行方向上,将路由数据面上传的数据信息配置发送至与该数据信息地址对应的路由控制面的上行数据通信过程,以实现在路由数据面上行数据产生时,通信仲裁单元对其目的进行判断,保证正确到达合适的路由控制面。
同时鉴于在基于OpenFLow协议的SDN网络中,数据面(OFP交换机)对业务报文的处理主要依据流表来实行,通常来说,数据面中会包含一个或多个流表,而每个流表中可以容纳多个流表项(流表项的内容主要包括两个方面:匹配域内容和动作内容;匹配域内容用于指定网络报文特征,动作内容用来指定对符合该特征的报文数据面采取的动作,匹配域内容典型地包括IP地址、掩码、网络协议等,动作典型地包括丢弃、转发、上传到控制面等。)
所述通信仲裁单元采用预设用以控制各路由控制面以及路由数据面之间的上下行数据通信过程的通信仲裁规则的openflow服务器实现且所述的通信仲裁规则包括:在路由控制面向路由数据面下发流表的下行数据通信过程中,基于各路由控制面输出的控制面数据流表对应的流表项匹配域内容,分析各流表项对应的动作内容,若各流表项的动作内容一致,则将生效时间最早的流表项作为数据面数据流表向数据面输出;若各流表项的动作内容不一致,则选择出动作内容一致个数最多的动作内容作为目标动作内容,并将与所述目标动作内容对应的且生效时间最早的流表项作为数据面数据流表向数据面输出。
通过上述通信仲裁规则使得在路由数据面上,除了保有各路由控制面下发的不同的全部流表内容,还实现了对各个流表内容中重复内容的去重操作以及对各个流表内容中的关键字相同动作不同的流表,进行仲裁选举,以保证在某个路由控制面发生异常时,正常的路由控制面的流表在路由数据面上起作用,实现一种多余度选举效果且实现了路由控制面的冗余。
优选的,所述通信仲裁单元在处理流表操作报文时,通过在内部维护二类流表副本的数据结构,来保存经过通信仲裁规则处理前以及处理后的流表项,并能够针对不同的操作进行不同的处理,即若对流表进行添加操作,则按照图3-图4流程进行,以达到针对每个存在的路由控制面能够维护一个用于保存每个控制面下发的流表项的多变体流表副本;针对路由数据面能够维护一个用于存储由openflow服务器下发到路由数据面的流表项的决策流表副本;即若对流表进行删除操作,则按照图5-图6流程进行,其中各图中的table-miss表项为默认表项,用于指示对象数据包在为未匹配任何其他表现场合下,数据面对该数据包采取的动作。。
进一步的,所述通信仲裁规则还包括报警纠错机制,即在发现各流表项的动作内容不一致时,将与目标动作内容不一致的流表项所对应的路由控制面进行报警标识,将对应的路由控制面标识为异常路由控制面。
进一步的,上行数据通信过程包括将路由数据面上传的数据信息配置发送至与该数据信息地址对应的路由控制面,如对于从OpenFLow交换机上传给路由控制面的业务数据,在OpenFlow连接上,把数据链路层的数据报文封装成Packet_In消息,由所述通信仲裁单元处理后,按照业务数据的实际目标,发送给适合的路由控制面,处理过程如图7所示:
同时上行数据通信过程还包括对从路由控制面向路由数据面发送的业务数据,在OpenFlow连接上,把网络链路层数据封装为Packet_Out消息,由所述通信仲裁单元处理后,按照网络链路层数据的实际目标,进行分发,分发规则如下图8所示。
(3)路由数据面,该路由数据面用以完成与当前网络节点的数据通信过程。
优选的,所述路由数据面采用openflow交换机实现。
同时基于上述OpenFlow的多逻辑变体路由控制系统的控制方法,其包括
S1、通过各所述路由控制面下发对应的控制面数据流表或者接收路由数据面上传的数据信息;
S2、通过通信仲裁单元控制各路由控制面以及路由数据面之间的上下行数据通信过程,所述上下行数据通信过程包括将各路由控制面输出的各个控制面数据流表进行仲裁合并处理后,向数据面输出对应的数据面数据流表的下行数据通信过程以及将路由数据面上传的数据信息配置发送至与该数据信息地址对应的路由控制面的上行数据通信过程。
进一步的,所述路由控制面包括openflow控制器、openflow适配器以及路由逻辑单元;所述openflow控制器用以向上层业务应用提供开放的北向接口以及基于openflow协议实现与所述路由数据面的通信;所述openflow适配器基于所述openflow控制器提供的北向接口,实现所述openflow控制器与所述路由逻辑单元之间的通信匹配过程;所述路由逻辑单元用以实现其作为路由器组件的网络层和数据链路层功能,即用以运行选路协议,生成各自对应的路由表并完成数据链路的逻辑控制。
优选的,所述路由控制面的路由逻辑单元仅用以实现其作为路由器组件的网络层功能,即用以运行选路协议,生成各自对应的路由表;同时通过所述openflow控制器提供北向接口,采用独立的数据链路控制模块完成数据链路的逻辑控制。
优选的,所述路由数据面采用openflow交换机实现。
进一步的,所述通信仲裁单元采用预设用以控制各路由控制面以及路由数据面之间的上下行数据通信过程的通信仲裁规则的openflow服务器实现。
所述的通信仲裁规则包括:在路由控制面向路由数据面下发流表的下行数据通信过程中,基于各路由控制面输出的控制面数据流表对应的流表项匹配域内容,分析各流表项对应的动作内容,若各流表项的动作内容一致,则将生效时间最早的流表项作为数据面数据流表向数据面输出;若各流表项的动作内容不一致,则选择出动作内容一致个数最多的动作内容作为目标动作内容,并将与所述目标动作内容对应的且生效时间最早的流表项作为数据面数据流表向数据面输出。
进一步的,所述通信仲裁规则还包括报警纠错机制,即在发现各流表项的动作内容不一致时,将与目标动作内容不一致的流表项所对应的路由控制面进行报警标识,将对应的路由控制面标识为异常路由控制面。
下面通过具体功能实例,对上述技术内容做进一步说明:
如图9所示的部署情况示例为例,展示在路由控制面3(路由控制面此处称为变体,下述也均统一称为变体)由于某种原因产生错误路由表的情况下,所述控制系统或者方法对应的处理过程如下。在此结构中,传统路由器A的接口1上可以到达10.0.0.0/8网络。
以下为功能过程:
第一部分:在变体3的异常发生前
各个变体的路由逻辑单元的路由表
各个变体的Openflow适配器把路由表转为Openflow流表
通信仲裁单元的流表仲裁过程:
匹配域内容key=ddr:10.0.0.0&&mask:255.0.0.0
动作内容action1=action2=action3=O:port1
生效时间createtime2<createtime1<createtime3
由同一key分别在3个变体流表中各检索出一个表项,且3个流表项的动作都相同,按照通信仲裁规则选定最早的一项,即变体2的流表项作为执行流表项。
第二部分:在变体3的异常发生后,对应的其路由表现发生错误的变化
各个变体的路由逻辑单元的路由表
各个变体的Openflow适配器把路由表转为Openflow流表
通信仲裁单元的流表仲裁过程:
匹配域内容key=ddr:10.0.0.0&&mask:255.0.0.0
动作内容action1==action2!=action3
生效时间createtime2<createtime1
由同一key分别在3个变体流表中各检索出一个表项,3个流表项中
变体1和变体2相同,且不同于变体3,且变体2早于变体1,按照通信仲裁规则选定多数相同中的最早的一项,即变体2的流表项作为执行流表项。
总结:对照异常发生前后,在变体3流表发生异常变化以后,执行流表项都是取自变体2的流表项,未发生变化。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
机译: 基于地图的无人机飞行和控制方法的实时路由控制系统
机译: 基于TCP,路由,通信控制方法和程序的通信控制系统
机译: 一种基于模糊逻辑定时确定操纵变量的控制方法。