软件定义网络控制器混合映射方法与流程

文档序号:21102193发布日期:2020-06-16 20:55阅读:194来源:国知局
软件定义网络控制器混合映射方法与流程

本发明属于软件定义网络控制平面技术领域,具体地涉及一种软件定义网络(softwaredefinednetwork,sdn)中的控制器混合映射方法。



背景技术:

由于现有网络架构的控制平面和数据平面集中在设备中,不断增多的协议使得网络设备变得更加臃肿而难以管理。这催生了软件定义网络(softwaredefinednetwork,sdn)的产生。sdn是一种基于软件的网络架构,它的核心思想是将网络数据转发平面和控制管理平面分离。控制平面和数据平面分离的这种架构使得网络传输设备的功能变得简单,只需要负责转发数据,所有设备的控制功能全部抽离出来集中在上层的一个叫控制器的设备中。在这样的架构下,网络管理员和科研工作者只需要在控制器上进行编程就可以对网络进行管理、配置以及研究。sdn不仅使得网络的管理控制变得灵活可扩展同时提高了网络的传输性能。

sdn交换机收集到新的数据流流时,会查找交换机上面的流表项。如果查到数据流对应的规则,则按照表项进行转发或其他操作。如果没有查到相应的表项,则需要生成一条packet-in请求,将其发送给控制器,由控制器进行决策,并以流表项的形式下发给交换机。

由于网络的规模越来越大,数据流量越来越多。单个控制器已经无法满足sdn的需求,因此sdn中通常有多个控制器,组成控制器集群共同管理网络的数据平面,交换机具体由某个控制器管理也称为该交换机与控制器间存在一个映射。

现有的控制器映射方法有两种:

(1)单映射方式:每个交换机只映射一个控制器,该控制器负责处理所有来自该交换机的数据流;单映射方式具体分为两类。a.静态模式:该模式下交换机和控制器的映射是固定的,不会变化,这种模式由于数据流的动态性,会造成严重的控制器负载不均衡,部分控制器过于拥塞,部分控制器过于空闲;b.动态模式:各交换机映射的控制器可以在网络运行时,根据各控制器负载情况灵活调整,该方案的切换需要重新建立交换机与控制器的连接,会造成很高的切换延迟。

(2)多映射方式:每个交换机同时映射多个控制器,将一个交换机产生的所有数据请求分配给任意一个控制器,控制器在处理完请求时,需要实时地与其他控制器同步状态信息,这种方式会造成严重的控制开销。



技术实现要素:

针对上述存在的技术问题,本发明提出了一种软件定义网络控制器混合映射方法,该方法对部分交换机采用单映射,同时为部分交换机采用多映射,可以根据控制器的负载动态调整各映射的权重。从而均衡地使用控制器负载,避免控制器拥塞,并保证低的控制器同步代价。

本发明的技术方案是:

一种软件定义网络控制器混合映射方法,包括以下步骤:

s01:根据预设算法在全网的接入交换机中选择至少一个交换机作为sm交换机,将sm交换机与单个控制器进行映射,sm交换机为新到达的数据流生成请求并全部发送给唯一映射的控制器;

s02:将全网中所有交换机中剩下的交换机作为mm交换机,将mm交换机与多个控制器同时进行映射,所述mm交换机为每个映射的控制器分配权重,所述mm交换机为新到达的数据流生成请求并根据数据请求的哈希值以及各控制器对应的权重值选择一个映射的控制器发送;

s03:控制器接受到请求后,生成对应的应答回复给交换机,如果该交换机同时映射多个控制器,控制器同时向其他控制器发送同步信息。

优选的技术方案中,所述步骤s02中的mm交换机与控制器间的映射总数小于设定阈值。

优选的技术方案中,所述步骤s02中mm交换机中存放一个权重数组,权重数组中每个元素分别对应各控制器的权重值,没有映射的控制器权重值设为0。

优选的技术方案中,所述步骤s02中mm交换机将该数据流的数据包头用哈希函数生成一个散列值,并将这个值归一成一个小于或等于1的数,将这个数分别减去权重数组的各权重值,直到出现负数或0,将最后减去的权重对应的控制器作为请求分配的控制器,交换机将请求发送给该控制器。

