CN105471954B - 基于sdn网络的分布式控制系统与用户流量优化方法 - Google Patents
基于sdn网络的分布式控制系统与用户流量优化方法 Download PDFInfo
- Publication number
- CN105471954B CN105471954B CN201410459460.0A CN201410459460A CN105471954B CN 105471954 B CN105471954 B CN 105471954B CN 201410459460 A CN201410459460 A CN 201410459460A CN 105471954 B CN105471954 B CN 105471954B
- Authority
- CN
- China
- Prior art keywords
- controller
- flow table
- sdn
- sdn switch
- access
- 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.)
- Active
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭露一种基于SDN网络的分布式控制系统与用户流量优化方法。所述分布式控制系统包括分层的多个控制器,其包括位于顶层的根控制器、位于中间层的区域控制器、以及位于最底层的接入控制器,所述SDN网络包括多个区域,每一所述区域包括有与所述根控制器通讯连接的所述区域控制器、与所述区域控制器通讯连接的所述接入控制器、以及与所述接入控制器通讯连接的第一SDN交换机,其中,所述根控制器负责全局控制,所述区域控制器负责区域控制,所述接入控制器负责数据接入,所述第一SDN交换机根据查询本地流表来转发数据包。
Description
技术领域
本发明涉及一种SDN网络的控制器,特别是涉及一种基于SDN网络的分布式控制系统。
背景技术
SDN网络由SDN交换机和控制器组成,SDN交换机负责数据包的转发,控制器负责数据的控制层面,SDN交换机和控制器之间使用openflow协议进行通信。
OpenFlow技术作为SDN的原型实现方式,代表了SDN控制转发分离架构的技术实现。随着SDN技术的逐渐发展和完善,严格来讲OpenFlow技术已成为SDN控制平面和数据平面之间多种通信协议之一,但实际上OpenFlow以其灵活性、规范性的优势已被看做SDN通信协议的标准,类似TCP/IP之于互联网的意义。
下面将描述SDN技术关键组件及架构:
OpenFlow最初作为SDN的原型提出来的时候,主要有交换机、控制器两部分组成。OpenFlow交换机(OpenFlow switch)是根据流表来转发数据包,代表着数据转发层面;控制器(Controller)是通过全网络视图来实现管控功能,其控制逻辑表示控制平面。OpenFlow交换机负责数据转发功能,主要技术细节有三部分组成:流表(Flow table)、安全信道(Secure channel)和OpenFlow协议(OpenFlow protocal),如图1所示。
每个OpenFlow交换机的处理单元由流表构成,每个流表由许多流表项组成,流表项则代表转发规则。进入交换机的数据包通过查询流表来取得对应的操作。为了提升流量的查询效率,目前的流表查询通过多级流表和流水线模式来获得对应操作。其中,流表项主要由匹配字段(match fields)、计数器(counters)和操作(instructions)等3部分组成。匹配字段的结构包含很多匹配项,涵盖了链路层、网络层和传输层大部分标识。随着OpenFlow规约的安全信道是连接OpenFlow交换机和控制器的接口,控制器通过这个接口,按照OpenFlow协议规定的格式来配置和管理OpenFlow交换机。目前,基于软件实现的OpenFlow交换机主要有两个版本,都部署于Linux系统:基于用户空间的软件OpenFlow交换机操作简单,便于修改,但性能较差;基于内核空间的软件OpenFlow交换机速度较快,同时提供了虚拟化功能,使得每个虚拟机能够通过多个虚拟网卡传输流量,但实际的修改和操作过程较复杂。
在控制器中,网络操作系统(network operating system,简称NOS)实现控制逻辑功能。NOX最早引入这个概念,是OpenFlow网络中对网络实现可编程控制的中央执行单元。实际上,这里的NOS指的是SDN概念中的控制软件,通过在NOS之上运行不同的应用程序能够实现不同的逻辑管控功能。在基于NOX的OpenFlow网络中,NOX是控制核心,OpenFlow交换机是操作实体,如图2所示。NOX通过维护网络视图(network view)来维护整个网络的基本信息,如拓扑、网络单元(即网元)和提供的服务,运行在NOX之上的应用程序通过调用网络视图中的全局数据,进而操作OpenFlow交换机来对整个网络进行管理和控制。从NOX控制器完成的功能来看,NOX实现了网络基本的管控功能,为OpenFlow网络提供了通用API的基础控制平台,但在性能上并没有太大优势,没有提供充分的可靠性和灵活性来满足可扩展的需求。不过,NOX在控制器设计方面实现得最早,目前已经作为OpenFlow网络控制器平台实现的基础和模板。
为了使控制器能够直接部署在真实网络中,解决多控制器对OpenFlow交换机的控制共享问题,同时满足网络虚拟化的现实需求,如图3所示,FlowVisor在控制器和OpenFlow交换机之间实现了基于OpenFlow的网络虚拟层,它使得硬件转发平面能够被多个逻辑网络切片(slice)共享,每个网络切片拥有不同的转发逻辑策略,例如包括Alice切片策略、Bob切片策略和正常流量切片策略。在这种切片模式下,多个控制器(例如包括Alice控制器、Bob控制器和正常流量控制器)能够同时管理一台交换机,多个网络实验能够同时运行在同一个真实网络中,网络管理者能够并行地控制网络,因此网络正常流量可以运行在独立的切片模式下,从而保证正常流量不受干扰。
但是,SDN网络当前的控制器一般部署在局域网内,如果在广域网上使用控制器,会存在流表下发失败甚至无法联通的情况。具体来说,当前的控制器和SDN交换机是通过互联网连接,如SDN交换机分布在全球各地,控制器只有一个,无论在控制器选择在哪个地址位置都会存在控制器到某些SDN交换机的链路质量差的情况,对于质量差的这些链路,SDN交换机产生的package-in消息需要经过几百毫秒的传输到达控制器,控制器进行路径计算后再将流表下发下去,在互联网高峰期,网络丢包现象严重的时候,会导致package-in消息或者下发流表的数据包丢失。SDN交换机由于没有收到下发的流表会不停的产生package-in消息,这样会大量消耗控制器和SDN交换机之间的网络资源,进一步影响其它SDN交换机和控制器的通讯,极端情况下可能出现控制器对其它SDN交换机正常的package-in消息无法及时响应,导致用户无法联通。
另外,当前的SDN网络,由于单一控制器有网络资源瓶颈、cpu计算瓶颈、以及存储瓶颈等,而这些都会影响控制器的并发处理能力,从而导致单一控制器的并发处理能力有限,流表的匹配速度和条目有限,不适宜在大数据量高并发的情况下使用。
并且,在单一控制器出现的问题的时候,会导致网络中的用户新产生的流量无法正常调度,造成用户访问业务中断,而双机热备在切换的时候有时也会对用户的业务造成中断,从而对整个网络的使用产生影响。
发明内容
因此,本发明的目的在于提供一种基于SDN网络的分布式控制系统与用户流量优化方法,以解决上述现有技术的缺陷。
为了实现上述目的,本发明提供一种基于SDN网络的分布式控制系统,其特点在于,所述分布式控制系统包括分层的多个控制器,其包括位于顶层的根控制器、位于中间层的区域控制器、以及位于最底层的接入控制器,所述SDN网络包括多个区域,每一所述区域包括有与所述根控制器通讯连接的所述区域控制器、与所述区域控制器通讯连接的所述接入控制器、以及与所述接入控制器通讯连接的第一SDN交换机,其中:
所述根控制器负责全局控制,其是用于管理所述SDN网络所有区域内的下一层控制器,接收下一层控制器的接入,生成所接入的控制器所负责区域的本地流表;
所述区域控制器负责区域控制,其是用于管理其所负责的区域内的下一层控制器,接收下一层控制器的接入,上报接入信息到上一层控制器,与上一层控制器通信,获取其所负责区域的配置规则,生成所接入的控制器所负责区域的本地流表;
所述接入控制器负责数据接入,其是用于管理其所负责的区域内的第一SDN交换机,接收其所负责的区域内的第一SDN交换机的接入,根据从上一层控制器获取到的配置规则生成所接入的第一SDN交换机所负责区域的本地流表,下发所述本地流表到接入的第一SDN交换机;
所述第一SDN交换机,其是用于获取其所负责的区域所应接入的控制器,并连接上所述应接入的控制器,上报自身信息,接受所述应接入的控制器的管理,根据查询所述本地流表来转发数据包。
在本发明的一实施例中,至少部分所述区域内还包括有第二SDN交换机,所述第二SDN交换机是与其所在区域内的所述区域控制器及所述第一SDN交换机通讯连接,且所述第二SDN交换机是被部署在广域网内以形成一跨广域网SDN核心网络;其中,与所述第二SDN交换机通讯连接的所述区域控制器是接收所述第二SDN交换机的接入,并管理所述第二SDN交换机,生成所接入的第二SDN交换机所负责区域的本地流表;所述第二SDN交换机是用于获取其所负责区域所应接入的区域控制器,并连接上所述应接入的区域控制器,上报自身信息,接受所述应接入的区域控制器的管理,以及接收所述第一SDN交换机的转发请求,根据查询所述本地流表来转发数据包。
在本发明的一实施例中,所述根控制器包括彼此通讯连接的主根控制器和备份根控制器;其中,所述主根控制器除负责全局控制外还用于与所述备份根控制器之间的同步协商;所述备份根控制器还用于实现所述主根控制器的热备份,并监控所述主根控制器的存活状况,若超过一指定周期检测到所述主根控制器不存在,则通知所有区域内的所述区域控制器,并接管所述主根控制器的工作,自动转换为主根控制器,而原来的主根控制器则在重启后自动转换为备份根控制器。
在本发明的一实施例中,所述根控制器在初始化时生成所有区域的子区域默认流表;所述区域控制器在初始化时生成其所负责区域的子区域默认流表;所述接入控制器在初始化时生成其所负责区域的本区域默认流表;所述第一SDN交换机在初始化时连接上所述接入控制器,所述接入控制器将所述本区域默认流表下发到所述第一SDN交换机上。
在本发明的一实施例中,所述本地流表是随着选路结果的变化而实时变化。
在本发明的一实施例中,所述第一SDN交换机是通过智能DNS获取其所负责的区域所应接入的控制器,并通过openflow协议连接上所述应接入的控制器。
在本发明的一实施例中,所述接入控制器及其所负责的区域内的所述第一SDN交换机是被部署在局域网内。
在本发明的一实施例中,位于中间层的所述区域控制器包括分层的多个区域控制器。
为了实现上述目的,本发明还提供一种用户流量优化方法,其特点在于,包括:
(a)构建如权利要求1或2所述的基于SDN网络的分布式控制系统;
(b)进行控制器初始化,生成各控制器所负责区域的子区域默认流表、以及各SDN交换机所负责区域的本区域默认流表作为其本地流表;
(c)进行SDN交换机初始化,使所述SDN交换机连接上其应接入的控制器,并获取其所负责区域的本区域默认流表作为本地流表;
(d)当用户接入所述SDN网络内一边缘节点的一第一SDN交换机后,该第一SDN交换机查询本地流表,如果之前已经下发访问目标的流表,则根据该流表发送数据包;如果没有匹配该访问目标的流表,该第一SDN交换机向其所接入的最底层的控制器请求流表,该最底层的控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该第一SDN交换机,如果没有匹配上则向上一层的控制器请求该访问目标的流表;上一层控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该最底层的控制器,如果没有匹配上则继续向上一层的控制器发出请求;如此迭代直至获得该访问目标的流表,该第一SDN交换机根据该访问目标的流表发送数据包。
在本发明的另一实施例中,所述的用户流量优化方法还包括:
(e)各层的控制器实时监控下一层的SDN交换机或者控制器的状态,并在发生异常状态时实时上报该异常状态;
(f)当所述SDN网络中的一个节点宕机的时候,其上一层的控制器立即将受到影响的链路切换到可用链路上;
(g)当所述SDN网络有新的节点加入时,其上一层的控制器在下一周期将该节点加入到可选路径中。
在本发明的另一实施例中,在步骤(a)中,所构建的分布式控制系统如权利要求2所述;
并且,在步骤(d)中:
如果用户的访问目标为本地目标,则该边缘节点的该第一SDN交换机生成的是从本地接出的流表,该第一SDN交换机是根据该流表直接从该边缘节点去访问目标,或者从位于同一局域网的另一边缘节点去访问目标;
如果用户的访问目标为远程目标,则该边缘节点的该第一SDN交换机生成的是转发到与之连接的一核心节点的一第二SDN交换机的流表,并通过该核心节点的该第二SDN交换机查询本地流表,如果有匹配该访问目标的流表,则根据该流表发送数据包;如果没有匹配该访问目标的流表,该第二SDN交换机向其所接入的上一层的控制器请求该访问目标的流表;上一层控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该第二SDN交换机,如果没有匹配上则继续向上一层的控制器发出请求;如此迭代直至获得该访问目标的流表,该第二SDN交换机根据该访问目标的流表发送数据包。
在本发明的另一实施例中,在步骤(d)中,所述用户是通过智能DNS域名解析接入该边缘节点的该第一SDN交换机;该第一SDN交换机是通过智能DNS获取其所应接入的控制器,并通过openflow协议连接上所述应接入的控制器。
在本发明的另一实施例中,所述本地的规则包括本地的控制器从上一层的控制器获取的配置规则和转发规则。
本发明具有以下有益效果:
(1)支持高并发,大数据流量,可扩展性强,利用本发明,可由单机处理3w条流表/s提高到整个系统300w条流表/s;
(2)提高网络带宽利用率,可由原有广域网带宽利用率30%提高到95%的利用率;
(3)网络故障区域化,原有控制器出错可能会导致整个系统瘫痪,而利用本发明,当某个控制器出错时可在秒级自动修复链路。
附图说明
为让本发明的上述和其他目的、特征、优点与实施例能更明显易懂,所附附图的说明如下:
图1为现有的SDN网络的架构示意图;
图2为现有的SDN网络中的控制器实现控制逻辑功能的示意图;
图3为现有的控制器部署在SDN网络中实现多控制器对OpenFlow交换机的控制共享的示意图;
图4为本发明的基于SDN网络的分布式控制系统的架构示意图;
图5为本发明的基于SDN网络的分布式控制系统的网络拓扑结构示意图,其中示出了用户获取最优路径的流程;
图6为利用本发明的分布式控制系统的用户流量优化方法的流程图;以及
图7为利用本发明的分布式控制系统获取选路结果的逻辑示意图。
具体实施方式
下文是举实施例配合所附附图作详细说明,但所提供的实施例并非用以限制本发明所涵盖的范围。
如图4所示,本发明的一种基于SDN网络的分布式控制系统主要包括分层的多个控制器,在图4所示的实施例中,示出了3层结构的分布式控制系统,其可包括位于顶层的根控制器(例如主根控制器和备份根控制器等)、位于中间层的区域控制器(例如区域控制器1~3等)、以及位于最底层的接入控制器(例如接入控制器a、b等)。在其它实施例中,所述分布式控制系统还可以为更多层的结构,例如位于中间层的区域控制器可再拆分,即可包括分层的多个区域控制器。另外,在图4所示的实施例中,仅示出了2个根控制器、3个区域控制器、2个与区域控制器1连接的接入控制器a和b、2个与接入控制器b连接的第一SDN交换机、以及2个与区域控制器3连接的第二SDN交换机,但是,可以理解的是,这些根控制器、区域控制器、接入控制器以及SDN交换机的数量并不局限于本实施例的数量,根据实际需要,其可以设计为其它数量,这些并不作为对本发明的限制。
在本发明的一实施例中,所述SDN网络可包括多个区域(图4中未标示),每一区域内包括有与所述根控制器通讯连接的所述区域控制器、与所述区域控制器通讯连接的所述接入控制器、以及与所述接入控制器通讯连接的第一SDN交换机。其中,所述根控制器负责全局控制,其是用于管理所述SDN网络所有区域内的下一层控制器,接收下一层控制器的接入,生成所接入的控制器所负责区域的本地流表。所述区域控制器负责区域控制,其是用于管理其所负责的区域内的下一层控制器,接收下一层控制器的接入,上报接入信息到上一层控制器,与上一层控制器通信,获取其所负责区域的配置规则,生成所接入的控制器所负责区域的本地流表。所述接入控制器负责数据接入,其是用于管理其所负责的区域内的第一SDN交换机,接收其所负责的区域内的第一SDN交换机的接入,根据从上一层控制器获取到的配置规则生成所接入的第一SDN交换机所负责区域的本地流表,下发所述本地流表到接入的第一SDN交换机。所述第一SDN交换机,其是用于获取其所负责的区域所应接入的控制器,并连接上所述应接入的控制器,上报自身信息,接受所述应接入的控制器的管理,根据查询所述本地流表来转发数据包。
在图4所示的实施例中,所述根控制器包括彼此通讯连接的主根控制器和备份根控制器。其中,所述主根控制器除负责全局控制外,还用于与所述备份根控制器之间的同步协商。所述备份根控制器是用于实现所述主根控制器的热备份,并监控所述主根控制器的存活状况,若超过一指定周期检测到所述主根控制器不存在,则通知所有区域内的区域控制器,并接管所述主根控制器的工作,自动转换为主根控制器,而原来的主根控制器则在重启后自动转换为备份根控制器。
请结合参考图4和图5,在本发明的另一实施例中,至少部分所述区域内还可包括有第二SDN交换机。这些第二SDN交换机是与其所在区域内的区域控制器及第一SDN交换机通讯连接。并且,这些第二SDN交换机是被部署在广域网内以形成一跨广域网SDN核心网络。其中,与所述第二SDN交换机通讯连接的区域控制器是接收所述第二SDN交换机的接入,并管理所述第二SDN交换机,生成所接入的第二SDN交换机所负责区域的本地流表。所述第二SDN交换机是用于获取其所负责区域所应接入的区域控制器,并连接上所述应接入的区域控制器,上报自身信息,接受所述应接入的区域控制器的管理,以及接收所述第一SDN交换机的转发请求,根据查询所述本地流表来转发数据包。
在本发明中,所述根控制器、区域控制器、接入控制器作为网元构成了整个SDN网络。其中,所述根控制器负责该SDN网络的所有区域的全局控制;所述区域控制器负责更小级别区域的区域控制;所述接入控制器作为最底层的控制器被划分为最小的区域,每个区域有一个接入控制器,其可供多个本区域的第一SDN交换机接入,所述接入控制器负责本区域的数据接入。并且,每一所述接入控制器及其所负责的区域内的第一SDN交换机是被部署在同一局域网内。每一个SDN交换机构成了其所在区域的一个节点。以图5所示为例,第一SDN交换机构成了边缘节点(图5中标示为PE点),第二SDN交换机构成了核心节点(图5中标示为P点)。接入控制器a及与之连接的PE点A、PE点B是被部署在同一个局域网内。而P点1~P点N等n个P点构成了一个跨广域网SDN核心网络,即被部署在一个广域网内。
利用本发明的上述分布式控制系统,本发明可以实现用户流量的优化。结合参考图5、图6所示,本发明的用户流量优化方法主要包括:
(a)构建如上所述的基于SDN网络的分布式控制系统(如图5所示)。
(b)进行控制器初始化,生成各控制器所负责区域的子区域默认流表、以及各SDN交换机所负责区域的本区域默认流表作为其本地流表。
其中,所述根控制器在初始化时生成所有区域的子区域默认流表;所述区域控制器在初始化时生成其所负责区域的子区域默认流表;所述接入控制器在初始化时生成其所负责区域的本区域默认流表;所述第一SDN交换机在初始化时连接上所述接入控制器,所述接入控制器将所述本区域默认流表下发到所述第一SDN交换机上,以作为其本地流表。此处的子区域是相对的一个概念,子区域默认流表均由上一级的控制器生成。根控制器初始化时生成的子区域默认流表中的子区域指的是区域控制器级别代表的区域,如北美、欧洲、亚洲等。区域控制器初始化时生成的子区域默认流表中的子区域指的是更下一级别的区域,如美国、德国、日本等。
通过控制器初始化,可以利用控制器管理新连接的SDN交换机,获取SDN交换机的相关配置。在本发明中,各控制器生成的流表的组成结构基本一样,但根据SDN交换机的不同角色生成的流表的条目有所不同,如PE点的初始化流表的条目比较少,其主要包括本地物理层和数据链路层流表,而P点的初始化流表的条目比较多,其主要包括全局的物理层和数据链路层流表。
(c)进行SDN交换机初始化,使所述SDN交换机连接上其应接入的控制器,并获取其所负责区域的本区域默认流表作为本地流表。
通过SDN交换机初始化,可以实现流表初始化。流表初始化是在最底层的控制器上生成,最底层的控制器根据获取到的配置规则生成本区域默认流表,并在本地SDN交换机连接上的时候将本区域默认流表下发到SDN交换机上。初始的流表动作包含默认转发方式及产生package_in消息。初始化后所有的SDN交换机对进入该SDN交换机的所有流量都能进行调度。
(d)当用户接入所述SDN网络内一边缘节点的一第一SDN交换机后,该第一SDN交换机查询本地流表,如果之前已经下发访问目标的流表,则根据该流表发送数据包;如果没有匹配该访问目标的流表,该第一SDN交换机向其所接入的最底层的控制器请求流表,该最底层的控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该第一SDN交换机,如果没有匹配上则向上一层的控制器请求该访问目标的流表;上一层控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该最底层的控制器,如果没有匹配上则继续向上一层的控制器发出请求;如此迭代直至获得该访问目标的流表,该第一SDN交换机根据该访问目标的流表发送数据包。
在本发明的一实施例中,在步骤(d)中,如果用户的访问目标为本地目标,则该边缘节点的该第一SDN交换机生成的是从本地接出的流表,该第一SDN交换机是根据该流表直接从该边缘节点去访问目标,或者从位于同一局域网的另一边缘节点去访问目标。如果用户的访问目标为远程目标,则该边缘节点的该第一SDN交换机生成的是转发到与之连接的一核心节点的一第二SDN交换机的流表,并通过该核心节点的该第二SDN交换机查询本地流表,如果有匹配该访问目标的流表,则根据该流表发送数据包;如果没有匹配该访问目标的流表,该第二SDN交换机向其所接入的上一层的控制器请求该访问目标的流表;上一层控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该第二SDN交换机,如果没有匹配上则继续向上一层的控制器发出请求;如此迭代直至获得该访问目标的流表,该第二SDN交换机根据该访问目标的流表发送数据包。
在本发明的另一实施例中,在步骤(d)中,所述用户是通过智能DNS域名解析接入该边缘节点的该第一SDN交换机。该第一SDN交换机是通过智能DNS获取其所应接入的控制器,并通过openflow协议连接上所述应接入的控制器。
在本发明中,各控制器是通过管理协议连接到上一层的控制器,所述管理协议例如可为分布式通信协议,通过该协议可以实现处理数据一致性、分布式集群节点通信、各种分布式数据库查询同步更新。
在本发明中,所述本地的规则包括本地的控制器从上一层的控制器获取的配置规则和转发规则等。所述配置规则可包括网络地址划分、数据链路层地址映射、节点区域划分、控制器和节点对应关系、用户与接入节点对应关系等。所述转发规则可包括网络层转发、数据链路层转发、物理层转发、区域数据转发、应用层数据转发等。
在本发明的其它实施例中,所述的用户流量优化方法还可包括:
(e)各层的控制器实时监控下一层的SDN交换机或者控制器的状态,并在发生异常状态时实时上报该异常状态;
(f)当所述SDN网络中的一个节点宕机的时候,其上一层的控制器立即将受到影响的链路切换到可用链路上;
(g)当所述SDN网络有新的节点加入时,其上一层的控制器在下一周期将该节点加入到可选路径中。
在本发明中,流表反映的是全网的选路结果,选路结果变化会导致流表的实时变化。在本发明中,流表可以有两种管理方式,异步管理和同步管理。异步管理是指全网选路结果出来后能异步下发到各控制器,各控制器根据选路结果将管理的SDN交换机的流表更新。同步管理是指SDN交换机产生package-in消息,经各控制器层层决策后,下发最新的流表到SDN交换机上。在本发明中,选路结果在某个时刻是固定的,而全网所有节点是统一使用强一致性的路径结果。
在本发明中,所述分布式控制系统还具有分布式网络信息数据库、分布式拓扑数据库和分布式探测数据库。结合图7,本发明的分布式控制系统选路的计算公式如下:
选路结果=F分布式决策规则(分布式网络信息数据库,分布式拓扑数据库,分布式探测数据库)。
其中,分布式网络信息数据库可包括各节点和控制器的关系、控制器和控制器之间的关系、P点和PE点的关系、用户和PE点的关系、用户和虚拟地址的关系、PE点和二层地址的关系、网络地址和PE点的关系等。
分布式拓扑数据库可包括全网所有网元的拓扑关系,该拓扑关系可通过实时监控获取,所有网元在出现问题后能在ms级别响应到分布式拓扑数据库中。
分布式探测数据库可包括全网所有链路的指标,其包括实际业务的流量、带宽、资源、性能等。
分布式决策规则为一套调度的约束条件,可以是一种或多种组合,如性能最优、资源最均衡、性价比最高等。
下面将结合图5,具体说明本发明的用户流量优化方法的一个实施例。在图5所示的实施例中,搭建了一个3层的SDN网络,位于第1层(最底层)的接入控制器是负责数据接入,如pptp、ipsec、ssl等;位于第2层(中间层)的区域控制器是负责区域控制,包括北京、上海、广州、美国、日本等区域;位于第3层(顶层)的根控制器是负责全局控制,对整个网络的流量进行管理。接入所述SDN网络的用户可网内最优访问整个互联网。其中,用户访问目标的流程包括:
1.用户1通过智能DNS进行接入域名解析。
2.用户1通过互联网接入到边缘节点PE点A。
3.PE点A为第一SDN交换机,PE点A查询本地流表,如果之前已经下发访问目标的流表则按该流表发送数据包;如果没有匹配上该访问目标的流表,则到接入控制器a请求流表;接入控制器a根据本地的规则进行匹配,如果匹配上则直接下发流表到PE点A,如果没有匹配上则通过分布式通信协议0到区域控制器1请求该访问目标的流表。区域控制器1根据本地的规则进行匹配,如果匹配上则直接下发流表到接入控制器a,如果没有匹配上则通过分布式通信协议0继续向上一层的根控制器发出请求,以从该根控制器中获取相关规则,其中该根控制器是通过获取探测数据选路结果的方式而获得相关规则,并下发至区域控制器1,区域控制器1根据相关规则生成该访问目标的流表,并下发至PE点A,由PE点A根据该流表发送数据包。在PE点A中针对该数据包可能会生成两种走向的流表。
4.如果用户1访问的目标为本地目标,则PE点A生成的是从本地接出的流表,此时存在两种情况:即直接从PE点A去访问目标,或者从PE点B去访问目标。如果用户1访问的目标为远程目标,则PE点A生成的是转发到核心节点P点1的流表,用户流量从PE点A到达核心节点P点1。
5.P点1查询本地流表,以确定是否有针对该流量配置的流表。如果没有,则到区域控制器1请求流表,区域控制器1根据本地规则进行匹配,如果匹配上则下发流表到P点1,如果没有匹配上则通过分布式通信协议0向根控制器发送请求。P点1针对该流量生成一条转发到其他P点的流表。区域控制器3和4通过分布式通信协议0从根控制器接收到该流量的相关信息,并生成流表下发到P点3和P点4上。
6.根据选路的规则该流量从P点1经过P点3到P点4。
7.该流量在P点4转发到接出节点PE点C,正常情况下接入控制器b通过分布式通信协议0已经生成流表下发到PE点C,用户可通过PE点C访问远程目标。
8.如果PE点C没有针对该流量的流表,则从接入控制器b请求流表,流程与第3步一致。
在本发明中,当用户接入到SDN网络后,产生新的流量时,由于初始化的默认流表已经设置,第一个数据包可以按照默认流表访问,并且同时产生openflow格式的标准package_in消息。最底层的控制器收到该消息和本地的规矩进行匹配,如果本地的规则不能指示该流量如何走,则封装为转发规则请求的报文,并发送请求到上一层的控制器。上一层的控制器根据本层的规则及数据库进行检索,觉得是否直接给出该流量的转发策略或者产生新的请求给上一层控制器,如此迭代直到找出最优的路径。
在本发明中,各接入控制器可以解决PE点的高并发,PE点接入控制处理能力可度量,当并发超过PE点的可处理的上限时,可通过系统DNS将该流量调度到新的PE点。大数据流量通常在核心节点P点出现,当P点处理能力超过可接受的能力时,系统通过分布式探测数据库感知到之后可以将P点的大数据流量调度到其他P点。并且,在本发明中,通过分布式拓扑数据库可以增强可扩展性。当新增网元加入网络后,系统根据分布式网络信息库对网元进行管理,使网元承担相关的角色,本发明中的P点、PE点和控制器均可横向拓展和纵向扩展。因此,本发明不仅支持高并发和大数据流量,而且可扩展性强,由单机处理3w条流表/s可以提高到整个系统300w条流表/s。
而在广域网的网络使用中,存在部分链路拥堵的现象,如一线城市用户量大网络带宽利用高,但在一些二级城市存在用户分散带宽利用率低的情况,通过本发明可以将拥堵链路上的用户流量绕道带宽空虚较高的链路上,从而提高网络带宽的利用率,本发明可将原有广域网带宽利用率30%提高到95%的利用率。
另外,在本发明中,通过分布式拓扑数据库实时监控网元,包括控制器,当控制器出错时,通过分布式网络信息库管理将连接到该控制器的SDN交换机的控制器设置到新的控制器上,该项操作实时监测,在广域网的情况下也能在秒级进行修复,当SDN交换机接上新的控制器后即能保证链路互通。因此,本发明可实现网络故障区域化,避免了原有控制器出错导致整个系统瘫痪的问题,当某个控制器出错时,本发明可在秒级自动修复链路。
虽然本发明已以实施方式揭露如上,然其并非用以限定本发明,任何熟悉此技艺者,在不脱离本发明的精神和范围内,当可作各种的更动与润饰,因此本发明的保护范围当视所附的权利要求书所界定的范围为准。
Claims (10)
1.一种基于SDN网络的分布式控制系统,其特征在于,所述分布式控制系统是部署于一广域网内,且所述分布式控制系统包括分层的多个控制器,其包括位于顶层的根控制器、位于中间层的区域控制器、以及位于最底层的接入控制器,所述SDN网络包括多个区域,每一所述区域包括有与所述根控制器通讯连接的所述区域控制器、与所述区域控制器通讯连接的所述接入控制器、以及与所述接入控制器通讯连接的第一SDN交换机,且至少部分所述区域内还包括有第二SDN交换机,所述第二SDN交换机是与其所在区域内的所述区域控制器及所述第一SDN交换机通讯连接,且所述第二SDN交换机是被部署在所述广域网内以形成一跨广域网SDN核心网络,其中:
所述根控制器负责全局控制,其是用于管理所述SDN网络所有区域内的下一层控制器,接收下一层控制器的接入,生成所接入的控制器所负责区域的本地流表,其中所述根控制器在初始化时生成所有区域的子区域默认流表;
所述区域控制器负责区域控制,其是用于管理其所负责的区域内的下一层控制器,接收下一层控制器的接入,上报接入信息到上一层控制器,与上一层控制器通信,获取其所负责区域的配置规则,生成所接入的控制器所负责区域的本地流表,其中所述区域控制器在初始化时生成其所负责区域的子区域默认流表;
所述接入控制器负责数据接入,其是用于管理其所负责的区域内的第一SDN交换机,接收其所负责的区域内的第一SDN交换机的接入,根据从上一层控制器获取到的配置规则生成所接入的第一SDN交换机所负责区域的本地流表,下发所述本地流表到接入的第一SDN交换机,其中所述接入控制器在初始化时生成其所负责区域的本区域默认流表;
所述第一SDN交换机,其是用于获取其所负责的区域所应接入的控制器,并连接上所述应接入的控制器,上报自身信息,接受所述应接入的控制器的管理,根据查询所述本地流表来转发数据包,其中所述第一SDN交换机在初始化时连接上所述接入控制器,所述接入控制器将所述本区域默认流表下发到所述第一SDN交换机上;
其中,与所述第二SDN交换机通讯连接的所述区域控制器是接收所述第二SDN交换机的接入,并管理所述第二SDN交换机,生成所接入的第二SDN交换机所负责区域的本地流表;所述第二SDN交换机是用于获取其所负责区域所应接入的区域控制器,并连接上所述应接入的区域控制器,上报自身信息,接受所述应接入的区域控制器的管理,以及接收所述第一SDN交换机的转发请求,根据查询所述本地流表来转发数据包。
2.根据权利要求1所述的基于SDN网络的分布式控制系统,其特征在于,所述根控制器包括彼此通讯连接的主根控制器和备份根控制器;其中,所述主根控制器除负责全局控制外还用于与所述备份根控制器之间的同步协商;所述备份根控制器还用于实现所述主根控制器的热备份,并监控所述主根控制器的存活状况,若超过一指定周期检测到所述主根控制器不存在,则通知所有区域内的所述区域控制器,并接管所述主根控制器的工作,自动转换为主根控制器,而原来的主根控制器则在重启后自动转换为备份根控制器。
3.根据权利要求2所述的基于SDN网络的分布式控制系统,其特征在于,所述本地流表是随着选路结果的变化而实时变化。
4.根据权利要求2所述的基于SDN网络的分布式控制系统,其特征在于,所述第一SDN交换机是通过智能DNS获取其所负责的区域所应接入的控制器,并通过openflow协议连接上所述应接入的控制器。
5.根据权利要求2所述的基于SDN网络的分布式控制系统,其特征在于,所述接入控制器及其所负责的区域内的所述第一SDN交换机是被部署在局域网内。
6.根据权利要求2所述的基于SDN网络的分布式控制系统,其特征在于,位于中间层的所述区域控制器包括分层的多个区域控制器。
7.一种用户流量优化方法,其特征在于,包括:
(a)构建如权利要求1所述的基于SDN网络的分布式控制系统;
(b)进行控制器初始化,生成各控制器所负责区域的子区域默认流表、以及各SDN交换机所负责区域的本区域默认流表作为其本地流表;
(c)进行SDN交换机初始化,使所述SDN交换机连接上其应接入的控制器,并获取其所负责区域的本区域默认流表作为本地流表;
(d)当用户接入所述SDN网络内一边缘节点的一第一SDN交换机后,该第一SDN交换机查询本地流表,如果之前已经下发访问目标的流表,则根据该流表发送数据包;如果没有匹配该访问目标的流表,该第一SDN交换机向其所接入的最底层的控制器请求流表,该最底层的控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该第一SDN交换机,如果没有匹配上则向上一层的控制器请求该访问目标的流表;上一层控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该最底层的控制器,如果没有匹配上则继续向上一层的控制器发出请求;如此迭代直至获得该访问目标的流表,该第一SDN交换机根据该访问目标的流表发送数据包;
其中,在步骤(d)中:
如果用户的访问目标为本地目标,则该边缘节点的该第一SDN交换机生成的是从本地接出的流表,该第一SDN交换机是根据该流表直接从该边缘节点去访问目标,或者从位于同一局域网的另一边缘节点去访问目标;
如果用户的访问目标为远程目标,则该边缘节点的该第一SDN交换机生成的是转发到与之连接的一核心节点的一第二SDN交换机的流表,并通过该核心节点的该第二SDN交换机查询本地流表,如果有匹配该访问目标的流表,则根据该流表发送数据包;如果没有匹配该访问目标的流表,该第二SDN交换机向其所接入的上一层的控制器请求该访问目标的流表;上一层控制器根据本地的规则进行匹配,如果匹配上则直接下发流表到该第二SDN交换机,如果没有匹配上则继续向上一层的控制器发出请求;如此迭代直至获得该访问目标的流表,该第二SDN交换机根据该访问目标的流表发送数据包。
8.根据权利要求7所述的用户流量优化方法,其特征在于,还包括:
(e)各层的控制器实时监控下一层的SDN交换机或者控制器的状态,并在发生异常状态时实时上报该异常状态;
(f)当所述SDN网络中的一个节点宕机的时候,其上一层的控制器立即将受到影响的链路切换到可用链路上;
(g)当所述SDN网络有新的节点加入时,其上一层的控制器在下一周期将该节点加入到可选路径中。
9.根据权利要求7所述的用户流量优化方法,其特征在于,在步骤(d)中,所述用户是通过智能DNS域名解析接入该边缘节点的该第一SDN交换机;该第一SDN交换机是通过智能DNS获取其所应接入的控制器,并通过openflow协议连接上所述应接入的控制器。
10.根据权利要求8所述的用户流量优化方法,其特征在于,所述本地的规则包括本地的控制器从上一层的控制器获取的配置规则和转发规则。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410459460.0A CN105471954B (zh) | 2014-09-11 | 2014-09-11 | 基于sdn网络的分布式控制系统与用户流量优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410459460.0A CN105471954B (zh) | 2014-09-11 | 2014-09-11 | 基于sdn网络的分布式控制系统与用户流量优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105471954A CN105471954A (zh) | 2016-04-06 |
CN105471954B true CN105471954B (zh) | 2017-07-07 |
Family
ID=55609219
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410459460.0A Active CN105471954B (zh) | 2014-09-11 | 2014-09-11 | 基于sdn网络的分布式控制系统与用户流量优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105471954B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105897611B (zh) * | 2016-06-24 | 2019-03-29 | 武汉绿色网络信息服务有限责任公司 | 一种基于sdn采用dpi技术实现业务识别和流量调度的系统和方法 |
CN107770826B (zh) * | 2016-08-19 | 2020-02-21 | 电信科学技术研究院 | 一种网络切片选择方法及相关设备 |
CN106357429B (zh) * | 2016-08-29 | 2019-08-27 | 广州西麦科技股份有限公司 | 一种数据处理方法及系统 |
WO2018049583A1 (zh) * | 2016-09-14 | 2018-03-22 | 华为技术有限公司 | 基于网络切片的用户面共享方法、装置及监督管理器 |
CN106412040B (zh) * | 2016-09-19 | 2019-09-06 | 北京邮电大学 | 一种缓存资源分配的方法及装置 |
CN108024255A (zh) * | 2016-11-03 | 2018-05-11 | 华为技术有限公司 | 扩展网络切片实例的方法和网络设备 |
CN106713177B (zh) * | 2016-11-21 | 2019-11-15 | 华南理工大学 | 一种多控制器的wmSDN组网方法 |
CN106788681A (zh) * | 2016-12-29 | 2017-05-31 | 北京邮电大学 | 一种信息转发方法及天基信息网络系统 |
CN106850776A (zh) * | 2017-01-16 | 2017-06-13 | 中国船舶重工集团公司第七0九研究所 | 软件定义网络的扁平控制方式中一种控制器间信息同步方法 |
CN106953744A (zh) * | 2017-02-27 | 2017-07-14 | 浙江工商大学 | 一种sdn集群控制器高可用架构设计方法 |
CN108667868A (zh) * | 2017-03-30 | 2018-10-16 | 杭州达乎科技有限公司 | 一种用于广域网长距离通信的sdn网络控制平面的部署架构 |
CN107070714B (zh) * | 2017-04-10 | 2019-06-21 | 中国人民解放军国防科学技术大学 | 一种sdn网络异常监控方法 |
CN107196791B (zh) * | 2017-05-17 | 2020-03-06 | 电子科技大学 | 一种分层次控制的网络架构及其触发请求服务的方法 |
CN111817879B (zh) * | 2020-06-17 | 2023-04-07 | 三明学院 | 一种基于网络节点可控的校园网流量调节优化方法 |
CN113890850B (zh) * | 2020-07-01 | 2023-06-06 | 阿里巴巴集团控股有限公司 | 路由容灾系统及方法 |
CN111918314B (zh) * | 2020-08-20 | 2024-03-29 | 浪潮思科网络科技有限公司 | 一种基于分布式sdn的移动网络优化方法及系统 |
CN113259859B (zh) * | 2021-05-27 | 2021-10-29 | 之江实验室 | 一种面向区域寻址的地理标识转发方法及装置 |
CN113259848B (zh) * | 2021-07-02 | 2021-10-29 | 之江实验室 | 一种基于sdn的地理标识网络构建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561011A (zh) * | 2013-10-28 | 2014-02-05 | 中国科学院信息工程研究所 | 一种SDN控制器盲DDoS攻击防护方法及系统 |
CN103780471A (zh) * | 2014-01-04 | 2014-05-07 | 浙江工商大学 | 一种应用于软件定义网络的多控制器管理网络设备的方法 |
CN103812778A (zh) * | 2014-02-21 | 2014-05-21 | 华为技术有限公司 | 流表项生成方法以及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9065768B2 (en) * | 2012-12-28 | 2015-06-23 | Futurewei Technologies, Inc. | Apparatus for a high performance and highly available multi-controllers in a single SDN/OpenFlow network |
-
2014
- 2014-09-11 CN CN201410459460.0A patent/CN105471954B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103561011A (zh) * | 2013-10-28 | 2014-02-05 | 中国科学院信息工程研究所 | 一种SDN控制器盲DDoS攻击防护方法及系统 |
CN103780471A (zh) * | 2014-01-04 | 2014-05-07 | 浙江工商大学 | 一种应用于软件定义网络的多控制器管理网络设备的方法 |
CN103812778A (zh) * | 2014-02-21 | 2014-05-21 | 华为技术有限公司 | 流表项生成方法以及装置 |
Non-Patent Citations (1)
Title |
---|
软件定义网络架构研究与实践;兰巨龙等;《中兴通讯技术》;20131031;第19卷(第5期);第12页3.1-14页4.1,图3和图5 * |
Also Published As
Publication number | Publication date |
---|---|
CN105471954A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105471954B (zh) | 基于sdn网络的分布式控制系统与用户流量优化方法 | |
CN104363159B (zh) | 一种基于软件定义网络的开放虚拟网络构建系统和方法 | |
CN103795805B (zh) | 基于sdn的分布式服务器负载均衡方法 | |
Xu et al. | Survivable virtual infrastructure mapping in virtualized data centers | |
CN103346981B (zh) | 虚拟交换方法、相关装置和计算机系统 | |
CN102576343B (zh) | 计算机系统和虚拟机迁移方法 | |
CN104301391B (zh) | 多域光网络数据中心资源虚拟化映射方法 | |
CN104702512B (zh) | 为软件定义网络提供网络管理的分级控制系统及计算机实现方法 | |
CN103888360B (zh) | 基于贪婪算法的集合覆盖方法获取sdn网中服务节点的方法 | |
CN103997513B (zh) | 一种可编程虚拟网络服务系统 | |
CN104025513B (zh) | 用于数据中心网络中的控制层级的装置和方法 | |
CN108809857A (zh) | 一种基于sdn的流量监控与业务服务质量保障策略的方法 | |
Oechsner et al. | Flexible support of VNF placement functions in OpenStack | |
CN107925633A (zh) | 数据中心资源跟踪 | |
Xu et al. | Enhancing survivability in virtualized data centers: A service-aware approach | |
EP3063903A1 (en) | Method and system for load balancing at a data network | |
CN104009871A (zh) | Sdn控制器实现方法及sdn控制器 | |
CN103684960A (zh) | 网络系统以及虚拟节点的迁移方法 | |
CN106034077A (zh) | 一种动态路由配置方法、装置及系统 | |
CN107959666A (zh) | 大规模cors站播发系统中数据订阅、发布的方法及其装置 | |
CN106685835A (zh) | 一种在数据中心的计算节点间实现高速分布式路由的方法 | |
CN113055232B (zh) | 一种网络配置部署方法、装置与设备 | |
CN110474792A (zh) | 网络配置方法、设备及系统 | |
CN105391651B (zh) | 一种虚拟光网络多层资源汇聚方法和系统 | |
CN105791402A (zh) | 一种云计算平台网络虚拟化实现方法及相应插件和代理 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20191128 Address after: Room 826, jingling Hotel, No. 20, Chegongzhuang West Road, Haidian District, Beijing 100044 Patentee after: Beijing Zhao Yu Tai Mdt InfoTech Ltd Address before: 100086, room 5, building 5320, Shen Chang building, 51 Zhichun Road, Beijing, Haidian District Patentee before: BEIJING ZHIFAN NETWORK TECHNOLOGY CO., LTD. |