CN115412499A - 一种流量传输方法、装置及控制器 - Google Patents
一种流量传输方法、装置及控制器 Download PDFInfo
- Publication number
- CN115412499A CN115412499A CN202211020213.1A CN202211020213A CN115412499A CN 115412499 A CN115412499 A CN 115412499A CN 202211020213 A CN202211020213 A CN 202211020213A CN 115412499 A CN115412499 A CN 115412499A
- Authority
- CN
- China
- Prior art keywords
- traffic
- route
- leaf
- spine
- flow
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000005540 biological transmission Effects 0.000 title claims abstract description 21
- 238000003860 storage Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 11
- 238000010586 diagram Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 9
- 238000004590 computer program Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/122—Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种流量传输方法、装置及控制器,该方法包括:若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定所述流量对应的目的地址;若确定第二spine设备存在所述目的地址对应的路由,确定第一leaf设备存在所述目的地址对应的等价路由,则对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,所述目标分担系数比例小于所述初始分担系数比例;将所述目标分担系数比例发送给第一leaf设备,由第一leaf设备发送所述等价路由对应的流量时,基于所述目标分担系数比例进行负载分担。通过本申请的技术方案,可以提高网络带宽的利用率,避免产生网络拥塞。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种流量传输方法、装置及控制器。
背景技术
当源设备与目的设备之间存在等价路由时,为了使流量均衡到达目的设备,通常会在源设备上进行负载分担,负载分担方式为,根据报文中的信息(如源IP地址、目的IP地址、源端口、目的端口和IP协议号等)确定该报文对应的路由,从而实现负载分担。比如说,等价路由包括路由A和路由B,若根据报文中的信息确定该报文对应路由A,则通过路由A发送该报文,若根据报文中的信息确定该报文对应路由B,则通过路由B发送该报文。这样,在需要发送大量报文时,就可以通过路由A和路由B均衡发送报文,实现负载分担。
但是,上述方式只能在源设备上实现负载分担,可能会导致源设备的下一跳设备产生网络拥塞,影响网络业务使用。比如说,路由A的下一跳设备为设备C,路由B的下一跳设备为设备D,虽然源设备可以均衡将报文发送给设备C和设备D,但是,假设设备C接收到大量针对目的设备的报文,而设备D只接收到少量针对目的设备的报文,则也会导致设备C产生网络拥塞。
发明内容
本申请提供一种流量传输方法,应用于控制器,所述方法包括:
获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息;
基于所述第一流量信息,若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定所述流量对应的目的地址;
基于第一路由信息和第二路由信息,若确定第二spine设备存在所述目的地址对应的路由,确定第一leaf设备存在所述目的地址对应的等价路由,所述等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,所述目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,所述目标分担系数比例小于所述初始分担系数比例;
将所述目标分担系数比例发送给第一leaf设备,由第一leaf设备发送所述等价路由对应的流量时,基于所述目标分担系数比例进行负载分担。
本申请提供一种流量传输装置,应用于控制器,所述装置包括:
获取模块,用于获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息;
确定模块,用于基于所述第一流量信息,若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定所述流量对应的目的地址;
处理模块,用于基于第一路由信息和第二路由信息,若确定第二spine设备存在所述目的地址对应的路由,确定第一leaf设备存在所述目的地址对应的等价路由,等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,所述目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,所述目标分担系数比例小于所述初始分担系数比例;
发送模块,用于将目标分担系数比例发送给第一leaf设备,由第一leaf设备发送所述等价路由对应的流量时,基于所述目标分担系数比例进行负载分担。
本申请提供一种控制器,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现本申请上述示例的流量传输方法。
由以上技术方案可见,本申请实施例中,控制器可以获取多个leaf设备和多个spine设备对应的路由信息,并获取多个spine设备和多个leaf设备对应的流量信息,从而获知全网路由信息和全网流量信息,基于全网路由信息和全网流量信息,在网络中即将产生网络拥塞时,控制器可以动态调整网络设备(如leaf设备)的分担系数比例,从而优化网络设备的网络配置,提高网络带宽的利用率,避免产生网络拥塞,提高业务的可靠性,保证网络业务的正常使用。
附图说明
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的流量传输方法的流程示意图;
图2A和图2B是本申请一种实施方式中的应用场景示意图;
图3是本申请一种实施方式中的系统网络结构示意图;
图4是本申请一种实施方式中的流量传输方法的流程示意图;
图5是本申请一种实施方式中的流量传输装置的结构示意图;
图6是本申请一种实施方式中的控制器的硬件结构图。
具体实施方式
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本申请实施例中提出一种流量传输方法,该方法可以应用于控制器,参见图1所示,为该流量传输方法的流程示意图,该方法可以包括:
步骤101、获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息。
步骤102、基于该第一流量信息,若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定该流量对应的目的地址,如目的IP地址。
步骤103、基于该第一路由信息和该第二路由信息,若确定第二spine设备存在该目的地址对应的路由,且确定第一leaf设备存在该目的地址对应的等价路由,该等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例。其中,该目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,该目标分担系数比例小于该初始分担系数比例。
步骤104、将该目标分担系数比例发送给第一leaf设备,由第一leaf设备在发送该等价路由对应的流量时,基于目标分担系数比例进行负载分担。
在一种可能的实施方式中,对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,可以包括但不限于:基于第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例;其中,第二出接口是第二spine设备上与该目的地址对应的路由对应的出接口。
在一种可能的实施方式中,基于第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,可以包括但不限于:基于第一已占用流量和第一出口带宽确定第一可用带宽;基于第二已占用流量和第二出口带宽确定第二可用带宽;基于第一可用带宽和第二可用带宽确定第一出接口与第二出接口之间的可用比例关系,基于该可用比例关系对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例。
在一种可能的实施方式中,还可以获取多个leaf设备对应的第二流量信息;基于该第二流量信息,可以确定第一leaf设备基于第一路由发送的第一流量和基于第二路由发送的第二流量。在此基础上,第一已占用流量的确定过程,可以包括但不限于:基于该第一流量信息确定第一出接口的总占用流量,并从该总占用流量中排除该第一流量得到第一已占用流量。第二已占用流量的确定过程,可以包括但不限于:基于该第一流量信息确定第二出接口的总占用流量,并从该总占用流量中排除该第二流量得到第二已占用流量。
在一种可能的实施方式中,获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息,并获取多个leaf设备对应的第二流量信息,可以包括但不限于:通过gRPC消息获取多个leaf设备对应的第一路由信息,并通过gRPC消息获取多个spine设备对应的第二路由信息;或者,通过NETCONF消息获取多个leaf设备对应的第一路由信息,并通过NETCONF消息获取多个spine设备对应的第二路由信息。通过netstream消息获取多个spine设备对应的第一流量信息,并通过netstream消息获取多个leaf设备对应的第二流量信息;或者,通过sFlow消息获取多个spine设备对应的第一流量信息,并通过sFlow消息获取多个leaf设备对应的第二流量信息;或者,通过ERSPAN消息获取多个spine设备对应的第一流量信息,并通过ERSPAN消息获取多个leaf设备对应的第二流量信息。
由以上技术方案可见,本申请实施例中,控制器可以获取多个leaf设备和多个spine设备对应的路由信息,并获取多个spine设备和多个leaf设备对应的流量信息,从而获知全网路由信息和全网流量信息,基于全网路由信息和全网流量信息,在网络中即将产生网络拥塞时,控制器可以动态调整网络设备(如leaf设备)的分担系数比例,从而优化网络设备的网络配置,提高网络带宽的利用率,避免产生网络拥塞,提高业务的可靠性,保证网络业务的正常使用。
以下结合具体应用场景,对本申请实施例的流量传输方法进行说明。
在一种可能的实施方式中,当源设备与目的设备之间存在等价路由时,为了使流量均衡到达目的设备,通常在源设备进行负载分担,负载分担方式包括:
1、根据报文中信息(如源IP地址、目的IP地址、源端口、目的端口和IP协议号等)确定报文对应的路由,从而实现负载分担。比如说,等价路由包括路由A和路由B,若根据报文中的信息确定报文对应路由A,则通过路由A发送报文,若根据报文中的信息确定报文对应路由B,则通过路由B发送报文。
2、在某些复杂的组网环境中,单一的负载分担算法可能不能满足负载分担需求,可能会出现负载分担不均匀的情况。在这种情况下,还可以通过指定不同负载分担算法来实现负载分担算法切换,从而保证负载分担均匀。
3、在使能基于带宽的负载分担功能的情况下,如果存在多个出接口,则按照出接口的带宽值计算出各出接口应该分配的带宽比例,然后按照带宽比例对报文进行转发。参见图2A所示,假设存在两个出接口,一个出接口为GE口,另一个出接口为10GE口,那么,由于出接口的带宽不同,如果按照等价负载分担,不能完全利用10GE口的转发能力,因此,可以按照出接口的带宽值配置负载分担系数,例如,可以配置负载分担系数为1:10,也就是说,10GE口承担的流量是GE口承担的流量的10倍,从而提高10GE口的利用率。
但是,上述方式只能在源设备上实现负载分担,可能会导致源设备的下一跳设备产生网络拥塞,影响网络业务使用。比如说,参见图2B所示,为应用场景示意图,spine设备201与每个leaf设备(如leaf设备203、leaf设备204、leaf设备205、leaf设备206)连接,spine设备202与每个leaf设备连接。针对leaf设备203发送给leaf设备205的报文,leaf设备203作为源设备,leaf设备205作为目的设备,spine设备201和spine设备202作为源设备的下一跳设备。
为了实现负载分担,假设leaf设备203将针对leaf设备205的100M流量发送给spine设备201,将针对leaf设备205的100M流量发送给spine设备202,leaf设备204将针对leaf设备205的100M流量发送给spine设备201,将针对leaf设备205的100M流量发送给spine设备202,基于此,spine设备201将200M流量发送给leaf设备205,spine设备202将200M流量发送给leaf设备205。在该情况下,spine设备201没有发生网络拥塞,spine设备202没有发生网络拥塞。
但是,假设leaf设备204与spine设备202之间的链路发生故障,那么,leaf设备203将针对leaf设备205的100M流量发送给spine设备201,将针对leaf设备205的100M流量发送给spine设备202,leaf设备204将针对leaf设备205的200M流量发送给spine设备201,基于此,spine设备201将300M流量发送给leaf设备205,spine设备202将100M流量发送给leaf设备205。在该情况下,spine设备201可能发生网络拥塞,spine设备202没有发生网络拥塞。
综上可以看出,虽然leaf设备203(或leaf设备204)能够实现负载分担,但是,可能导致leaf设备203的下一跳设备(如spine设备201)产生网络拥塞。
针对上述发现,本申请实施例中提出一种流量传输方法,控制器可以获知全网路由信息和全网流量信息,基于全网路由信息和全网流量信息,在网络中即将产生网络拥塞时,控制器可以动态调整网络设备(如leaf设备)的分担系数比例,从而使用负载分担系数优化网络设备的网络配置,提高网络带宽的利用率,避免产生网络拥塞,提高业务的可靠性,保证网络业务的正常使用。
参见图3所示,为本申请实施例的应用场景示意图,spine设备301与每个leaf设备(如leaf设备303、leaf设备304、leaf设备305、leaf设备306)连接,spine设备302与每个leaf设备连接。控制器307与每个spine设备连接,控制器307与每个leaf设备连接,控制器307可以为SDN(Software Defined Network,软件定义网络)控制器,也可以为其它类型的控制器,对此不做限制。
leaf设备303的IP地址可以为1.1.1.1,leaf设备304的IP地址可以为2.2.2.2,leaf设备305的IP地址可以为3.3.3.3,spine设备301的IP地址可以为4.4.4.4,spine设备302的IP地址可以为5.5.5.5,leaf设备306的IP地址可以为6.6.6.6。
在上述应用场景下,本申请实施例中提出一种流量传输方法,参见图4所示,为该流量传输方法的流程示意图,该方法可以包括以下步骤:
步骤401,控制器获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息。为了区分方便,可以将leaf设备对应的路由信息称为第一路由信息,将spine设备对应的路由信息称为第二路由信息。
针对每个leaf设备,控制器向该leaf设备发送路由信息请求消息,leaf设备在接收到路由信息请求消息之后,向控制器发送路由信息响应消息,该路由信息响应消息包括本leaf设备对应的第一路由信息。或者,leaf设备也可以主动向控制器发送路由信息通知消息,该路由信息通知消息包括本leaf设备对应的第一路由信息。至此,控制器可以得到每个leaf设备对应的第一路由信息。
针对每个spine设备,控制器向该spine设备发送路由信息请求消息,spine设备在接收到路由信息请求消息之后,向控制器发送路由信息响应消息,该路由信息响应消息包括本spine设备对应的第二路由信息。或者,spine设备也可以主动向控制器发送路由信息通知消息,该路由信息通知消息包括本spine设备对应的第二路由信息。至此,控制器得到每个spine设备对应的第二路由信息。
在一种可能的实施方式中,控制器可以通过gRPC(Google Remote ProcedureCall,远程过程调用)消息获取每个leaf设备对应的第一路由信息,并通过gRPC消息获取每个spine设备对应的第二路由信息,也就是说,控制器通过与每个leaf设备交互gRPC消息,得到每个leaf设备对应的第一路由信息,控制器通过与每个spine设备交互gRPC消息,得到每个spine设备对应的第二路由信息。
在另一种可能的实施方式中,控制器通过NETCONF(Network Configuration,网络配置)消息获取每个leaf设备对应的第一路由信息,并通过NETCONF消息获取每个spine设备对应的第二路由信息,即,控制器通过与每个leaf设备交互NETCONF消息,得到每个leaf设备对应的第一路由信息,控制器通过与每个spine设备交互NETCONF消息,得到每个spine设备对应的第二路由信息。
当然,gRPC消息和NETCONF消息只是两个示例,对此不做限制。
示例性的,由于路由信息会动态变化,因此,控制器可以周期性获取每个leaf设备对应的第一路由信息,周期性获取每个spine设备对应的第二路由信息。
参见图3所示,在某个获取周期A,控制器获取到如下路由信息:
A1、leaf设备303对应的第一路由信息,参见表1所示。
表1
在表1中,只是示出了leaf设备303到leaf设备305的路由,第一路由信息还可以包括其它路由,本实施例中对此不做限制,以表1为例进行说明。
从表1可以看出,针对到达目的IP地址3.3.3.3的路由,可以经过下一跳4.4.4.4和下一跳5.5.5.5,也就是说,下一跳4.4.4.4和下一跳5.5.5.5形成等价路由,因此,可以基于该等价路由实现等价负载分担。
A2、leaf设备304对应的第一路由信息,参见表2所示。
表2
在表2中,只是示出了leaf设备304到leaf设备305的路由,第一路由信息还可以包括其它路由,本实施例中对此不做限制,以表2为例进行说明。
从表2可以看出,针对到达目的IP地址3.3.3.3的路由,可以经过下一跳4.4.4.4和下一跳5.5.5.5,也就是说,下一跳4.4.4.4和下一跳5.5.5.5形成等价路由,因此,可以基于该等价路由实现等价负载分担。
A3、spine设备301对应的第二路由信息,参见表3所示。
表3
目的IP地址 | 下一跳 | 出接口 |
3.3.3.3 | 3.3.3.3 | 301-3 |
… | … | … |
在表3中,只是示出了spine设备301到leaf设备305的路由,第二路由信息还可以包括其它路由,本实施例中对此不做限制,以表3为例进行说明。
A4、spine设备302对应的第二路由信息,参见表4所示。
表4
在表4中,只是示出了spine设备302到leaf设备305的路由,第二路由信息还可以包括其它路由,本实施例中对此不做限制,以表4为例进行说明。
参见图3所示,在某个获取周期B,控制器获取到如下路由信息:
B1、leaf设备303对应的第一路由信息,假设获取周期B的第一路由信息与获取周期A的第一路由信息相同,则第一路由信息可以参见表1所示。
B2、leaf设备304对应的第一路由信息,假设在获取周期B,leaf设备304与spine设备302之间的链路发生故障,那么,第一路由信息可以参见表5所示。
表5
目的IP地址 | 下一跳 | 分担系数 |
3.3.3.3 | 4.4.4.4 | 1 |
… | … | … |
结合表5和表2可以看出,在获取周期B,不存在下一跳为5.5.5.5的路由,即针对到达目的IP地址3.3.3.3的路由,可以经过下一跳4.4.4.4,不再经过下一跳5.5.5.5,下一跳4.4.4.4和下一跳5.5.5.5不是等价路由。
B3、spine设备301对应的第二路由信息,假设获取周期B的第二路由信息与获取周期A的第二路由信息相同,第二路由信息可以参见表3所示。
B4、spine设备302对应的第二路由信息,假设获取周期B的第二路由信息与获取周期A的第二路由信息相同,第二路由信息可以参见表4所示。
步骤402,控制器获取多个spine设备对应的第一流量信息,并获取多个leaf设备对应的第二流量信息。为了区分方便,可以将spine设备对应的流量信息称为第一流量信息,将leaf设备对应的流量信息称为第二流量信息。
针对每个spine设备,控制器向该spine设备发送流量信息请求消息,spine设备在接收到流量信息请求消息之后,向控制器发送流量信息响应消息,该流量信息响应消息包括本spine设备对应的第一流量信息。或者,spine设备也可以主动向控制器发送流量信息通知消息,该流量信息通知消息包括本spine设备对应的第一流量信息。至此,控制器得到每个spine设备对应的第一流量信息。
针对每个leaf设备,控制器向该leaf设备发送流量信息请求消息,leaf设备在接收到流量信息请求消息之后,向控制器发送流量信息响应消息,该流量信息响应消息包括本leaf设备对应的第二流量信息。或者,leaf设备也可以主动向控制器发送流量信息通知消息,该流量信息通知消息包括本leaf设备对应的第二流量信息。至此,控制器可以得到每个leaf设备对应的第二流量信息。
在一种可能的实施方式中,控制器可以通过netstream(网络流量)消息获取每个spine设备对应的第一流量信息,并通过netstream消息获取每个leaf设备对应的第二流量信息,也就是说,控制器可以通过与每个spine设备交互netstream消息,得到每个spine设备对应的第一流量信息,控制器可以通过与每个leaf设备交互netstream消息,得到每个leaf设备对应的第二流量信息。
在另一种可能的实施方式中,控制器可以通过sFlow(网络流量监控)消息获取每个spine设备对应的第一流量信息,并通过sFlow消息获取每个leaf设备对应的第二流量信息,也就是说,控制器可以通过与每个spine设备交互sFlow消息,得到每个spine设备对应的第一流量信息,控制器可以通过与每个leaf设备交互sFlow消息,得到每个leaf设备对应的第二流量信息。
在另一种可能的实施方式中,控制器可以通过ERSPAN(Encapsulated RemoteSwitch Port Analyzer,封装远程端口镜像)消息获取每个spine设备对应的第一流量信息,并通过ERSPAN消息获取每个leaf设备对应的第二流量信息,也就是说,控制器可以通过与每个spine设备交互ERSPAN消息,得到每个spine设备对应的第一流量信息,控制器可以通过与每个leaf设备交互ERSPAN消息,得到每个leaf设备对应的第二流量信息。
netstream消息、sFlow消息和ERSPAN消息只是几个示例,对此不做限制。
示例性的,由于流量信息会动态变化,因此,控制器可以周期性获取每个spine设备对应的第一流量信息,周期性获取每个leaf设备对应的第二流量信息。
参见图3所示,在某个获取周期A,控制器获取到如下流量信息:
A5、leaf设备303对应的第二流量信息,参见表6所示。
表6
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | 300 | 80 | TCP | 1M | - | 303-1 | 4.4.4.4 |
1.1.1.1 | 3.3.3.3 | 301 | 80 | TCP | 5M | - | 303-2 | 5.5.5.5 |
1.1.1.1 | 3.3.3.3 | 302 | 80 | TCP | 6M | - | 303-1 | 4.4.4.4 |
1.1.1.1 | 3.3.3.3 | 303 | 80 | TCP | 3M | - | 303-2 | 5.5.5.5 |
… |
在表6中,只是示出了leaf设备303到leaf设备305的流量,第二流量信息还可以包括其它流量,本实施例中对此不做限制,以表6为例进行说明。
从表6可以看出,针对到达目的IP地址3.3.3.3的流量,可以经过下一跳4.4.4.4和下一跳5.5.5.5,也就是说,leaf设备303将部分流量(1M+6M)通过下一跳4.4.4.4发送给leaf设备305,将部分流量(5M+3M)通过下一跳5.5.5.5发送给leaf设备305。通过下一跳4.4.4.4的流量和通过下一跳5.5.5.5的流量近似相同,也就是说,符合分担系数比例为1:1的关系。
A6、leaf设备304对应的第二流量信息,参见表7所示。
表7
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
2.2.2.2 | 3.3.3.3 | 400 | 80 | TCP | 2M | - | 304-1 | 4.4.4.4 |
2.2.2.2 | 3.3.3.3 | 401 | 80 | TCP | 8M | - | 304-2 | 5.5.5.5 |
2.2.2.2 | 3.3.3.3 | 402 | 80 | TCP | 8M | - | 304-1 | 4.4.4.4 |
2.2.2.2 | 3.3.3.3 | 403 | 80 | TCP | 2M | - | 304-2 | 5.5.5.5 |
… |
在表7中,只是示出了leaf设备304到leaf设备305的流量,第二流量信息还可以包括其它流量,本实施例中对此不做限制,以表7为例进行说明。
从表7可以看出,针对到达目的IP地址3.3.3.3的流量,可以经过下一跳4.4.4.4和下一跳5.5.5.5,也就是说,leaf设备304将部分流量(2M+8M)通过下一跳4.4.4.4发送给leaf设备305,将部分流量(8M+2M)通过下一跳5.5.5.5发送给leaf设备305。通过下一跳4.4.4.4的流量和通过下一跳5.5.5.5的流量近似相同,也就是说,符合分担系数比例为1:1的关系。
A7、spine设备301对应的第一流量信息,参见表8所示。
表8
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | 300 | 80 | TCP | 1M | - | 301-3 | 3.3.3.3 |
1.1.1.1 | 3.3.3.3 | 302 | 80 | TCP | 6M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 400 | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 402 | 80 | TCP | 8M | - | 301-3 | 3.3.3.3 |
… |
在表8中,只是示出了spine设备301到leaf设备305的流量,第一流量信息还可以包括其它流量,本实施例中对此不做限制,以表8为例进行说明。
从表8可以看出,针对到达目的IP地址3.3.3.3的流量,均可以通过出接口301-3进行转发,且通过出接口301-3发送的总流量为17M。
A8、spine设备302对应的第一流量信息,参见表9所示。
表9
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | 301 | 80 | TCP | 5M | - | 302-3 | 3.3.3.3 |
1.1.1.1 | 3.3.3.3 | 303 | 80 | TCP | 3M | - | 302-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 401 | 80 | TCP | 8M | - | 302-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 403 | 80 | TCP | 2M | - | 302-3 | 3.3.3.3 |
… |
在表9中,只是示出了spine设备302到leaf设备305的流量,第一流量信息还可以包括其它流量,本实施例中对此不做限制,以表9为例进行说明。
从表9可以看出,针对到达目的IP地址3.3.3.3的流量,均可以通过出接口302-3进行转发,且通过出接口302-3发送的总流量为18M。
结合表8和表9可以看出,在向leaf设备305发送流量时,通过出接口301-3发送的总流量和通过出接口302-3发送的总流量近似相同。
参见图3所示,在某个获取周期B,控制器获取到如下流量信息:
B5、leaf设备303对应的第二流量信息,参见表10所示。
表10
显然,获取周期B的第二流量信息与获取周期A的第二流量信息相同。
B6、leaf设备304对应的第二流量信息,假设在获取周期B,leaf设备304与spine设备302之间的链路发生故障,则leaf设备304无法将流量发送给spine设备302,只能将流量发送给spine设备301,第二流量信息可以参见表11所示。
表11
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
2.2.2.2 | 3.3.3.3 | 404 | 80 | TCP | 2M | - | 304-1 | 4.4.4.4 |
2.2.2.2 | 3.3.3.3 | 405 | 80 | TCP | 8M | - | 304-1 | 4.4.4.4 |
2.2.2.2 | 3.3.3.3 | 406 | 80 | TCP | 8M | - | 304-1 | 4.4.4.4 |
2.2.2.2 | 3.3.3.3 | 407 | 80 | TCP | 2M | - | 304-1 | 4.4.4.4 |
… |
从表11可以看出,针对到达目的IP地址3.3.3.3的流量,只能经过下一跳4.4.4.4,也就是说,将全部流量通过下一跳4.4.4.4发送给leaf设备305。
B7、spine设备301对应的第一流量信息,参见表12所示。
表12
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | 304 | 80 | TCP | 1M | - | 301-3 | 3.3.3.3 |
1.1.1.1 | 3.3.3.3 | 306 | 80 | TCP | 6M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 404 | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 406 | 80 | TCP | 8M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 405 | 80 | TCP | 8M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | 407 | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
… |
从表12可以看出,针对到达目的IP地址3.3.3.3的流量,均可以通过出接口301-3进行转发,且通过出接口301-3发送的总流量为27M。
B8、spine设备302对应的第一流量信息,参见表13所示。
表13
从表13可以看出,针对到达目的IP地址3.3.3.3的流量,均可以通过出接口302-3进行转发,且通过出接口302-3发送的总流量为8M。
显然,结合表12和表13可以看出,在向leaf设备305发送流量时,通过出接口301-3发送的总流量为27M,通过出接口302-3发送的总流量为8M,通过出接口301-3发送的总流量远远大于通过出接口302-3发送的总流量。
综上所述,由于leaf设备304与spine设备302之间的链路发生故障,导致leaf设备304的流量都经过spine设备301转发,即spine设备301的出口流量将额外承担leaf设备304原本发送给spine设备302的流量。
步骤403,基于第一流量信息,控制器确定是否有spine设备的出接口对应的流量大于预设流量阈值,若是,则执行步骤404,若否,则等待下一个周期,继续确定是否有spine设备的出接口对应的流量大于预设流量阈值。
参见图3所示,spine设备301存在4个出接口,分别为301-1、301-2、301-3和301-4,控制器可以统计每个出接口对应的流量,后续以出接口301-3为例进行说明。在获取周期A,出接口301-3对应的流量为17M,假设出接口301-3对应的总带宽为30M,则出接口301-3对应的预设流量阈值可以为30M*k%,k可以根据经验配置,为0-100之间的数值,如k为80时,预设流量阈值为24M,显然,在获取周期A,出接口301-3对应的流量小于预设流量阈值。在获取周期B,出接口301-3对应的流量为27M,假设出接口301-3对应的预设流量阈值为24M,那么,在获取周期B,出接口301-3对应的流量大于预设流量阈值。
参见图3所示,spine设备302存在4个出接口,分别为302-1、302-2、302-3和302-4,控制器可以统计每个出接口对应的流量,后续以出接口302-3为例进行说明。在获取周期A,出接口302-3对应的流量为18M,假设出接口302-3对应的总带宽为40M,那么,出接口302-3对应的预设流量阈值可以为32M,显然,出接口302-3对应的流量小于预设流量阈值。在获取周期B,出接口302-3对应的流量为8M,即出接口302-3对应的流量小于预设流量阈值。
参见步骤402,基于spine设备301对应的第一流量信息,控制器可以统计spine设备301的每个出接口对应的流量。基于spine设备302对应的第一流量信息,控制器可以统计spine设备302的每个出接口对应的流量。
步骤404,若控制器确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则控制器基于第一流量信息确定该流量对应的目的地址。
比如说,在获取周期B,控制器确定spine设备301(即第一spine设备)的出接口301-3(即第一出接口)对应的流量(27M)大于预设流量阈值,因此,通过查询表12所示的第一流量信息,确定该流量对应目的IP地址3.3.3.3。
示例性的,在spine设备301的出接口301-3对应的流量大于预设流量阈值时,表示出接口301-3即将产生拥塞,触发本实施例的拥塞调优过程。
步骤405,基于第二路由信息,控制器确定是否有spine设备存在该目的地址对应的路由,若是,则执行步骤406,若否,则结束流程,无法实现拥塞调优。
比如说,控制器确定该流量对应目的IP地址3.3.3.3之后,确定spine设备302是否存在目的IP地址3.3.3.3对应的路由,即通过查询spine设备302对应的第二路由信息B4,确定是否存在目的IP地址3.3.3.3对应的路由。参见表4所示,由于存在目的IP地址3.3.3.3对应的路由,因此,执行步骤406。
步骤406,若确定第二spine设备存在该目的地址对应的路由,则基于第一路由信息,控制器确定是否有leaf设备存在该目的地址对应的等价路由,且该等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,若是,则执行步骤407,若否,则结束流程,无法实现拥塞调优。
比如说,控制器确定spine设备302(即第二spine设备)存在目的IP地址3.3.3.3对应的路由之后,基于leaf设备303对应的第一路由信息,确定leaf设备303是否存在目的IP地址3.3.3.3对应的等价路由。基于leaf设备304对应的第一路由信息,确定leaf设备304是否存在目的IP地址3.3.3.3对应的等价路由,以此类推,可以确定每个leaf设备是否存在目的IP地址3.3.3.3对应的等价路由。
在获取周期B,leaf设备303对应的第一路由信息参见表1所示,显然,leaf设备303存在目的IP地址3.3.3.3对应的等价路由,且该等价路由包括下一跳为第一spine设备(spine设备301)的第一路由(即下一跳4.4.4.4的路由)和下一跳为第二spine设备(spine设备302)的第二路由(即下一跳5.5.5.5的路由)。
此外,在获取周期B,leaf设备304对应的第一路由信息参见表5所示,显然,leaf设备304不存在目的IP地址3.3.3.3对应的等价路由。
步骤407,若确定第一leaf设备存在该目的地址对应的等价路由,且等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则控制器对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,且该目标分担系数比例可以小于初始分担系数比例。
比如说,控制器确定leaf设备303(即第一leaf设备)存在目的IP地址3.3.3.3对应的等价路由,且该等价路由包括下一跳4.4.4.4的第一路由和下一跳5.5.5.5的第二路由之后,就可以对该等价路由对应的初始分担系数比例进行调整。
参见表1所示,该等价路由对应的初始分担系数比例为1:1,即第一路由对应分担系数与第二路由对应分担系数的比例为1:1,在此基础上,可以对初始分担系数比例进行调整,得到目标分担系数比例,且目标分担系数比例小于初始分担系数比例,目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,比如说,目标分担系数比例可以为1:2、1:3、2:3、1:4、3:4等,对此目标分担系数比例不做限制,只要目标分担系数比例小于初始分担系数比例即可,也就是说,基于初始分担系数比例,降低第一路由对应分担系数,或者,增加第二路由对应分担系数,或者,降低第一路由对应分担系数且增加第二路由对应分担系数,从而控制leaf设备303通过第二路由发送更多的流量。
在一种可能的实施方式中,在控制leaf设备303通过第二路由向spine设备302发送更多的流量时,还需要保证leaf设备303通过第二路由发送的流量不超过出接口303-2的预设流量阈值(如出接口303-2的总带宽的80%等),且保证spine设备302通过出接口302-3发送的流量不超过出接口302-3的预设流量阈值(如出接口302-3的总带宽的80%等),本实施例中,在对等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例时,可以采用如下步骤:
步骤4071,基于leaf设备303(第一leaf设备)对应的第二流量信息,确定leaf设备303基于第一路由发送的第一流量和基于第二路由发送的第二流量。
比如说,参见表10所示,leaf设备303基于第一路由发送的第一流量为7M(1M+6M),leaf设备303基于第二路由发送的第二流量为8M(5M+3M)。
步骤4072,基于spine设备301(第一spine设备)对应的第一流量信息,确定spine设备301的第一出接口(即出接口301-3)的总占用流量。
比如说,参见表12所示,spine设备301通过出接口301-3发送的总流量为27M,也就是说,第一出接口的总占用流量为27M。在使用过程中,由于其它设备也会通过spine设备301的出接口301-3向leaf设备305发送流量,因此,第一出接口的总占用流量会大于27M,这里只是以表12为例进行说明。
步骤4073,基于spine设备302(第二spine设备)对应的第一流量信息,确定spine设备302的第二出接口(即出接口302-3)的总占用流量。
比如说,参见表13所示,spine设备302通过出接口302-3发送的总流量为8M,也就是说,第二出接口的总占用流量为8M。在使用过程中,由于其它设备也会通过spine设备302的出接口302-3向leaf设备305发送流量,因此,第二出接口的总占用流量会大于8M,这里只是以表13为例进行说明。
步骤4074,从第一出接口的总占用流量中排除第一流量,得到第一出接口对应的第一已占用流量,第一已占用流量表示被待调优流量(即leaf设备303通过第一路由发送的流量)之外的其它流量占用带宽。
步骤4075,从第二出接口的总占用流量中排除第二流量,得到第二出接口对应的第二已占用流量,第二已占用流量表示被待调优流量(即leaf设备303通过第二路由发送的流量)之外的其它流量占用带宽。
步骤4076,基于第一出接口对应的第一已占用流量和第一出接口对应的第一出口带宽,确定第一出接口对应的第一可用带宽,第一可用带宽表示能够给待调优流量(即leaf设备303通过第一路由发送的流量)使用的带宽。
比如说,第一出接口对应的第一出口带宽可以是固定值,即第一出接口的总带宽,可以将总带宽的80%(可任意配置)作为第一出接口的预设流量阈值,将这个预设流量阈值减去第一已占用流量,就可以得到第一可用带宽。
步骤4077,基于第二出接口对应的第二已占用流量和第二出接口对应的第二出口带宽,确定第二出接口对应的第二可用带宽,第二可用带宽表示能够给待调优流量(即leaf设备303通过第二路由发送的流量)使用的带宽。
比如说,第二出接口对应的第二出口带宽可以是固定值,即第二出接口的总带宽,可以将总带宽的80%(可任意配置)作为第二出接口的预设流量阈值,将这个预设流量阈值减去第二已占用流量,就可以得到第二可用带宽。
步骤4078,控制器基于第一可用带宽和第二可用带宽确定第一出接口与第二出接口之间的可用比例关系,并基于该可用比例关系对该等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例。
比如说,可用比例关系表示待调优流量使用的第一可用带宽与待调优流量使用的第二可用带宽之间的比例关系,反应的是,leaf设备303通过第一路由发送的流量与leaf设备303通过第二路由发送的流量之间的比例关系,继而能够反映第一路由对应分担系数与第二路由对应分担系数的比例,而分担系数的比例就是目标分担系数比例,因此,基于可用比例关系确定目标分担系数比例。
比如说,假设可用比例关系为1:3,则目标分担系数比例可以大于或者等于可用比例关系,从而避免将更多的流量发送给spine设备302,保证spine设备302通过出接口302-3发送的流量不超过出接口302-3的预设流量阈值。
综上所述,可以得到目标分担系数比例,以目标分担系数比例为1:3为例。
步骤408,控制器将目标分担系数比例发送给第一leaf设备,由第一leaf设备在发送该等价路由对应的流量时,基于目标分担系数比例进行负载分担。
比如说,leaf设备303在发送该等价路由对应的流量时,基于目标分担系数比例1:3,可以将25%的流量发送给spine设备301,将75%的流量发送给spine设备302,从而能够将更多的流量发送给spine设备302。
参见图3所示,在某个获取周期C,控制器获取到如下路由信息:
C1、leaf设备303对应的第一路由信息,参见表14所示。
表14
C2、leaf设备304对应的第一路由信息,可以参见表5所示。
C3、spine设备301对应的第二路由信息,可以参见表3所示。
C4、spine设备302对应的第二路由信息,可以参见表4所示。
参见图3所示,在某个获取周期C,控制器获取到如下流量信息:
C5、leaf设备303对应的第二流量信息,参见表15所示。
表15
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 2M | - | 303-1 | 4.4.4.4 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 5M | - | 303-2 | 5.5.5.5 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 2M | - | 303-1 | 4.4.4.4 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 6M | - | 303-2 | 5.5.5.5 |
… |
从表15可以看出,针对到达目的IP地址3.3.3.3的流量,leaf设备303将4M流量过下一跳4.4.4.4发送给leaf设备305,将11M流量通过下一跳5.5.5.5发送给leaf设备305。显然,通过下一跳4.4.4.4的流量和通过下一跳5.5.5.5的流量的比例近似为1:3,也就是说,符合分担系数比例为1:3的关系。
C6、leaf设备304对应的第二流量信息,可以参见表11所示。
C7、spine设备301对应的第一流量信息,可以参见16所示。
表16
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | - | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | - | 80 | TCP | 8M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | - | 80 | TCP | 8M | - | 301-3 | 3.3.3.3 |
2.2.2.2 | 3.3.3.3 | - | 80 | TCP | 2M | - | 301-3 | 3.3.3.3 |
… |
结合表12和表16可以看出,spine设备301的出接口301-3发送的流量,从27M降低为24M,从而降低出接口301-3的流量。显然,通过控制目标分担系数比例,可以根据实际需求降低出接口301-3的流量,对此不再赘述。
C8、spine设备302对应的第一流量信息,可以参见17所示。
表17
源IP地址 | 目的IP地址 | 源端口 | 目的端口 | 协议 | 流量 | 入接口 | 出接口 | 下一跳 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 5M | - | 302-3 | 3.3.3.3 |
1.1.1.1 | 3.3.3.3 | - | 80 | TCP | 6M | - | 302-3 | 3.3.3.3 |
… |
结合表13和表17可以看出,spine设备302的出接口302-3发送的流量,从8M增加为11M,从而增加出接口302-3的流量。
综上所述,针对leaf设备303的流量,控制器通过修改负载分担系数,可以将发送到spine设备301的流量发送给spine设备302,减少spine设备301的转发压力。虽然增加spine设备302的转发压力,但是不会造成拥塞。
在一种可能的实施方式中,在leaf设备304与spine设备302之间的链路重新恢复后,只要没有链路拥塞,可以不进行流量调优,也可以调优使流量均衡。
基于与上述方法同样的申请构思,本申请实施例中提出一种流量传输装置,应用于控制器,参见图5所示,为所述装置的结构示意图,所述装置包括:
获取模块51,用于获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息;
确定模块52,用于基于所述第一流量信息,若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定所述流量对应的目的地址;
处理模块53,用于基于第一路由信息和第二路由信息,若确定第二spine设备存在所述目的地址对应的路由,确定第一leaf设备存在所述目的地址对应的等价路由,等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,所述目标分担系数比例小于所述初始分担系数比例;
发送模块54,用于将目标分担系数比例发送给第一leaf设备,由第一leaf设备发送所述等价路由对应的流量时,基于目标分担系数比例进行负载分担。
示例性的,所述处理模块53对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例时具体用于:基于第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例;其中,第二出接口是第二spine设备上与所述目的地址对应的路由对应的出接口。
示例性的,所述处理模块53基于所述第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例时具体用于:基于所述第一已占用流量和所述第一出口带宽确定第一可用带宽;
基于所述第二已占用流量和所述第二出口带宽确定第二可用带宽;
基于所述第一可用带宽和所述第二可用带宽确定所述第一出接口与所述第二出接口之间的可用比例关系,基于所述可用比例关系对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例。
示例性的,所述获取模块51,还用于获取多个leaf设备对应的第二流量信息;所述确定模块52,还用于基于所述第二流量信息,确定第一leaf设备基于所述第一路由发送的第一流量和基于所述第二路由发送的第二流量;
其中,所述确定模块52确定所述第一已占用流量时具体用于:基于所述第一流量信息确定所述第一出接口的总占用流量,从该总占用流量中排除所述第一流量得到所述第一已占用流量;所述确定模块52确定所述第二已占用流量时具体用于:基于所述第一流量信息确定所述第二出接口的总占用流量,从该总占用流量中排除所述第二流量得到所述第二已占用流量。
示例性的,所述获取模块51获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息,并获取多个leaf设备对应的第二流量信息时具体用于:通过gRPC消息获取多个leaf设备对应的第一路由信息和多个spine设备对应的第二路由信息;或者,通过NETCONF消息获取多个leaf设备对应的第一路由信息和多个spine设备对应的第二路由信息;通过netstream消息获取多个spine设备对应的第一流量信息和多个leaf设备对应的第二流量信息;或,通过sFlow消息获取多个spine设备对应的第一流量信息和多个leaf设备对应的第二流量信息;或,通过ERSPAN消息获取多个spine设备对应的第一流量信息和多个leaf设备对应的第二流量信息。
基于与上述方法同样的申请构思,本申请实施例中提出一种控制器,参见图6所示,所述控制器包括:处理器61和机器可读存储介质62,机器可读存储介质62存储有能够被所述处理器61执行的机器可执行指令;所述处理器61用于执行机器可执行指令,以实现本申请上述示例公开的流量传输方法。
基于与上述方法同样的申请构思,本申请实施例还提供一种机器可读存储介质,所述机器可读存储介质上存储有若干计算机指令,所述计算机指令被处理器执行时,能够实现本申请上述示例公开的流量传输方法。
其中,上述机器可读存储介质可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种流量传输方法,其特征在于,应用于控制器,所述方法包括:
获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息;
基于所述第一流量信息,若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定所述流量对应的目的地址;
基于第一路由信息和第二路由信息,若确定第二spine设备存在所述目的地址对应的路由,确定第一leaf设备存在所述目的地址对应的等价路由,所述等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,所述目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,所述目标分担系数比例小于所述初始分担系数比例;
将所述目标分担系数比例发送给第一leaf设备,由第一leaf设备发送所述等价路由对应的流量时,基于所述目标分担系数比例进行负载分担。
2.根据权利要求1所述的方法,其特征在于,所述对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,包括:
基于所述第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例;其中,所述第二出接口是所述第二spine设备上与所述目的地址对应的路由对应的出接口。
3.根据权利要求2所述的方法,其特征在于,
所述基于所述第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例,包括:
基于所述第一已占用流量和所述第一出口带宽确定第一可用带宽;
基于所述第二已占用流量和所述第二出口带宽确定第二可用带宽;
基于所述第一可用带宽和所述第二可用带宽确定所述第一出接口与所述第二出接口之间的可用比例关系,基于所述可用比例关系对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:获取多个leaf设备对应的第二流量信息;基于所述第二流量信息,确定第一leaf设备基于所述第一路由发送的第一流量和基于所述第二路由发送的第二流量;
所述第一已占用流量的确定过程包括:基于所述第一流量信息确定第一出接口的总占用流量,从该总占用流量中排除第一流量得到所述第一已占用流量;
所述第二已占用流量的确定过程包括:基于所述第一流量信息确定第二出接口的总占用流量,从该总占用流量中排除第二流量得到所述第二已占用流量。
5.根据权利要求4所述的方法,其特征在于,所述获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息,并获取多个leaf设备对应的第二流量信息,包括:
通过gRPC消息获取多个leaf设备对应的第一路由信息和多个spine设备对应的第二路由信息;或者,通过NETCONF消息获取多个leaf设备对应的第一路由信息和多个spine设备对应的第二路由信息;
通过netstream消息获取多个spine设备对应的第一流量信息和多个leaf设备对应的第二流量信息;或者,通过sFlow消息获取多个spine设备对应的第一流量信息和多个leaf设备对应的第二流量信息;或者,通过ERSPAN消息获取多个spine设备对应的第一流量信息和多个leaf设备对应的第二流量信息。
6.一种流量传输装置,其特征在于,应用于控制器,所述装置包括:
获取模块,用于获取多个leaf设备对应的第一路由信息,并获取多个spine设备对应的第二路由信息,并获取多个spine设备对应的第一流量信息;
确定模块,用于基于所述第一流量信息,若确定第一spine设备的第一出接口对应的流量大于预设流量阈值,则确定所述流量对应的目的地址;
处理模块,用于基于第一路由信息和第二路由信息,若确定第二spine设备存在所述目的地址对应的路由,确定第一leaf设备存在所述目的地址对应的等价路由,等价路由包括下一跳为第一spine设备的第一路由和下一跳为第二spine设备的第二路由,则对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例,所述目标分担系数比例包括第一路由对应分担系数与第二路由对应分担系数的比例,所述目标分担系数比例小于所述初始分担系数比例;
发送模块,用于将目标分担系数比例发送给第一leaf设备,由第一leaf设备发送所述等价路由对应的流量时,基于所述目标分担系数比例进行负载分担。
7.根据权利要求6所述的装置,其特征在于,
所述处理模块对所述等价路由对应的初始分担系数比例进行调整,得到目标分担系数比例时具体用于:基于所述第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例;其中,所述第二出接口是第二spine设备上与所述目的地址对应的路由对应的出接口。
8.根据权利要求7所述的装置,其特征在于,
所述处理模块基于所述第一出接口对应的第一已占用流量和第一出口带宽、第二出接口对应的第二已占用流量和第二出口带宽,对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例时具体用于:
基于所述第一已占用流量和所述第一出口带宽确定第一可用带宽;
基于所述第二已占用流量和所述第二出口带宽确定第二可用带宽;
基于所述第一可用带宽和所述第二可用带宽确定所述第一出接口与所述第二出接口之间的可用比例关系,基于所述可用比例关系对所述等价路由对应的初始分担系数比例进行调整,得到所述目标分担系数比例。
9.根据权利要求7或8所述的装置,其特征在于,
所述获取模块,还用于获取多个leaf设备对应的第二流量信息;
所述确定模块,还用于基于所述第二流量信息,确定第一leaf设备基于所述第一路由发送的第一流量和基于所述第二路由发送的第二流量;
其中,所述确定模块确定所述第一已占用流量时具体用于:基于所述第一流量信息确定所述第一出接口的总占用流量,从该总占用流量中排除所述第一流量得到所述第一已占用流量;所述确定模块确定所述第二已占用流量时具体用于:基于所述第一流量信息确定所述第二出接口的总占用流量,从该总占用流量中排除所述第二流量得到所述第二已占用流量。
10.一种控制器,其特征在于,包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令;所述处理器用于执行机器可执行指令,以实现权利要求1-5任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020213.1A CN115412499B (zh) | 2022-08-24 | 2022-08-24 | 一种流量传输方法、装置及控制器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211020213.1A CN115412499B (zh) | 2022-08-24 | 2022-08-24 | 一种流量传输方法、装置及控制器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115412499A true CN115412499A (zh) | 2022-11-29 |
CN115412499B CN115412499B (zh) | 2024-03-22 |
Family
ID=84161762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211020213.1A Active CN115412499B (zh) | 2022-08-24 | 2022-08-24 | 一种流量传输方法、装置及控制器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115412499B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209671A (zh) * | 2016-06-30 | 2016-12-07 | 杭州华三通信技术有限公司 | 一种确定路由负载分担的方法及装置 |
CN108270643A (zh) * | 2017-12-14 | 2018-07-10 | 中国银联股份有限公司 | Leaf-Spine交换机之间的链路的探测方法及设备 |
CN111200558A (zh) * | 2018-11-19 | 2020-05-26 | 华为技术有限公司 | 一种flowlet负载分担方法及装置 |
CN111800327A (zh) * | 2020-06-19 | 2020-10-20 | 浪潮思科网络科技有限公司 | Vxlan网络的流量分担方法、设备 |
CN113328931A (zh) * | 2021-04-23 | 2021-08-31 | 新华三大数据技术有限公司 | 一种路由下发方法及装置 |
WO2021197196A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 路由信息传输方法、装置、系统及存储介质 |
CN114070774A (zh) * | 2021-09-26 | 2022-02-18 | 新华三大数据技术有限公司 | 数据转发方法及系统 |
-
2022
- 2022-08-24 CN CN202211020213.1A patent/CN115412499B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106209671A (zh) * | 2016-06-30 | 2016-12-07 | 杭州华三通信技术有限公司 | 一种确定路由负载分担的方法及装置 |
CN108270643A (zh) * | 2017-12-14 | 2018-07-10 | 中国银联股份有限公司 | Leaf-Spine交换机之间的链路的探测方法及设备 |
CN111200558A (zh) * | 2018-11-19 | 2020-05-26 | 华为技术有限公司 | 一种flowlet负载分担方法及装置 |
WO2021197196A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 路由信息传输方法、装置、系统及存储介质 |
CN111800327A (zh) * | 2020-06-19 | 2020-10-20 | 浪潮思科网络科技有限公司 | Vxlan网络的流量分担方法、设备 |
CN113328931A (zh) * | 2021-04-23 | 2021-08-31 | 新华三大数据技术有限公司 | 一种路由下发方法及装置 |
CN114070774A (zh) * | 2021-09-26 | 2022-02-18 | 新华三大数据技术有限公司 | 数据转发方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN115412499B (zh) | 2024-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9137165B2 (en) | Methods of load balancing using primary and stand-by addresses and related load balancers and servers | |
US9621642B2 (en) | Methods of forwarding data packets using transient tables and related load balancers | |
US9602428B2 (en) | Method and apparatus for locality sensitive hash-based load balancing | |
CN106209419B (zh) | 一种选择网络功能进行数据转发的方法及业务功能转发器 | |
US20140372616A1 (en) | Methods of forwarding/receiving data packets using unicast and/or multicast communications and related load balancers and servers | |
EP2613479A1 (en) | Relay device | |
CN108123878B (zh) | 一种路由方法、装置及数据转发设备 | |
CN111726299B (zh) | 流量均衡方法及装置 | |
WO2021244247A1 (zh) | 转发数据报文的方法、网络节点、系统及存储介质 | |
WO2017176542A1 (en) | Optimal dynamic cloud network control | |
US20120177036A1 (en) | Simple fairness protocols for daisy chain interconnects | |
US11483171B2 (en) | System and method to control latency of serially-replicated multi-destination flows | |
WO2016186861A1 (en) | Method and apparatus for self-tuned adaptive routing | |
CN113542145A (zh) | 以太网链路聚合组负载分担的方法以及网络设备 | |
US9544241B2 (en) | Queue scheduling method, apparatus and system | |
WO2015101363A1 (en) | System and method for traffic engineering using link buffer status | |
US20160308754A1 (en) | Dropping Cells of a Same Packet Sent Among Multiple Paths within a Packet Switching Device | |
CN106533771B (zh) | 一种网络设备以及控制信息传输方法 | |
CN115412499B (zh) | 一种流量传输方法、装置及控制器 | |
CN111404839A (zh) | 报文处理方法和装置 | |
CN111490944A (zh) | 一种信息处理方法、装置、设备及机器可读存储介质 | |
CN116318554A (zh) | 网络传输方法及装置 | |
US10367751B2 (en) | Distributing and rate limiting packets among multiple paths in a single stage switching topology to a reordering node | |
CN113765796B (zh) | 流量转发控制方法及装置 | |
CN110365667B (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 |