流量平滑方法、服务器及转发设备与流程

文档序号:18898781发布日期:2019-10-18 21:38阅读:363来源:国知局
流量平滑方法、服务器及转发设备与流程

本发明涉及通信领域,特别是涉及一种流量平滑方法、服务器及转发设备。



背景技术:

在软件定义网络(softwaredefinednetwork,sdn)中,交换机在接收到虚拟机(virtualmachine,vm)1的地址解析协议请求(arprequest)后,首包上送到sdn控制器(sdncontroller),控制器解析地址解析协议(addressresolutionprotocol,arp)地址,转发arprequest到被请求的vm2,收到vm2的arp应答(arpreply)后,将arpreply发送回vm1,同时形成openflow的流表下发到本地交换机,后续报文经过交换机时将检查转发表项,对符合规则的报文转发到vm2,不需要经过控制器转发。

网络对控制器以及交换机的计算能力提出挑战,瓶颈在首包上送的能力。由于交换机上送的报文太多,会造成和控制器链路的流量阻塞,甚至断链;同时影响流表的下发,导致未知流量无法按照策略转发,如果继续上送控制器,网络阻塞将恶化,无法恢复。同时对于大型网络来说,管理着越来越复杂的网络和设备,并且各种复杂的应用以及越来越大的数据流量,而且网络中拓扑是动态协议计算的,因此管理员无法知道具体的网络设备节点,难以判断是否存在更优化的空间,并且不能随时动态调整监控设备。



技术实现要素:

为了克服上述缺陷,本发明要解决的技术问题是提供一种流量平滑方法、服务器及转发设备,用以至少提高控制链路的性能。

为解决上述技术问题,本发明中的一种流量平滑方法,包括:

生成流量配置模板,所述流量配置模板用于控制转发设备在控制链路向软件定义网络sdn控制器发送的控制报文的速率;

将所述流量配置模板发送给所述sdn控制器。

为解决上述技术问题,本发明中的一种流量平滑方法,包括:

接收控制报文;

根据预先从sdn控制器获取的流量配置模板,在控制链路上,将所述控制报文发送给所述sdn控制器。

为解决上述技术问题,本发明中的一种流量平滑服务器,包括存储器和处理器;所述存储器存储有流量平滑计算机程序,所述处理器执行所述计算机程序时,以实现如上所述方法的步骤。

为解决上述技术问题,本发明中的一种转发设备,包括存储器和处理器;所述存储器存储有流量平滑计算机程序,所述处理器执行所述计算机程序时,以实现如上所述方法的步骤。

本发明有益效果如下:

本发明中方法、服务器及转发设备,通过在服务器侧生成流量配置模本,以使转发设备根据流量配置模板平滑控制链路的报文传输速率,从而有效提高控制链路的性能,并有效提高转发设备的配置效率,减少配置错误,节约了维护成本。

附图说明

图1是本发明实施例中服务器侧的流量平滑方法的流程图;

图2是本发明实施例中生成流量配置模板的流程图;

图3是本发明实施例中下发流量配置模板的流程图;

图4是本发明实施例中转发设备侧的流量平滑方法的流程图;

图5是本发明实施例中协议报文的流量平滑方法的流程图;

图6是本发明实施例中缓存报文特征信息的流程图;

图7是本发明实施例中封装报文上送sdn控制器的流程图;

图8是本发明实施例中一种流量平滑服务器的结构示意图;

图9是本发明实施例中一种转发设备的结构示意图。

具体实施方式

为了解决现有技术的问题,本发明提供了一种流量平滑方法、服务器、转发设备及计算机可读存储介质,本发明通过计算平台监控收集网络节点转发缓存能力,并计算网络节点的流量配置,并下发流量配置模板,以控制网络节点与控制器之间通道带宽,平滑控制通道流量,保证控制链路可用性。

本发明中计算平台可以是云计算平台,在具体实现时可以通过服务器来实现;本发明中网络节点包括转发设备,例如交换机。