优选的技术方案中,当某个控制器上的负载量高于安全阈值时,控制器向其映射的mm交换机发送控制命令,修改其权重数组的权重值。

与现有技术相比,本发明的优点是:

(1)同步代价小:由于本方法中有部分交换机是sm交换机,这些交换机产生极小的同步代价。同时本方法限制了全网映射的总数,从而相对于多映射方法,降低了全网的同步代价。

(2)映射切换延迟低:由于本方法中有部分交换机是sm交换机,且这些交换机与控制器是静态映射的,因此这些交换机不需要频繁地进行映射切换。同时本方法中的mm交换机使用调整权重数组的方式调整映射,因此不需要重新建立连接,从而降低了映射切换的延迟。

(3)系统健壮性高:由于本方法中存在部分mm交换机,这些交换机可以根据当前的控制器负载,调节各mm交换机的映射权重,从而合理得使用控制资源,均衡控制器间请求负载,防止部分控制器拥塞,从而提高了系统的健壮性。

附图说明

下面结合附图及实施例对本发明作进一步描述:

图1为本发明软件定义网络控制器混合映射方法的流程图;

图2为本发明实施例中软件定义网络控制器混合映射的网络拓扑图;

图3为本发明实施例中mm交换机上的请求分配方法示意图;

图4为本发明实施例中控制器负载均衡及拥塞避免中交换机上权重调整之前控制器请求分配状况的网络拓扑图;

图5为本发明实施例中控制器负载均衡及拥塞避免中交换机上权重调整之后的控制器请求分配状况的网络拓扑图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进行进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。

实施例:

下面结合附图,对本发明的较佳实施例作进一步说明。

本发明提出的软件定义网络控制器混合映射方法,在多个控制器的软件定义网络场景下,为部分交换机选择一个控制器映射,这些交换机被称为sm交换机,这个控制器负责管理所有sm交换机发送的请求;并为其他交换机同时选择多个控制器同时映射,这些交换机被称为mm交换机,mm交换机在收到新的数据流时,按照预先分配的权重为多个控制器分配处理请求;控制器处理完某条数据流的请求时,与其他映射到此交换机的控制器同步状态信息。本发明可以通过调整各交换机、控制器映射的权重分配从而均衡控制器间负载。克服了传统控制器映射的高切换延迟、控制器负载不均匀、同步代价高等缺点,通过对数据请求的合理调度提高控制平面的资源利用率,避免控制器拥塞。一种软件定义网络控制器混合映射方法,数据平面中的所有交换机都可以在上面配置控制器的ip地址及端口号从而确定其映射的控制器,本方法确定部分sm交换机及mm交换机,为到达的新数据流生成请求发送给各控制器,通过调整mm交换机的权重从而均衡各控制器间的负载,防止控制器拥塞。

如图1所示,一种软件定义网络控制器混合映射方法,包括以下步骤:

s01:根据预设算法在全网的接入交换机中选择至少一个交换机作为sm交换机,将sm交换机与单个控制器进行映射,sm交换机为新到达的数据流生成请求并全部发送给唯一映射的控制器;

s02:将全网中所有交换机中剩下的交换机作为mm交换机,将mm交换机与多个控制器同时进行映射,所述mm交换机为每个映射的控制器分配权重,所述mm交换机为新到达的数据流生成请求并根据数据请求的哈希值以及各控制器对应的权重值选择一个映射的控制器发送;

s03:控制器接受到请求后,生成对应的应答回复给交换机,如果该交换机同时映射多个控制器,控制器同时向其他控制器发送同步信息。

1)网络运营商或管理员为各交换机分配控制器。

a.在全网范围内选择部分交换机,为其设置唯一的控制器,控制器的类别选项为master。可以根据预设算法选择交换机,例如交换机的性能等等,也可以随机选择或者由管理员选择。

b.为剩余的交换机设置多个控制器,控制器的类别设置为equal,并在交换机上设置各控制器对应的权重值,若交换机与某个控制器之间没有映射,则将权重值设为0,一个交换机上映射的控制器权重值之和为1。

