本发明属于软件定义网络路由技术领域,具体地涉及一种在软件定义网络(softwaredefinednetwork,sdn)中基于规则预部署的网络高效路由方法。
背景技术:
随着信息技术的发展,云网络和互联网上的流量都急剧增加。一方面,随着信息技术的发展,许多新的基于网络的应用(如搜索和内容分发)不断涌现。因此,网络应该能够容纳这些应用程序的大量数据流。另一方面,一些热点事件也会通过网络引起很多人的关注。例如,许多观众将通过互联网观看一些有吸引力的体育决赛的直播。近年来,sdn已经成为一种潜在的技术,可以更好地管理大量的流。sdn通常分为控制平面和数据平面。控制平面由一个逻辑集中式控制器组成,该控制器可以是一组分布式控制器,负责管理整个网络。数据平面由一组sdn交换机组成。随着更多的数据流到达网络,交换机将向控制器发送更多的信息包,这将导致更高的控制器负载和响应时间。
现有的减少控制器负载和响应时间的方案有三种:
(1)具有静态控制器分配机制的多个控制器方案:控制平面被实现为一个分布式控制器集群,每个交换机只连接/关联一个控制器。交换机通过消息将数据包传送到不同的控制器,与单控制器框架相比,这有助于减少控制器负载。然而,由于网络中的业务在空间和时间上动态地波动,因此一些控制器可能仍然处于高负载的状态,甚至拥塞。事实上,一旦部署了sdn,它的基础设施在实践中几乎不会改变。同时,更多的控制器在控制平面中需要大量的通信开销来保持网络的一致性,并增加管理的复杂性。
(2)动态控制器分配机制:将与负载较高的控制器相连的交换机断开,并将其重新连接到负载较低的控制器上,以此减少控制器的负载。然而,动态控制器分配方案在服务连续性方面存在不足。事实上,业务动态常常会触发交换机改变其控制器分配,这可能会中断服务的连续性。
(3)静态路由方案:为网络中所有的数据流都在交换机中提前部署好转发规则。由于每个流在到达交换机时可以匹配至少一个预先部署的规则,交换机不会向控制器发送任何packet-in消息包。因此,控制器负载非常低,响应时间也很短。然而,静态路由不能有效地处理流量和管理策略的动态变化。首先,由于动态交通强度的存在,控制器无法对交通流提供动态的路径控制,可能会引起一些数据链路上的瞬时拥塞,从而导致数据包丢失和吞吐量降低。其次,对于许多实际应用程序,网络运营商希望指定细粒度策略来驱动底层交换机如何转发、丢弃和测量流量。然而,由于流的管理策略可能会随着时间的推移而改变(例如,由于主机移动性或中间件的放置),静态路由方案不能很好地适应这些变化。
技术实现要素:
针对上述存在的技术问题,本发明提出了一种基于规则预部署的软件定义网络高效路由方法,该方法首先主动式地配置部署通配符规则,然后被动式地对未能匹配通配符规则的数据流进行动态路由,有效地使用了有限的数据层资源和控制层处理能力,避免了软件定义网络中路由造成的高表项消耗、高控制负载和响应时间等问题。
本发明的技术方案是:
一种基于规则预部署的软件定义网络高效路由方法,包括以下步骤:
s01:根据当前网络的状态信息预测预测每一交换机下一时段可能到来的数据流,在所有交换机上配置部署相应的通配符规则,所述通配符规则指定宏流,每个通配符能够匹配经过交换机的具有相同特征的流;
s02:当下一时段的数据流到达交换机时,首先进行交换机中预先配置部署的通配符规则匹配,如果匹配,则数据流根据通配符规则直接进行转发路由;如果不匹配,则交换机打包packet-in信息,将该数据流信息上报给控制层,控制层根据全网状态,计算并下发精确匹配规则,从而实现动态路由,完成数据流的转发。
优选的技术方案中,所述步骤s01中每个交换机以通配符为单位划分的宏流集合满足两个约束:1)经过该交换机的每条流属于一个流集合;2)任意两个通配符对应的流集合没有交集。
优选的技术方案中,所述步骤s01中还包括通过采样包定期收集网络中每条数据流的信息,根据每条数据流的信息预测宏流信息。
优选的技术方案中,控制器根据网络流量统计的信息计算宏流的流量大小,得到每个宏流中单条流的数量。
优选的技术方案中,所述交换机根据数据报头的匹配结果选择转发路由,并在数据流经过交换机时更新统计信息。
优选的技术方案中,所述步骤s02中在数据流根据通配符规则选择宏流子集之后,首先通过预测删除没有流量的静态路由条目,然后,控制器将更新的流条目安装到每个交换机,并将空闲超时和硬超时设置为零。
优选的技术方案中,所述步骤s01中使用布尔变量
优选的技术方案中,所述步骤s01中,将网络中数据流经过的时间划分为固定的时段,在每一时段的刚开始,控制层通过网络协议向所有数据层的所有sdn交换机发送read-state请求收集流量信息,sdn交换机收到read-state请求后,将数据流信息打包,生成应答包发送给控制器,控制器收集到所有sdn交换机的应答后,汇总成全网的数据流信息,得到当前网络的状态信息。
与现有技术相比,本发明的优点是:
(1)流表资源消耗少:与现有的细粒度路由方案相比,本方法通过主动式地为宏流部署通配符规则,可以大大降低数据层交换机中的表项资源消耗。
(2)控制层负载低、响应时间短:本方法通过部署通配符的方式,提前将宏流的转发规则保存至对应的交换机表项中,从而大大降低了数据流到来时控制层与数据层信息交互的负载,减少了控制器的响应时间。
(3)可扩展性强:本方法通过结合主动式通配符规则部署和被动式精确匹配规则部署实现混合路由,减少了控制层面和数据层面的资源消耗,从而可以利用不同的目标对网络进行优化,例如最大化网络吞吐率等。
附图说明
下面结合附图及实施例对本发明作进一步描述:
图1为本发明基于规则预部署的软件定义网络架构示意图;
图2为本发明框架的主动式通配符规则安装的工作流程图;
图3为本发明框架的被动式精确匹配规则安装的工作流程图;
图4为本实施例网络拓扑图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
实施例:
下面结合附图,对本发明的较佳实施例作进一步说明。
如图1所示,一种基于规则预部署的软件定义网络高效路由方法,设计了一种新的网络架构,结合静态路由和动态路由的混合路由架构。本架构包含主动式通配符规则安装模块和被动式精确匹配规则安装模块。首先根据当前网络的状态信息预测下一时段可能经过某一交换机的数据流,并主动式地在该交换机上配置部署相应的通配符规则,保证预测正确的数据流能够在该交换机匹配到转发规则;接着当下一时段数据流到来时,先判断能否匹配通配符规则,当在入口交换机无法匹配通配符规则时,则被动式地利用packet-in消息上报控制器,控制器根据全网状态,计算并下发合适的精确匹配规则,从而实现动态路由,完成数据流的转发。本发明通过结合主动式通配符规则和被动式精确匹配规则的部署,实现了软件定义网络中的混合路由,减少了数据层交换机中的表项资源消耗,并且能够减少交换机与控制器的交互,降低控制器的负载和响应时间。本发明拥有良好的拓展性,具有广阔的应用前景。
一种基于规则预部署的软件定义网络高效路由方法,包括以下步骤:
s01:根据当前网络的状态信息预测预测每一交换机下一时段可能到来的数据流,在所有交换机上配置部署相应的通配符规则,所述通配符规则指定宏流,每个通配符能够匹配经过交换机的具有相同特征的流;
s02:当下一时段的数据流到达交换机时,首先进行交换机中预先配置部署的通配符规则匹配,如果匹配,则数据流根据通配符规则直接进行转发路由;如果不匹配,则交换机打包packet-in信息,将该数据流信息上报给控制层,控制层根据全网状态,计算并下发精确匹配规则,从而实现动态路由,完成数据流的转发。
主动式通配符规则部署安装的工作流程如图2所示,首先将网络中数据流经过的时间划分为固定的时段(例如数据中心为1分钟或主干网为5分钟),在每一时段的刚开始,控制层通过网络协议向所有数据层的所有sdn交换机发送read-state收集流量信息,sdn交换机收到read-state请求后,将数据流信息打包,生成应答包发送给控制器。控制器收集到所有sdn交换机的应答后,汇总成全网的数据流信息,得到当前网络的状态信息。
通配符指定比较粗的流粒度,也就是宏流。每个通配符可以匹配经过交换机的具有相同特征的流,如匹配源交换机和目的交换机地址都相同的所有流,因此sdn交换机中一条通配符规则可以匹配转发多条数据流。
通过采样包定期收集网络中每条数据流的信息,根据每条数据流的信息预测宏流信息。由于交换机中流表的大小有限,仅通过流表来测量每条流的信息是不切实际的。基于流量的测量(例如netflow和sflow)可以通过采样包为不同的测量任务提供通用支持,并且克服了交换机流表项不足的问题。
采用openflow协议的软件定义网络,sdn交换机根据数据报头(packetheader)的匹配结果选择转发路由。并在流经过交换机时测量数据流信息。控制器发送的read-state请求属于openflow中定义的multipartmessages。
控制器根据网络流量统计的信息计算宏流的流量大小,得到每个宏流中单条流的数量。由于预测误差和流量不确定性,我们应该保持一定的松弛控制器容量用于网络中不可预测的数据流,以避免较长的控制器响应时间。
在数据流根据通配符规则选择宏流子集之后,即静态路由后,首先通过预测删除没有流量的静态路由条目,然后,控制器将更新的流条目安装到每个交换机,并将空闲超时和硬超时设置为零。
每个交换机以通配符为单位划分的宏流集合满足两个约束:1)经过该交换机的每条流属于一个流集合;2)任意两个通配符对应的流集合没有交集。
主动式通配符规则和被动式精确匹配规则安装的细节信息如下。控制器为每条宏流计算了一个可行路径集合,通过在网络中安装通配符规则实现流表项资源的节约。我们使用布尔变量
被动式精确匹配规则部署安装的工作流程如图3所示,当数据流到达交换机时查询流表,首先进行交换机中预先配置部署的通配符规则匹配,如果匹配,则数据流根据通配符规则直接进行转发路由;如果不匹配,则交换机打包packet-in信息,将该数据流信息上报给控制层,控制层根据全网状态,计算并下发精确匹配规则,从而实现动态路由,完成数据流的转发。
如图4所示,本实施例的网络拓扑由7个支持openflow协议的交换机、6个终端设备和一个sdn控制器组成(例如ryu)。每一台交换机都与该控制器相连,为了简便没有将控制器在图中表示出来。ryu控制器运行在内核为i7-8700k、内存为32gb的服务器上。为了验证混合路由的可行性和高效性,在网络中生成了300条数据流,并且数据流服从2-8分布,也就是包含20%的大流和80%的小流。
采用网络中的部分流对图2和图3中的工作流程进行说明。假设有一部分流从终端设备h1->h2,具体工作流程如下:
(1)假设在当前时段h1->h2的路径v1->v6->v5->v4上已经部署好转发规则,当数据流到达入口交换机v1时,能够匹配到转发规则并进行路由到达终端h2。与此同时,控制器通过协议消息向交换机请求收集网络中的信息,例如流量信息、链路信息等,交换机将信息打包后发送给控制器;
(2)控制器在收到交换机发送的信息后,通过结合当前时段中网络的状态,对网络下一时段的数据流进行预测。假设控制器预测下一时段有从终端h1->h3的数据流,则通过openflow协议消息主动式地下发通配符规则在路径交换机v1->v6->v5上,下一时段所有从终端h1->h3的宏流都可以通过匹配该通配符规则完成网络中的路由;
(3)假设控制器预测下一时段网络中还有从终端h1->h2的数据流,并且当前网络中因为过多的数据流,可能出现拥塞的情况。控制器会根据网络信息重新计算一条路径,即v1->v2->v3->v4。并在这些交换机上部署优先级更高的通配符规则,下一时段当宏流到来时,可以根据新的路径进行路由,避免网络进一步拥塞,有效改善网络性能;
(4)当下一时段的流到达时,首先进行交换机中的规则匹配,一部分数据流能够匹配到上一时段预测并部署的通配符规则。而也有一部分流因为预测错误导致未能匹配到通配符规则,例如下一时段有从终端h1->h6的数据流,此时需要进行被动式地计算精确匹配规则。利用packet-in消息将数据包的信息打包发送给控制器,控制器根据网络状态,通过计算后下发流表项到相应的交换机中,实现动态路由。
为了说明本发明框架的高效性,本实施例借助图4所示网络拓扑,使用不同的路由方案进行对比,具体实施步骤如下:
(1)若网络中全部实施提前部署精确匹配表项,即静态路由。为网络中的所有数据流都提前部署好了流表项,例如,h1->h4的流量通过精确匹配表项由路径v1-v6-v5转发至目的地。该方案采用精确匹配表项,可以实现网络中所有数据流的路由,但是由于该方法采用的是静态路由,无法根据网络中的链路状态做出调整,可能出现网络拥塞的情况,从而导致网络中的链路使用率较高;
(2)若网络中全部实施被动式部署精确匹配表项;即动态路由。与静态路由不同,在数据流到达入口交换机之前,不会提前部署流表项。所有的数据流在入口交换机通过pcaket-in消息将流信息打包发送至控制器,通过控制器计算并下发流表项至路径交换机。该方法可以使得网络具有更好的性能(如链路使用率),数据流h1->h2有3条不同的路径可以选择,动态路由可以根据网络状态选择最优的路径进行路由。然而,该方法由于所有的数据流都要上报至控制器,增加了数据层与控制层的交互,给控制器带来很大的负载,控制器响应时间会因此增加;
(3)本发明通过主动式地为宏流安装通配符规则,有效降低了数据层与控制层的交互。例如为宏流h2->h6在路径v4->v3->v7上部署通配符规则,为宏流h2->h5在路径v4->v5->v6上部署通配符规则等。除此之外,本发明还通过被动式地为未能匹配通配符的数据流安装精确匹配规则,实现动态路由,提高网络性能,例如网络吞吐率等。
上述采用不同方案的网络性能如下表所示:
通过上述实施例可知,本发明方案将网络中的规则部署分为两个阶段:主动式通配符表项安装和被动式精确匹配表项安装。同时本发明打破了之前在网络中全部使用静态路由或者动态路由的思维方式,提出了混合路由方案,在尽可能使用通配符规则(减少流表项资源消耗)的同时,也能提高软件定义网络的性能。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。