详细说,本发明在协议控制面上,实例化虚拟网络资源,通过sdn控制器或者上层计算平台编排、池化网络资源,并管理虚拟网络功能的生命周期,将虚拟网络资源加入到编排器的目录,提供网络功能的信息。例如实例化网络,可以通过标准协议(cloudinit)或者通过执行脚本编译完成,然后通过北向接口给sdn控制器下发的实例化网络,北向接口也可以使用私有的协议同步给sdn控制器;从而相对于现有技术,不仅由分布式的网络节点单独的配置变成了集中式控制面下的统一配置,相对于传统的交换机的配置下发,减少网络的分散性,全面考虑网络拓扑;而且通过平台计算,自动下发配置,大大减少了配置错误的可能,节约了维护成本。本发明中计算平台可以又管理软件构成;sdn控制器可以简称为控制器。

本发明在数据转发面上,主要平滑sdn控制器与交换机之间的控制链路,通过只提取并保存控制报文的报文特征信息,再控制链路空闲后,重新根据报文特征信息组包上送控制器,占用交换机内存少。交换机控制流量平滑上送控制器,通过缓存队列记录上送的协议报文信息或者未知流量的媒体访问控制(mac)信息,按照设置的速率平滑上报控制器,减小控制器压力,同时可以选择开启或者关闭数据面泛洪功能,控制未知流量继续泛洪到隧道对端设备或者直接丢弃。其中未知流量也可以称为未知数据报文或未被标识的数据报文。基于上述描述,以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不限定本发明。

实施例一

本发明实施例提供一种流量平滑方法,如图1所示,所述方法包括:

s101,生成流量配置模板,所述流量配置模板用于控制转发设备在控制链路向软件定义网络sdn控制器发送的控制报文的速率;

s102,将所述流量配置模板发送给所述sdn控制器。

本发明实施例中方法在服务器中执行;本发明实施例中控制报文具体为在控制链路上发送的报文,例如接入报文、接入请求报文、转发设备向sdn控制器发送的首个报文。

本发明实施例通过生成流量配置模板,并将所述流量配置模板发送给所述sdn控制器,从而使sdn控制器将流量配置模板发送给转发设备,以使转发设备根据流量配置模板在控制链路上向sdn控制器发送控制报文,从而减少向sdn控制器送的报文数量,有效避免控制链路的流量阻塞、断链,从而提高提高控制链路的性能。

本发明实施例通过服务器统一生成流量配置模板,从而将sdn控制器的控制面剥离,由服务器上的统一指令来管理转发路径上的所有转发设备,从而可以消除大量的手动配置,进而可以有效提高配置效率,减少配置错误,节约了维护成本。

例如,一个交换机下挂20-30个vm,每秒大概可以产生500以上的新流,就是说每秒有500次跟一个新的设备通信,如果控制器有500k的事务处理系统(transactionprocessingsystems,tps)性能,那么一个控制器大概可以管理1000个vm,当一个数据中心规模在15k的时候,单节点控制器无法负载,就需要控制器集群来负担流量。集群控制器节点的增加也进一步加重了网络中交换机的通信负担,上送的报文封装成packetin报文发送给控制器。

如果影响流表的下发,将导致未知流量无法按照策略转发,如果继续上送控制器,网络阻塞将恶化,无法恢复。并且对于大型网络来说,管理着越来越复杂的网络和设备,各种复杂的应用以及越来越大的数据流量,而且网络中拓扑是动态协议计算的,因此管理员无法知道具体的网络设备节点,难以判断是否存在更优化的空间,并且不能随时动态调整监控设备,而本发明实施例通过服务器统一生成流量配置模板,可以消除大量的手动配置,从而有效提高配置效率,减少配置错误,节约了维护成本。

在上述实施例的基础上,进一步提出本发明实施例的变型。

在本发明实施例中,可选地,所述流量配置模板包括与报文类型对应的队列特征信息、队列优先级、队列缓存阈值、队列速率阈值和溢出动作。

在本发明实施例中,可选地,所述生成流量配置模板,包括:

从所述sdn控制器获取网络规模和所述转发设备的转发缓存能力;

根据所述网络规模和所述转发缓存能力,生成流量配置模板。