2)数据流请求(以packet-in请求为例):当有新的数据流到达某个交换机时,首先查找交换机上的流表项,若有对应项目,则按照规则进行转发。若没有规则匹配,交换机生成一个packet-in请求发送给控制器。

a.当该交换机是sm交换机时,直接将请求发送给唯一映射的控制器。

b.若该交换机是mm交换机时,交换机将该数据的数据包头用哈希函数生成一个散列值,并将这个值归一成一个小于或等于1的数,将这个数分别减去权重数组的各权重值,直到出现负数或0,最后减去的权重对应的控制器就是为这个请求分配的控制器,交换机将请求发送给该控制器。

3)控制器应答:控制器接收到该请求时,为对应的数据流计算路由,根据路由结果为路径上的所有交换机安装路由规则。

4)拥塞避免:当某个控制器上的负载量高于一个安全阈值时,控制器修改映射到它的mm交换机的权重,从而降低自己处理的请求量,均衡各控制器的负载,防止个别控制器的拥塞。

下面结合具体实施例进行说明,具体步骤如下:

(1)在实施例的整个过程中,共有3个交换机v1,v2,v3,以及2各个控制器c1,c2。运营商或网络管理员首先确定全网的sm交换机以及mm交换机数目,假设sm交换机、mm交换机数量分别为1和2,且总的映射数不能超过5,则交换机和控制器之间的映射关系如图2所示。sm交换机v1选择与控制器c1映射,mm交换机v2选择同时与控制器c1、c2映射,mm交换机v3选择同时与控制器c1、c2映射。在sm交换机v1上设置控制器的ip,tcp端口号为c1对应的ip及端口号,并设置控制器类别为master。在mm交换机v2和v3上设置两个控制器的ip及端口号,分别对应控制器c1及c2,类别都为equal,并设置交换机上的权重值为c1:0.5,c2:0.5,设置完成后控制器映射初始配置完成。

(2)以packet-in请求为例,说明控制器如何处理交换机请求。当有新的数据流到达交换机时,若有流表项匹配,则根据流表项规则进行转发或者丢弃。若没有流表项匹配,则在交换机上生成packet-in请求包,并发给控制器。

(2.1)若在v1上生成了packet-in请求,由于v1是sm交换机,则交换机直接将请求发送给控制器c1;

(2.2)若在如图3所示的交换机v1上生成了packet-in请求,由于它是mm交换机,则交换机将数据的包头提取出来,生成一个哈希值(例如0.6),则用0.6依次减去图3中所示的3个控制器c1,c2,c3的权重值(分别为0.5,0.25,0.25);因为0.6-0.5=0.1且0.1>0,则该交换机v1不选择控制器c1发送该请求;由于0.1-0.25=-0.15且-0.15<0,则该交换机v1选择向控制器c2发送这条请求。哈希值若为0.4和0.9,则生成的请求分别需要发送给控制器c1和c3。

(3)当控制器收到该请求时,计算该数据流的路由,并在该路径上的所有交换机上部署流表项,指定数据流的下一跳对应的端口,完成请求的处理,本内容不是控制器映射方法的重点,故不作详细说明。各控制器处理完请求后,需要将处理结果发送给另外两个控制器,同步数据流的状态信息。

(4)假设3个交换机上的流请求速率都为每秒100个请求,控制器的安全处理阈值为每秒180个。控制器映射及权重初始设置完成时,v2,v3上的权重分配都为c1:0.5,c2:0.5,如图4所示。此时,控制器c1上的请求数达到每秒200个请求,超过了控制器的安全处理阈值,因此控制器c1命令mm交换机v2,v3调整各自权重数组,v2上的权重被调整为c1:0.25,c2:0.75,v3上的权重也被调整为c1:0.25,c2:0.75。如图5所示,此时控制器c1:c2上每秒都处理150个请求,低于安全处理阈值,因此控制器间的负载被均衡了,有效避免了控制器拥塞等情况,提高控制平面的健壮性。

应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。

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