CN113411211A - 一种主从集群控制方法、装置及系统 - Google Patents
一种主从集群控制方法、装置及系统 Download PDFInfo
- Publication number
- CN113411211A CN113411211A CN202110668156.7A CN202110668156A CN113411211A CN 113411211 A CN113411211 A CN 113411211A CN 202110668156 A CN202110668156 A CN 202110668156A CN 113411211 A CN113411211 A CN 113411211A
- Authority
- CN
- China
- Prior art keywords
- slave
- plane
- controller
- network
- master
- 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
Images
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/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0668—Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种主从集群控制方法,应用于主从集群控制系统,主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,该控制方法包括:获取数据平面网络事件中的数据包,对所述数据包进行匹配;在匹配失败的情况下,将网络事件发送给从控制器平面中的从控制器进行partial tree搜索;若搜索失败,将网络事件发送给主控制器平面中的主控制器执行网络策略。上述过程,网络事件的处理采用数据平面、从控制器平面和主控制器平面逐层递进的方式进行处理,提高了网络事件的处理速度,降低网络事件的响应延迟,避免了集中式控制的软件定义网络中一旦控制平面处于崩溃状态,整个网络将陷入瘫痪状态的问题。
Description
技术领域
本发明涉及软件定义网络技术领域,尤其涉及一种主从集群控制方法、装置及系统。
背景技术
软件定义网络(Software-defined networking,以下简称SDN)是一种新型网络技术。与传统网络不同的是,SDN将数据平面和控制平面解耦,数据平面在网络中只负责匹配转发等基本功能。这种分离使得管理员能够有效的利用网络资源,简化资源的配置,同时集中式的控制平面具有全网视图,使得网络具有可编程性,可以动态的优化资源以及进行流管理。
控制平面和数据平面之间的交互通过一种标准的解耦合协议来进行。控制平面是应用平面和数据平面之间的桥梁。针对应用平面中用户差异化服务需求,控制平面需要将复杂抽象的服务策略转换成正确的指令集并部署到实际的数据平面中。这就要求控制平面需要具备超强的计算能力以及和底层数据平面的交互能力。针对数据平面而言,随着智能终端和云服务的广泛应用,网络规模和流量的不断扩大,单一的、封闭的控制平面无法保证网络的性能和可靠性。集中式控制的软件定义网络中一旦控制平面处于崩溃状态,整个网络将陷入瘫痪状态。
发明内容
有鉴于此,本发明提供了一种主从集群控制方法、装置及系统,用以解决现有技术中针对数据平面而言,随着智能终端和云服务的广泛应用,网络规模和流量的不断扩大,单一的、封闭的控制平面无法保证网络的性能和可靠性。集中式控制的软件定义网络中一旦控制平面处于崩溃状态,整个网络将陷入瘫痪状态的问题。具体方案如下:
一种主从集群控制方法,应用于主从集群控制系统,所述主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,所述控制方法包括:
获取所述数据平面网络事件中的数据包,对所述数据包进行匹配;
在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索;
若搜索失败,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略。
上述的方法,可选的,获取所述数据平面网络事件中的数据包,对所述数据包进行匹配,包括:
识别所述数据包的类型;
在所述数据包为ARP数据包的情况下,将所述网络事件发送给从控制平面,以令所述从控制平面获取所述ARP数据包中的主机信息,所述主机信息包括:本机的IP地址、本机的MAC地址、交换机和目标主机的IP地址;
在所述数据包为通信数据包的情况下,匹配默认流表。
上述的方法,可选的,在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索,包括:
运行时对所述网络事件进行拦截;
进行partial tree搜索,判断所述从控制器中是否存在与所述网络事件匹配的partial tree。
上述的方法,可选的,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略,包括:
在接收到所述网络事件的情况下,执行所述网络策略;
将运行过程产生的trace进行增量汇总,生成Trace tree;
接收所述从控制器中的预设标识,基于所述预设标识将所述Trace tree拆分成partial tree下发到对应的从控制器中。
上述的方法,可选的,将所述网络事件发送给从控制器进行partial tree搜索,还包括:
若搜索成功,将对应的partial tree转换成对应的流表;
将所述流表下发至所述数据平面。
一种主从集群控制装置,应用于主从集群控制系统,所述主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,所述控制装置包括:
匹配模块,用于获取所述数据平面网络事件中的数据包,对所述数据包进行匹配;
搜索模块,用于在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索;
执行模块,用于若搜索失败,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略。
上述的装置,可选的,所述匹配模块包括:
识别单元,用于识别所述数据包的类型;
获取单元,用于在所述数据包为ARP数据包的情况下,将所述网络事件发送给从控制平面,以令所述从控制平面获取所述ARP数据包中的主机信息,所述主机信息包括:本机的IP地址、本机的MAC地址、交换机和目标主机的IP地址;
匹配单元,用于在所述数据包为通信数据包的情况下,匹配默认流表。
上述的装置,可选的,所述搜索模块包括:
拦截单元,用于运行时对所述网络事件进行拦截;
判断单元,用于进行partial tree搜索,判断所述从控制器中是否存在与所述网络事件匹配的partial tree。
上述的装置,可选的,所述执行模块包括:
执行单元,用于在接收到所述网络事件的情况下,执行所述网络策略;
汇总单元,用于将运行过程产生的trace进行增量汇总,生成Trace tree;
拆分和下发单元,用于接收所述从控制器中的预设标识,基于所述预设标识将所述Trace tree拆分成partial tree下发到对应的从控制器中。
一种主从集群控制系统,包括:主控制器平面、从控制器平面和数据平面,其中,
所述主控制器平面包括主控制器,用于对网络策略的翻译,以Trace Tree的中间状态进行表示和维护,并将所述Trace Tree拆分成partial tree下发到从控制器中;
所述从控制器平面包括至少一个从控制器,用于当所述数据平面产生的网络事件到达的情况下,进行partial tree搜索;
所述数据平面包括至少一个域,每个域内包括至少一个交换机,所述域由所述控制器中对应的从控制器管理,用于产生网络事件。
与现有技术相比,本发明包括以下优点:
本发明公开了一种主从集群控制方法,应用于主从集群控制系统,主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,该控制方法包括:获取数据平面网络事件中的数据包,对所述数据包进行匹配;在匹配失败的情况下,将网络事件发送给从控制器平面中的从控制器进行partial tree搜索;若搜索失败,将网络事件发送给主控制器平面中的主控制器执行网络策略。上述过程,网络事件的处理采用数据平面、从控制器平面和主控制器平面逐层递进的方式进行处理,提高了网络事件的处理速度,降低网络事件的响应延迟,避免了集中式控制的软件定义网络中一旦控制平面处于崩溃状态,整个网络将陷入瘫痪状态的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例公开的一种主从集群控制系统示意图;
图2为本发明实施例公开的一种核心组件中的中间状态trace tree拆分成partical tree下发到对应的本地控制器中的示意图;
图3为本发明实施例公开的一种从控制器的运行时系统处理网络事件的示意图;
图4为本发明提供的一种用于链路发现的LLDP数据包格式结构图;
图5为本发明实施例公开的一种使用LLDP协议进行链路发现的过程示意图;
图6为本发明实施例公开的一种主从集群控制方法流程图;
图7为本发明实施例公开的一种从控制器主机发现的流程图;
图8为本发明实施例公开的一种主从集群控制装置结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明公开了一种主从集群控制方法、装置及系统,应用于对网络事件的处理过程中,为缓解集中式控制的软件定义网络所存在问题,当前主流的网络架构分为分布式以及分层的网络架构。分布式网络架构中如HyperFlow、Onix、ONOS等分布式控制器来解决可扩展问题,但是分布式控制器带来了全局一致性的开销,使得网络性能开销增大。分层的网络架构中如Kandoo、Orion等。Kandoo采用两层的网络架构设计,在本地和全局控制器中执行网络策略,但是由于Kandoo Extension控制接口的存在,Kandoo并不能做到对现有的OpenFlow应用完全透明。而且本地控制器以及全局控制器之间的分工与协作关系并没有明确的定义,这会影响Kandoo应用的开发以及维护。Orion是一个多层次网络架构,可以将SDN控制平面的计算复杂性增长从超线性降低到线性。Orion可以看成一个大型SDN网络的宏观架构,而组成这个大型网络的各个网络则可以是其他各种控制框架。本发明实施例中提供了一种主从集群控制系统,所述控制系统的示意图如图1所示,所述系统通过采用分层的主从网络架构包括全局主控制器和本地从控制器,将大规模的数据平面进行分域管理,并设计一种运行时系统下沉机制来解决网络规模可扩展性问题,所述控制系统将数据平面分域,每个域内的交换机组成部分网络视图,交由一个域内从控制器管理,同时上层控制器维护全局网络视图,将运行时系统下沉到从控制平面中的从控制器。将网络策略的中间状态下发到对应的从控制器运行时系统中,从控制器拦截大部分网络事件,对于无法处理的网络事件上报到上层主控制器处理,使得整体网络负载被分发给多个从控制器处理,优化单个控制器节点性能,提高网络事件响应效率。
所述控制系统的示意图如图1所示,包括:主控制器平面、从控制器平面和数据平面,其中,
所述主控制器平面包括主控制器,用于对网络策略的翻译,以Trace Tree的中间状态进行表示和维护,并将所述Trace Tree拆分成partial tree下发到从控制器中;
本发明实施例中,所述主控制平面中包括主控制器,位于主控制器中的核心组件,主要用于网络策略的翻译,以Trace Tree的中间状态进行表示和维护,参考图2,图2示出了本发明实施例提供的一种核心组件中的中间状态trace tree拆分成partical tree下发到对应的本地控制器中的示意图,包含以下步骤:
S11:接受用户输入(头部指定)的网络策略以及协议自定义脚本,其中,所述网络策略表示常见的网络应用,比如根据IP地址进行转发的路由策略,只允许拥有特定某个端口或者IP地址数据包通过的防火墙策略,再比如修改目的IP地址的负载均衡策略等。
S12:当主控制器接收到网络事件时,执行网络策略,生成中间状态trace tree,trace tree中的节点信息包含网络策略多个数据包的匹配域以及执行动作。
S13:针对系统运行过程中产生的所有trace进行增量汇聚成一颗具有状态节点的trace tree
S14:同时根据本地控制器的特殊标示,将trace tree进行拆分成partial tree,下发到对应的本地从控制器中,其中,所述特殊表示为Tracetree的根节点,该根节点是一个特殊的节点,包含了SlaveContrllerId与子树的对应关系。在拆分时,根据子控制器的SlaveControllerId将对应的子树即partial tree,下发到对应的从控制器中,例如,从控制器1、从控制器2和从控制器3中。
所述从控制器平面包括至少一个从控制器,用于当所述数据平面产生的网络事件到达的情况下,进行partial tree搜索;
本发明实施例中,从控制器平面包括至少一个从控制器,于当所述数据平面产生的网络事件到达的情况下,进行partial tree搜索,具体的搜索过程参考图3,图3示出了本发明实施例提供的一种从控制器的运行时系统处理网络事件的示意图。包含以下步骤:
S21:当数据平面产生的网络事件到达从控制器时,运行时系统对其进行拦截。
S22:基于转发流水线进行partial tree的搜索,如果命中,即以前有对此类数据包的处理操作。执行S23,否则执行S24。
S23:将对应的partial tree转换成对应的流表下发到数据平面对应的可编程交换机中。
S24:将此网络事件上交到主控制器执行全局的网络策,实现策略转化。
所述数据平面包括至少一个域,每个域内包括至少一个交换机,所述域由所述控制器中对应的从控制器管理,用于产生网络事件。
本发明实施例中,将所述数据平面分域,每个域内的交换机组成部分网络视图,交由一个域内从控制器管理,同时上层控制器维护全局网络视图,所述数据平面用于产生网络事件。
本发明实施例中,所述控制系统中还包括:链路管理模块,其中,所述链路管理模块通过链路层发现协议(以下简称LLDP)获得域内链路信息。为了获得域间链路信息,从控制器将其本地标识FingerPrint嵌入到LLDP中,将LLDP数据包从所有交换机的边缘端口发送出去。当LLDP数据包到达另一个域的边缘交换机时,交换机将LLDP数据包封装到Packet-In消息中,并将消息发送到其本地从控制器。然后,本地从控制器解封装Packet-In消息并从LLDP数据包中获取包含本地标识的TLV消息。其中,TLV中的T表示Type,L表示Length,V表示Value,LLDP数据包中的数据单元被封装为TLV。其中,所述数据单元包括原交换机的设备ID,原端口号,以及从控制器的SlaveControllerID,如果LLDP消息中的本地标识字段FingerPrint的值与自己的本地标识不同,本地从控制器只需标记接受Packet-In消息的交换机端口是其域的边缘交换机端口,然后将此域间LLDP消息封装并上报到上层主控制器。
进一步的,参考图4,图4示出了本发明实施例提供的一种用于链路发现的LLDP数据包格式结构图。其中,LLDP是二层网络协议,其中LLDPDU是LLDP的有效部分,包含了需要传输的消息,LLDPDU中使用Type+Length+Value(TLV)为单元的消息格式进行填充,每一个TLV都代表了一个基本信息,所述LLDP数据包中
Dst_Mac:以太网头部的目的Mac地址字段,这里为固定的组播MAC地址0x0180-C200-000E,占6bytes;
Src_Mac:以太网头部的源Mac地址字段,这里为交换机的MAC地址,占6bytes;
EtherType:标识下一层协议字段,这里0x88cc来标识下一层协议是LLDP,占2bytes;
LLDPDU:LLDP的数据单元部分,Src_DPID和SrcPort表示原交换机的dpid和发出这个lldp数据包的原交换机端口,SlaveControllerID是本地从控制器的标识(原交换机相连的控制器)。最大长度为1500bytes;
FCS:帧检验序列,占4bytes;
参考图5,图5示出了本发明实施例提供的一种使用LLDP协议进行链路发现的过程示意图。其中,sw1、sw2、sw3和sw4分别代表交换机,链路发现过程包含以下步骤:
S31:从控制器将端口号作为TLV填充到LLDP中。
S32:为了区分区域内和区域间的链路信息,将从控制器的唯一表示SlaveControllerId作为一个新的TLV填充到LLDP中,
S33:通过Packet_Out消息将LLDP数据包从控制器所管理的交换机端口转发出去。
S34:当交换机收到LLDP数据包时,根据默认流表将数据包Packet_In上报到从控制器中。
S35:从控制器对LLDP消息进行解析,提取出SlaveControllerId,如果此SlaveControllerID与当前从控制器的SlaveControlleId相同则执行S36,否则执行S37。
S36:说明此LLDP消息表示的链路信息为子域内部的链路信息,本地控制器解析此LLDP数据包获取链路信息。
S37:说明此LLDP消息表示的是域间链路信息,从前从控制器不进行处理,上报到主控制器中,标记发送Packet_In消息的的交换机是区域中的边缘交换机。
综上所述,本发明实施例提供的这种基于主从模式的LLDP链路发现方式,可以区分出域内链路信息和域间路由信息,从而从控制器维护域内实际拓扑,主控制器维护更高一层的抽象逻辑拓扑,降低了主控制器的负载。
进一步的,本发明实施例中,所述控制系统还包括拓扑管理模块,其中,拓扑管理模块包括:①从控制器只需维护域内拓扑,通过链路管理获得域内拓扑链路信息,其中,所述拓扑链路信息指的是底层网络中有哪些交换机,以及交换机之间的连接情况。②主控制器根据域间LLDP消息能够获取从控制器域间的拓扑信息,将从控制器抽象成一个大交换机,大交换机的端口信息由此从控制器中的边缘交换机端口组成。从而从控制器维护域内实际拓扑,主控制器维护更高一层的抽象逻辑拓扑。
综上所述,本发明实施例提供的主从集群控制系统,通过分层的主从网络架构,将数据平面通过从控制器进行分域管理,并将主控制器中的运行时系统通过一种中间结果表示partial tree来下沉到从控制器中,从而将网络负载从单一的控制器中卸载到不同的从控制器中,提高了网络事件的处理速度,降低事件的响应延迟,能够支持大规模高并发网络。
基于上述的控制系统,本发明提供了一种主从集群控制方法,所述控制方法应用于所述主从集群控制系统,所述主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,所述控制方法的执行流程如图6所示,包括步骤:
S101、获取所述数据平面网络事件中的数据包,对所述数据包进行匹配;
本发明实施例中,所述数据包的类型为ARP数据包或者其它任意格式的通信数据包,在匹配所述数据包的过程中,首先需要识别所述数据的类型,在所述数据包类型的ARP数据包的情况下,将所述ARP数据包发送给所述从控制器平面,令所述从控制器解析所述ARP数据包,获取所述ARP数据包中的主机信息,所述主机信息包括:本机的IP地址、本机的MAC地址、交换机和目标主机的IP地址。
进一步的,为了避免广播风暴,本发明实施例中采用以下机制:①针对域内交换机的端口来说,如果端口连接的物理实体是交换机,不必进行ARP数据包的转发。②如果交换机端口连接的是其他域,即此端口是域边界交换机端口,则将本地标识FingerPrint嵌入到ARP数据包中。因此,当本地从控制接收到ARP Request数据包时,首先检查ARP数据包中是否包含本域的本地标识,如果有,则表明网络拓扑存在环路,直接丢弃。如果没有,从本地拓扑中查询是否包含目的主机,如果存在目的主机,则构造ARP Reply消息,其中,针对ARPReply消息,同一局域网中的一台主机要和另一台主机进行直接通信,必须使用ARP协议来获得目标主机的MAC地址,源主机首先发送一个ARP Request消息(消息中主要信息为本机的IP地址和MAC地址以及目的主机IP地址)到网络中来获得目的IP地址主机对应的MAC地址。而目标主机收到该消息后,会回送一个ARP Reply消息来告知源主机请求的IP地址对应的MAC地址是多少。
由于控制器具有全局的网络拓扑,因此若拓扑中有目标主机,控制器可以直接回复ARP Reply消息给源主机,否则,需要洪泛到目标主机。目标主机收到消息后再回复ARPReply消息。将ARP Reply消息从接收端口进行转发。如果没有则将数据包采用上述机制进行广播。本地从控制器感知新的主机或者主机信息改变时,同时上报对应的消息给上层主控制器,完成全局拓扑主机的更新。
参考图7,图7示出了本发明实施例提供的一种从控制器主机发现的流程图。主要包含以下步骤:
S41:首先判断ARP数据包中是否含有从控制器标识,若没有执行S42,否则执行S47。
S42:表明此ARP包是由本域内的主机产生,判断源主机是否存在,若不存在则记录当前主机。
S43:如果目的主机存在且ARP数据包类型为arp_request则执行S44,如果目的主机存在且ARP数据包类型为arp_reply执行S45,如果目的主机不存在则执行S46。
S44:将数据包从目的主机端口发出,执行S413。
S45:构造arp_reply消息从源主机端口发出。执行S413。
S46:镶嵌当前从控制器ID并将数据包从所有端口发出。执行S413。
S47:判断是否包含当前从控制器ID,若包含则执行S48,否则执行S49.
S48:表示此ARP消息已经被处理过,丢弃此数据包,执行S413。
S49:判断目的主机是否存在,若存在且ARP消息类型为arp_request执行S410,若存在且ARP消息类型为arp_reply则执行S411,否则执行S412。
S410:构造arp_reply消息并镶嵌从控制器ID从所有端口发出。执行S413。
S411:将数据包从目的主机端口发出,执行S413。
S412:镶嵌当前从控制器ID到数据包并从所有端口发出。执行S413。
S413:结束。
在所述数据包为其它任意格式的通信数据包的情况下,说明目标主机的MAC地址已知,交换机匹配默认流表,默认流表即是交换机中的第一张流表,流表是由不同的匹配域组成,匹配域具体有哪些根据应用不同而不同。常用为以太网头部的ethertype字段。处理过程为依次匹配流表中的每一项,如果匹配到,则按照该流表项对应的规则处理,匹配不到则通过PacketIn消息将所述数据包上报到从控制器平面中去。
S102、在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索;
本发明实施例中,在与所述默认流表匹配失败的情况,将所述网络事件发送给从控制器中进行partial tree搜索,具体的搜索过程如S21-S34所述,在此不再赘述。
S103、若搜索失败,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略。
本发明实施例中,若匹配失败的情况下,所述网络事件发送给所述主控制器平面中的主控制器执行网络策略,具体的处理过程如S11-S14所述,在此不再赘述。
进一步的,上述的处理过程中从控制器和主控制器两者需要进行通讯,具体的通讯过程如下:
主控制器和从控制器之间的通信信道通过TCP连接建立。它用于发送请求和分发应答。①发送请求,从控制器作为客户端,主控制器作为服务端。主控制器使用异步套接字构建通信信道。异步套接字在初始化期间创建一个线程池,并使用线程轮询来查看是否有新消息到来。当从控制器向其连接的主控制器发送消息时,服务器中的套接字将消息提供给线程池。多个线程轮询消息队列,当有不同的消息到达调用不同的处理函数来处理该消息,比如PacketIn消息则需要执行网络策略,如果拓扑更新消息则根据此消息更新主控器中维护的拓扑信息。因为采用的是线程池,因此这些消息的处理在多个线程中并行的,由此加快消息处理速度。②分发应答。主控制器通过与从控制器建立的TCP连接分发应答。主要用于响应从控制器的请求以及将数据包对应的网络策略分发到对应的从控制器中。通信信道中主要包括以下消息类型:Hello,确认版本信息。Feature Request以及Reply消息主要用于分配本地控制器标识。Switch Report、Host Report、Link Report、LLDP Report用于汇报拓扑相关信息。Packet-In上报本地控制器无法处理的网络事件。FDT_Mod用于下发网络事件处理策略。
本发明公开了一种主从集群控制方法,应用于主从集群控制系统,主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,该控制方法包括:获取数据平面网络事件中的数据包,对所述数据包进行匹配;在匹配失败的情况下,将网络事件发送给从控制器平面中的从控制器进行partial tree搜索;若搜索失败,将网络事件发送给主控制器平面中的主控制器执行网络策略。上述过程,网络事件的处理采用数据平面、从控制器平面和主控制器平面逐层递进的方式进行处理,提高了网络事件的处理速度,降低网络事件的响应延迟,避免了集中式控制的软件定义网络中一旦控制平面处于崩溃状态,整个网络将陷入瘫痪状态的问题。
进一步的,所述控制方法中主控制器中的运行时核心组件将网络策略转化成一种中间状态表达trace tree,并将中间状态进行拆分成partial tree,根据从控制器唯一标识将partial tree下发到对应的从控制器。从控制器中的运行时系统维护partial tree,本地网络事件通过触发partial tree的匹配规则,产生流表下发到数据平面,从而能够拦截大量的本地网络事件,将网络负载从单一的控制器中卸载到不同的从控制器中,提高网络事件的处理速度,降低事件的响应延迟。
基于上述的一种主从集群控制方法,本发明实施例中还提供了一种主从集群控制装置,所述控制装置的结构框图如图8所示,所述控制装置应用于主从集群控制系统,所述主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,所述控制装置包括:
匹配模块201、搜索模块202和执行模块203。
其中,
所述匹配模块201,用于获取所述数据平面网络事件中的数据包,对所述数据包进行匹配;
所述搜索模块202,用于在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partialtree搜索;
所述执行模块203,用于若搜索失败,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略。
本发明公开了一种主从集群控制装置,应用于主从集群控制系统,主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,该控制方法包括:获取数据平面网络事件中的数据包,对所述数据包进行匹配;在匹配失败的情况下,将网络事件发送给从控制器平面中的从控制器进行partial tree搜索;若搜索失败,将网络事件发送给主控制器平面中的主控制器执行网络策略。上述过程,网络事件的处理采用数据平面、从控制器平面和主控制器平面逐层递进的方式进行处理,提高了网络事件的处理速度,降低网络事件的响应延迟,避免了集中式控制的软件定义网络中一旦控制平面处于崩溃状态,整个网络将陷入瘫痪状态的问题。
本发明实施例中,所述匹配模块201包括:
识别单元204、获取单元205和匹配单元206。
其中,
所述识别单元204,用于识别所述数据包的类型;
所述获取单元205,用于在所述数据包为ARP数据包的情况下,将所述网络事件发送给从控制平面,以令所述从控制平面获取所述ARP数据包中的主机信息,所述主机信息包括:本机的IP地址、本机的MAC地址、交换机和目标主机的IP地址;
所述匹配单元206,用于在所述数据包为通信数据包的情况下,匹配默认流表。
本发明实施例中,所述搜索模块包括202:
拦截单元207和判断单元208。
其中,
所述拦截单元207,用于运行时对所述网络事件进行拦截;
所述判断单元208,用于进行partialtree搜索,判断所述从控制器中是否存在与所述网络事件匹配的partial tree。
本发明实施例中,所述执行模块203包括:
执行单元209、汇总单元210和拆分和下发单元211。
其中,
所述执行单元209,用于在接收到所述网络事件的情况下,执行所述网络策略;
所述汇总单元210,用于将运行过程产生的trace进行增量汇总,生成Trace tree;
所述拆分和下发单元211,用于接收所述从控制器中的预设标识,基于所述预设标识将所述Trace tree拆分成partial tree下发到对应的从控制器中。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种主从集群控制方法、装置及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种主从集群控制方法,其特征在于,应用于主从集群控制系统,所述主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,所述控制方法包括:
获取所述数据平面网络事件中的数据包,对所述数据包进行匹配;
在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索;
若搜索失败,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略。
2.根据权利要求1所述的方法,其特征在于,获取所述数据平面网络事件中的数据包,对所述数据包进行匹配,包括:
识别所述数据包的类型;
在所述数据包为ARP数据包的情况下,将所述网络事件发送给从控制平面,以令所述从控制平面获取所述ARP数据包中的主机信息,所述主机信息包括:本机的IP地址、本机的MAC地址、交换机和目标主机的IP地址;
在所述数据包为通信数据包的情况下,匹配默认流表。
3.根据权利要求1所述的方法,其特征在于,在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索,包括:
运行时对所述网络事件进行拦截;
进行partial tree搜索,判断所述从控制器中是否存在与所述网络事件匹配的partial tree。
4.根据权利要求1所述的方法,其特征在于,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略,包括:
在接收到所述网络事件的情况下,执行所述网络策略;
将运行过程产生的trace进行增量汇总,生成Trace tree;
接收所述从控制器中的预设标识,基于所述预设标识将所述Trace tree拆分成partial tree下发到对应的从控制器中。
5.根据权利要求1所述的方法,其特征在于,将所述网络事件发送给从控制器进行partial tree搜索,还包括:
若搜索成功,将对应的partial tree转换成对应的流表;
将所述流表下发至所述数据平面。
6.一种主从集群控制装置,其特征在于,应用于主从集群控制系统,所述主从集群控制系统包括:数据平面、从控制器平面和主控制器平面,所述控制装置包括:
匹配模块,用于获取所述数据平面网络事件中的数据包,对所述数据包进行匹配;
搜索模块,用于在匹配失败的情况下,将所述网络事件发送给所述从控制器平面中的从控制器进行partial tree搜索;
执行模块,用于若搜索失败,将所述网络事件发送给所述主控制器平面中的主控制器执行网络策略。
7.根据权利要求6所述的装置,其特征在于,所述匹配模块包括:
识别单元,用于识别所述数据包的类型;
获取单元,用于在所述数据包为ARP数据包的情况下,将所述网络事件发送给从控制平面,以令所述从控制平面获取所述ARP数据包中的主机信息,所述主机信息包括:本机的IP地址、本机的MAC地址、交换机和目标主机的IP地址;
匹配单元,用于在所述数据包为通信数据包的情况下,匹配默认流表。
8.根据权利要求6所述的装置,其特征在于,所述搜索模块包括:
拦截单元,用于运行时对所述网络事件进行拦截;
判断单元,用于进行partial tree搜索,判断所述从控制器中是否存在与所述网络事件匹配的partial tree。
9.根据权利要求6所述的装置,其特征在于,所述执行模块包括:
执行单元,用于在接收到所述网络事件的情况下,执行所述网络策略;
汇总单元,用于将运行过程产生的trace进行增量汇总,生成Trace tree;
拆分和下发单元,用于接收所述从控制器中的预设标识,基于所述预设标识将所述Trace tree拆分成partial tree下发到对应的从控制器中。
10.一种主从集群控制系统,其特征在于,包括:主控制器平面、从控制器平面和数据平面,其中,
所述主控制器平面包括主控制器,用于对网络策略的翻译,以Trace Tree的中间状态进行表示和维护,并将所述Trace Tree拆分成partial tree下发到从控制器中;
所述从控制器平面包括至少一个从控制器,用于当所述数据平面产生的网络事件到达的情况下,进行partial tree搜索;
所述数据平面包括至少一个域,每个域内包括至少一个交换机,所述域由所述控制器中对应的从控制器管理,用于产生网络事件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110668156.7A CN113411211B (zh) | 2021-06-16 | 2021-06-16 | 一种主从集群控制方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110668156.7A CN113411211B (zh) | 2021-06-16 | 2021-06-16 | 一种主从集群控制方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113411211A true CN113411211A (zh) | 2021-09-17 |
CN113411211B CN113411211B (zh) | 2022-09-30 |
Family
ID=77684548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110668156.7A Active CN113411211B (zh) | 2021-06-16 | 2021-06-16 | 一种主从集群控制方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113411211B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158916A (zh) * | 2013-05-13 | 2014-11-19 | 中兴通讯股份有限公司 | 设备接入网络的方法和装置 |
CN104754053A (zh) * | 2015-04-01 | 2015-07-01 | 清华大学深圳研究生院 | 一种分布式软件定义网络及在其中动态控制控制器的方法 |
CN104901958A (zh) * | 2015-05-21 | 2015-09-09 | 大连理工大学 | 一种用户驱动的sdn网络集中式访问控制方法 |
CN105119840A (zh) * | 2015-09-01 | 2015-12-02 | 华东师范大学 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
CN105340224A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 网络控制方法和装置 |
CN105847146A (zh) * | 2016-03-11 | 2016-08-10 | 南京航空航天大学 | 一种提高层次分布式sdn控制平面路由效率的机制 |
CN106713177A (zh) * | 2016-11-21 | 2017-05-24 | 华南理工大学 | 一种多控制器的wmSDN组网方法 |
US20180205790A1 (en) * | 2017-01-13 | 2018-07-19 | Hewlett Packard Enterprise Development Lp | Distributed data structure in a software defined networking environment |
-
2021
- 2021-06-16 CN CN202110668156.7A patent/CN113411211B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104158916A (zh) * | 2013-05-13 | 2014-11-19 | 中兴通讯股份有限公司 | 设备接入网络的方法和装置 |
CN105340224A (zh) * | 2014-05-30 | 2016-02-17 | 华为技术有限公司 | 网络控制方法和装置 |
CN104754053A (zh) * | 2015-04-01 | 2015-07-01 | 清华大学深圳研究生院 | 一种分布式软件定义网络及在其中动态控制控制器的方法 |
CN104901958A (zh) * | 2015-05-21 | 2015-09-09 | 大连理工大学 | 一种用户驱动的sdn网络集中式访问控制方法 |
CN105119840A (zh) * | 2015-09-01 | 2015-12-02 | 华东师范大学 | 基于sdn使用胖树拓扑结构的数据中心网络负载均衡方法 |
CN105847146A (zh) * | 2016-03-11 | 2016-08-10 | 南京航空航天大学 | 一种提高层次分布式sdn控制平面路由效率的机制 |
CN106713177A (zh) * | 2016-11-21 | 2017-05-24 | 华南理工大学 | 一种多控制器的wmSDN组网方法 |
US20180205790A1 (en) * | 2017-01-13 | 2018-07-19 | Hewlett Packard Enterprise Development Lp | Distributed data structure in a software defined networking environment |
Non-Patent Citations (1)
Title |
---|
田野等: "数据中心网络中一种半集中式SDN路由策略", 《计算机与现代化》 * |
Also Published As
Publication number | Publication date |
---|---|
CN113411211B (zh) | 2022-09-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11283707B2 (en) | Segment routing with fast reroute for container networking | |
US11150963B2 (en) | Remote smart NIC-based service acceleration | |
CN106936777B (zh) | 基于OpenFlow的云计算分布式网络实现方法、系统 | |
CN108833166B (zh) | 边缘云报文转发方法及系统、网络报文转发方法及系统 | |
CN110535760B (zh) | 聚合接口的转发检测 | |
CN109716717A (zh) | 从软件定义的网络控制器管理虚拟端口信道交换机对等体 | |
US9331910B2 (en) | Methods and systems for automatic generation of routing configuration files | |
KR20210095890A (ko) | 세분화된 네트워크 엘리먼트를 포함하는 로직 라우터 | |
US20160241467A1 (en) | Method and system to optimize packet exchange between the control and data plane in a software defined network | |
CN107733795B (zh) | 以太网虚拟私有网络evpn与公网互通方法及其装置 | |
RU2528149C1 (ru) | Способ коммутации туннеля и система сервисов многопротокольной коммутации по меткам | |
US10164845B2 (en) | Network service aware routers, and applications thereof | |
US9467374B2 (en) | Supporting multiple IEC-101/IEC-104 masters on an IEC-101/IEC-104 translation gateway | |
CN111147372B (zh) | 下行报文发送、转发方法和装置 | |
WO2017067577A1 (en) | Direct replying actions in sdn switches | |
CN110650092A (zh) | 一种数据处理的方法和装置 | |
CN113411211B (zh) | 一种主从集群控制方法、装置及系统 | |
CN110300073A (zh) | 级联端口的目标选择方法、聚合装置及存储介质 | |
WO2022166465A1 (zh) | 一种报文处理方法及相关装置 | |
CN108023801B (zh) | 异构网络的资源调度方法及系统 | |
KR20160065010A (ko) | Sdn 환경에서 서비스 기능 체이닝을 위한 oam 메시지 전송 방법 및 시스템 | |
EP1678874B1 (en) | Method and apparatus for performing routing operations in communications network | |
CN115134232B (zh) | 一种虚拟路由器管理方法、设备、系统和存储介质 | |
Li et al. | ForSA-A new software defined network architecture based on forCES | |
CN116158062A (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 |