在本发明实施例中,可选地,所述控制报文包括接入协议报文和未被标识的数据报文;所述报文类型包括协议类型和用于表明数据报文未被标识的未知类型。

例如接入协议报文包括arp、dhcp等协议报文。报文类型包括arp、dhcp等。

本发明可选实施例中,对占用控制链路带宽比较多的控制报文,如arp、dhcp等协议报文以及未知数据报文,需要平滑限速控制链路流量,由服务器负责处理池化资源,初始化默认的流量模板,分类报文类型的队列特征信息、队列缓存阈值、队列优先级、队列速率阈值等。

当交换机设备上线,sdn控制器发现拓扑节点,在收到交换机上报支持能力后,由sdn控制器上报网络节点的支持能力;服务器根据支持能力计算,生成具体的流量配置模板,从而实现使用上层的服务器来实现网络资源的实例化,通过注入生成的流量配置模板,编排具体业务,然后通过北向接口下发到控制器,由控制器下发具体配置给交换机。

实施例二

基于实施例一描述,本发明实施例提供一种可选的流量平滑方法,具体提供一种通过云计算平台实例化网络资源的方法,本发明实施例中方法在服务器中执行,如图2所示,所述方法包括:

步骤11,云计算平台根据网络规模以及类型生成默认模板资源,包括(缓存)队列特征信息、队列(缓存)阀值、(缓存)队列优先级、(缓存)队列速率阈值、(缓冲队列平滑速率)等池化资源;

步骤12,当交换机上线,交换机与控制器建立连接后,交换机上报拓扑,控制器发现交换机的拓扑节点,协议交换机能力;

步骤13,根据交换机能力,控制器将限速平滑支持参数通知云计算平台,云计算平台统一分配网络资源,生成流量配置模板;

基于以上步骤,云计算平台完成流量配置模板的生成,进而可以通过注入流量配置模板,编排业务,如图3所示,所述方法进一步包括:

步骤21,云计算平台实例化网络资源,生成流量配置模板,通过北向接口下发到控制器;当然流量配置模板也可以称为平滑限速配置模板;

步骤22,控制器根据不同的虚拟的网络功能(virtualnetworkfeature,vnf),判断网络节点角色,是否支持平滑限速能力,如果支持下发流量配置模板;其中网络节点可以为转发设备。

步骤23,下发流量配置模板,在模板流量配置中包括不同分类的协议报文类型,在流量配置模板中也包括每个协议报文设置单独的队列特征值、队列阀值,队列优先级以及队列速率阈值。

实施例三

本发明实施例提供一种流量平滑方法,如图4所示,所述方法包括:

s201,接收控制报文;

s202,根据预先从sdn控制器获取的流量配置模板,在控制链路上,将所述控制报文发送给所述sdn控制器;在具体实现时,对所述控制报文进行封装后发送给所述sdn控制器,例如封装成packetin报文。

本发明实施例中方法在转发设备中执行,例如在交换机中执行。

本发明实施例通过获取服务器生成的流量配置模板,在控制链路上向sdn控制器发送控制报文,从而减少向sdn控制器送的报文数量,有效避免控制链路的流量阻塞、断链,从而提高提高控制链路的性能;并可以有效提高配置效率,减少配置错误,节约了维护成本。

在上述实施例的基础上,进一步提出本发明实施例的变型。

在本发明实施例中,可选地,所述根据预先从sdn控制器获取的流量配置模板,在控制链路上,将所述控制报文发送给所述sdn控制器,包括:

根据所述流量配置模板,提取所述控制报文的报文特征信息,并在所述控制链路上,将所述报文特征信息封装后发送给所述sdn控制器。

本发明可选实施例,通过提取所述控制报文的报文特征信息,将所述报文特征信息封装后发送给所述sdn控制器,从而可以有效平滑发送到sdn控制器的packetin报文的速率,保证sdn控制器不会突发受到太大的流量冲击,从而有效避免影响sdn控制器下发转发流表的速度,有效避免交换机与sdn控制器之间断链。

在本发明实施例中,可选地,控制报文包括协议报文和未知数据报文。

在本发明实施例中,可选地,当交换机接收到下挂vm发送的流量,当收到的流量属于流量配置模板中的协议报文时,并且若接收速率小于流量配置模板中相应的队列速率阈值,则封装报文在openflowpacketin报文中上送给sdn控制器;若接收速率超过了队列速率阈值,则提取报文特征信息,并缓冲报文特征信息到相应的缓存队列中;

当收到的流量属于未知数据报文,也按照上述的流程处理,同时为了防止未知数据报文一直上送冲击交换机,对未知数据报文下发流表,抑制未知数据报文的冲击。

在一定的时间隔内,如果上送控制器的报文没有达到上送阈值,按照队列优先级扫描相应的缓存队列,提取报文特征信息,重新封装packetin报文发送给sdn控制器,同时将报文特征信息从缓存队列中删除,直到缓存队列中没有缓存信息,继续扫描下一个缓存对队列。

基于本发明可选实施例,所述流量配置模板包括与报文类型对应的队列速率阈值。

在本发明可选实施例中,可选地,所述根据所述流量配置模板,提取所述控制报文的报文特征信息,包括:

根据所述接入报文的报文类型和所述流量配置模板,确定与所述接入报文对应的队列速率阈值;

当接收所述控制报文的接收速率不小于确定的队列速率阈值时,提取所述控制报文的报文特征信息。

在本发明可选实施例中,可选地,所述在所述控制链路上,将所述报文特征信息封装后发送给所述sdn控制器,包括:

当所述接收速率从不小于确定的队列速率阈值转变成小于确定的队列速率阈值后,将所述报文特征信息进行封装,并在所述控制链路上发送给所述sdn控制器。

在本发明可选实施例中,可选地,所述当所述接收速率从不小于确定的队列速率阈值转变成小于确定的队列速率阈值后,将所述报文特征信息进行封装,并在所述控制链路上发送给所述sdn控制器之前,包括:

将所述报文特征信息存储在与所述控制报文对应的缓存队列中。

其中,所述流量配置模板还包括与报文类型对应的队列特征信息、队列缓存阈值和溢出动作。

在本发明可选实施例中,可选地,所述将所述报文特征信息存储在与所述控制报文对应的缓存队列中,包括:

根据所述控制报文的报文类型和所述流量配置模板,确定与所述控制报文对应的队列特征信息、队列缓存阈值和溢出动作;

根据确定的队列特征信息,确定所述缓存队列;

根据确定的队列缓存阈值,判断所述缓存队列是否溢出;

若溢出,根据确定的溢出动作,对所述控制报文进行处理;

若未溢出,将所述报文特征信息存储在与所述缓存队列中。

其中,所述流量配置模板还包括与报文类型对应的队列优先级。

在本发明可选实施例中,可选地,所述将所述报文特征信息进行封装,并在所述控制链路上发送给所述sdn控制器之前,包括:

根据所述报文类型和所述流量配置模板,确定与所述报文类型对应的队列优先级;

根据确定的队列优先级,从所述缓存队列中读取所述报文特征信息。

其中,所述控制报文包括接入协议报文和未被标识的数据报文;所述报文类型包括协议类型和用于表明数据报文未被标识的未知类型。

在本发明可选实施例中,可选地,当所述控制报文为未被标识的数据报文时,所述根据所述接入报文的报文类型和所述流量配置模板,确定与所述接入报文对应的队列速率阈值之后,包括:

当接收所述未被标识的数据报文的接收速率小于确定的队列速率阈值时,提取所述未被标识的数据报文的媒体访问控制信息;

将所述媒体访问控制信息发送给所述sdn控制器。

实施例四

基于实施例三描述,本发明实施例提供一种可选的流量平滑方法,具体提供一种控制报文上送交换机处理的方法,本发明实施例中方法在服务器中执行,本发明实施例中监控的控制报文不仅包括arp、dhcp等协议报文,而且还包括根据具体的组网可以扩展协议种类,例如主要处理虚拟机接入协议ipv6nd、stp等协议,本发明实施例中监控到控制报文攻击超过速率阈值,就缓冲报文特征信息,并延时上送,从而平滑处理协议报文packetin。

如图5所示,所述方法包括:

步骤31,交换机收到vm上送的报文,根据流量资源配置模板查找队列特征信息,如果不是需要监控的协议报文,上送控制器处理;

步骤32,如果是需要监控的协议报文,判断速率令牌桶是否有令牌。具体地,判断是否超出了队列速率阀值,如果没有超出队列速率速率阀值,执行步骤33;如果超出,执行步骤34;

步骤33,将速率令牌桶的令牌减1,报文封装packetin上送sdn控制器;

步骤34,如果超出速率阀值,下一跳判断是否超出缓存队列的阀值,如果没有超重缓存队列的阀值,执行步骤35;如果超出,执行步骤36。

步骤35,提取报文特征信息保存在缓存队列中,延时发送。

步骤36,根据溢出动作配置丢弃或者强制上送控制器。

实施例五

基于实施例三和实施例四描述,本发明实施例提供一种可选的流量平滑方法,具体提供一种控制报文上送交换机处理的方法,本发明实施例中方法在服务器中执行,本发明实施例中监控的控制报文包括未知数据报文。如图6所示,所述方法包括:

步骤41,交换机收到未知数据报文。

步骤42,判断是否超出了速率阀值;如果没有执行步骤43,如果有执行步骤46。

步骤43,如果没有超出速率阈值,提取报文mac信息,将速率令牌桶的令牌减1,上送报文给控制器学习地址使用。

步骤44,下发临时mac流表,出口为空出口,抑制流量的继续上送。

步骤45,控制器学习mac地址,生成实际生效的流表,覆盖之前临时流表,正确引流。

步骤46,如果数据报文超出了速率阈值,提取报文特征信息。

步骤47,判断是否超过了队列阀值,

步骤48,如果没有超出队列缓存阈值,缓存报文特征mac;

步骤49,如果超出了队列阀值,根据溢出动作上送报文到控制器或者直接丢弃报文。

基于以上步骤,完成报文特征信息的缓存,从而可以进行扫描队列中缓存的特征信息,封装到packetin报文中发送给控制器,如图7所示,所述方法进一步包括:

步骤51,定时扫描缓存队列,使用单速率双通算法,定时间隔为内部最小时钟tick的1000倍作为定时的基本单位,可以保证交换机处理的最大利用率;

步骤52,定时扫描环境队列,判断速率令牌桶中是否有令牌。

步骤53,如果速率令牌桶中没有令牌,放入速率个数的令牌;

步骤54,如果速率令牌桶中还有剩余令牌,提取缓存队列中的特征信息,重新组包,封装成packetin报文发送给控制器,同时将特征信息从缓存队列中删除;

步骤55,如果高优先级缓冲队列为空,继续查找低优先级的队列,重复操作,直到所有缓存队列都为空,结束扫描。

实施例六

本发明实施例提供一种流量平滑服务器,如图8所示,所述服务器包括存储器(1)60和处理器(1)62;所述存储器1存储有流量平滑计算机程序,所述处理器1执行所述计算机程序时,以实现如实施例一和实施例二中任意一项所述方法的步骤。

例如,以实现如下步骤:

生成流量配置模板,所述流量配置模板用于控制转发设备在控制链路向软件定义网络sdn控制器发送的控制报文的速率;

将所述流量配置模板发送给所述sdn控制器。

在本发明实施例中,可选地,所述流量配置模板包括与报文类型对应的队列特征信息、队列优先级、队列缓存阈值、队列速率阈值和溢出动作。

在本发明实施例中,可选地,所述生成流量配置模板,包括:

从所述sdn控制器获取网络规模和所述转发设备的转发缓存能力;

根据所述网络规模和所述转发缓存能力,生成流量配置模板。

当然,在具体实现时,还可以参阅实施例一和实施例二,也具有相应的技术效果。

实施例七

本发明实施例提供一种转发设备,如图9所示,所述转发设备包括存储器(2)70和处理器(2)72;所述存储器存储有流量平滑计算机程序,所述处理器执行所述计算机程序时,以实现如实施例五中任意一项所述方法的步骤。

例如,以实现如下步骤:

接收控制报文;

根据预先从sdn控制器获取的流量配置模板,在控制链路上,将所述控制报文发送给所述sdn控制器。

在本发明实施例中,可选地,所述根据预先从sdn控制器获取的流量配置模板,在控制链路上,将所述控制报文发送给所述sdn控制器,包括:

根据所述流量配置模板,提取所述控制报文的报文特征信息,并在所述控制链路上,将所述报文特征信息封装后发送给所述sdn控制器。

在本发明实施例中,可选地,所述流量配置模板包括与报文类型对应的队列速率阈值。

在本发明实施例中,可选地,所述根据所述流量配置模板,提取所述控制报文的报文特征信息,包括:

根据所述接入报文的报文类型和所述流量配置模板,确定与所述接入报文对应的队列速率阈值;

当接收所述控制报文的接收速率不小于确定的队列速率阈值时,提取所述控制报文的报文特征信息。

在本发明实施例中,可选地,所述在所述控制链路上,将所述报文特征信息封装后发送给所述sdn控制器,包括:

当所述接收速率从不小于确定的队列速率阈值转变成小于确定的队列速率阈值后,将所述报文特征信息进行封装,并在所述控制链路上发送给所述sdn控制器。

在本发明实施例中,可选地,所述当所述接收速率从不小于确定的队列速率阈值转变成小于确定的队列速率阈值后,将所述报文特征信息进行封装,并在所述控制链路上发送给所述sdn控制器之前,包括:

将所述报文特征信息存储在与所述控制报文对应的缓存队列中。

在本发明实施例中,可选地,所述流量配置模板还包括与报文类型对应的队列特征信息、队列缓存阈值和溢出动作。

在本发明实施例中,可选地,所述将所述报文特征信息存储在与所述控制报文对应的缓存队列中,包括:

根据所述控制报文的报文类型和所述流量配置模板,确定与所述控制报文对应的队列特征信息、队列缓存阈值和溢出动作;

根据确定的队列特征信息,确定所述缓存队列;

根据确定的队列缓存阈值,判断所述缓存队列是否溢出;

若溢出,根据确定的溢出动作,对所述控制报文进行处理;

若未溢出,将所述报文特征信息存储在与所述缓存队列中。

在本发明实施例中,可选地,所述流量配置模板还包括与报文类型对应的队列优先级。

在本发明实施例中,可选地,所述将所述报文特征信息进行封装,并在所述控制链路上发送给所述sdn控制器之前,包括:

根据所述报文类型和所述流量配置模板,确定与所述报文类型对应的队列优先级;

根据确定的队列优先级,从所述缓存队列中读取所述报文特征信息。

在本发明实施例中,可选地,所述控制报文包括接入协议报文和未被标识的数据报文;所述报文类型包括协议类型和用于表明数据报文未被标识的未知类型。

在本发明实施例中,可选地,当所述控制报文为未被标识的数据报文时,所述根据所述接入报文的报文类型和所述流量配置模板,确定与所述接入报文对应的队列速率阈值之后,包括:

当接收所述未被标识的数据报文的接收速率小于确定的队列速率阈值时,提取所述未被标识的数据报文的媒体访问控制信息;

将所述媒体访问控制信息发送给所述sdn控制器。

当然,在具体实现时,还可以参阅实施例三和实施例五,也具有相应的技术效果。

实施例八

本发明实施例提供一种计算机可读存储介质,所述存储介质存储有用于服务器的流量平滑计算机程序1,和/或存储有用于转发设备的流量平滑计算机程序2;

当计算机程序1被至少一个处理器执行时,以实现如实施例一和实施例二中任意一项所述方法的步骤;

当计算机程序2被至少一个处理器执行时,以实现如实施例三-实施例五中任意一项所述方法的步骤。

本发明实施例在具体实现时,可以参阅上述各个实施例,具有相应的技术效果。

本发明实施例中计算机可读存储介质可以是ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、移动硬盘、cd-rom或者本领域已知的任何其他形式的存储介质。可以将一种存储介质藕接至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息;或者该存储介质可以是处理器的组成部分。处理器和存储介质可以位于专用集成电路中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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