CN113422731A - 一种负载均衡输出方法、装置、汇聚分流设备和介质 - Google Patents
一种负载均衡输出方法、装置、汇聚分流设备和介质 Download PDFInfo
- Publication number
- CN113422731A CN113422731A CN202110693188.2A CN202110693188A CN113422731A CN 113422731 A CN113422731 A CN 113422731A CN 202110693188 A CN202110693188 A CN 202110693188A CN 113422731 A CN113422731 A CN 113422731A
- Authority
- CN
- China
- Prior art keywords
- port
- data
- data message
- load balancing
- information
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 40
- 238000004891 communication Methods 0.000 claims abstract description 26
- 238000013507 mapping Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 5
- 238000001914 filtration Methods 0.000 claims description 5
- 230000002776 aggregation Effects 0.000 description 6
- 238000004220 aggregation Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 101100074187 Caenorhabditis elegans lag-1 gene Proteins 0.000 description 2
- 101100510615 Caenorhabditis elegans lag-2 gene Proteins 0.000 description 2
- 101100510617 Caenorhabditis elegans sel-8 gene Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- WVAKRQOMAINQPU-UHFFFAOYSA-N 2-[4-[2-[5-(2,2-dimethylbutyl)-1h-imidazol-2-yl]ethyl]phenyl]pyridine Chemical group N1C(CC(C)(C)CC)=CN=C1CCC1=CC=C(C=2N=CC=CC=2)C=C1 WVAKRQOMAINQPU-UHFFFAOYSA-N 0.000 description 1
- WUBBRNOQWQTFEX-UHFFFAOYSA-N 4-aminosalicylic acid Chemical compound NC1=CC=C(C(O)=O)C(O)=C1 WUBBRNOQWQTFEX-UHFFFAOYSA-N 0.000 description 1
- 101150033765 BAG1 gene Proteins 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 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/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/7453—Address table lookup; Address filtering using hashing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种负载均衡输出方法、装置、汇聚分流设备和介质,包括:获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与多个数据报文对应的端口信息表;根据各数据报文的五元组信息,计算各数据报文对应的哈希值;根据各数据报文对应的哈希值,以及各数据报文对应的物理端口,确定与各数据报文对应的目标端口;通过与各数据报文对应的目标端口,将各数据报文进行负载均衡输出。本发明实施例的技术方案可以实现汇聚分流设备将流量在负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
Description
技术领域
本发明实施例涉及网络技术,尤其涉及一种负载均衡输出方法、装置、汇聚分流设备和介质。
背景技术
在网络安全及数据流量分析领域,通常需要汇聚分流设备将多个来源的网络流量进行汇聚和分流,然后输出到后端设备进行检测或分析。
基于网络安全的现网汇聚分流需求,汇聚分流设备接收到报文后,通常需要经过访问控制列表(Access Control Lists,ACL)进行过滤,得到待转发报文。汇聚分流设备可以根据用户需求将多个待转发报文发送至负载均衡组中,或者也可以复制到多个负载均衡组中,以保证流量负载均衡输出,以此减轻后端设备的带宽压力。
但是,对于某些特殊场景,例如在负载均衡输出时,需要在负载均衡组中带权输出(即某些端口负载比重大,某些端口负载比重小),现有的汇聚分流设备只能均匀地将流量在负载均衡组中输出,而无法对负载均衡组中的端口权重进行设置。
发明内容
本发明实施例提供一种负载均衡输出方法、装置、汇聚分流设备和介质,可以实现汇聚分流设备将流量在负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
第一方面,本发明实施例提供了一种负载均衡输出方法,所述方法包括:
获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
第二方面,本发明实施例还提供了一种负载均衡输出装置,该装置包括:
信息表构建模块,用于获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
哈希值计算模块,用于根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
端口确定模块,用于根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
输出模块,用于通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
第三方面,本发明实施例还提供了一种汇聚分流设备,该设备包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例提供的一种负载均衡输出方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,该存储介质上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例提供的一种负载均衡输出方法。
本发明实施例的技术方案通过获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表,并根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值,然后根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口,最后通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出的技术手段,可以实现汇聚分流设备将流量在负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
附图说明
图1是本发明实施例一中的一种负载均衡输出方法的流程图;
图2是本发明实施例二中的一种负载均衡输出方法的流程图;
图3a是本发明实施例三中的一种负载均衡输出方法的流程图;
图3b是本发明实施例三中的一种端口信息树状表的示意图;
图4是本发明实施例四中的一种负载均衡输出装置的结构图;
图5是本发明实施例五中的一种汇聚分流设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
需要说明的是,本发明实施例中所涉及的汇聚分流设备是基于Barefoot研发的可编程芯片Tofino,所开发的用于将多个来源的网络流量进行汇聚和分流的设备。其中,Tofino芯片是以Pipeline的形式对数据进行处理的,Tofino芯片一共有两条Pipeline,分别是IngressPipeline和EgressPineline,每个Pipeline都包括解析器Paser、Mau(MatchAction Unit,匹配查表单元)、以及逆解析器Depaser。IngressPipeline和EgressPipeline之间通过TM(Traffic Manage,流量管理)模块连接,该模块用于实现队列管理、流量复制等功能。本发明的主要工作集中于MAU和TM部分,例如在IngressPipeline的Mau部分执行Lag表格的相关操作,以及对TM模块中多播树的相关操作来实现汇聚分流设备带权负载输出功能。
实施例一
图1为本发明实施例一提供的一种负载均衡输出方法的流程图,本实施例可适用于汇聚分流设备对接收到的数据报文进行负载均衡输出的情况,该方法可以由负载均衡输出装置来执行,该装置可以由软件和/或硬件来实现,并一般可以集成在汇聚分流设备中,具体包括如下步骤:
步骤110、获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表。
在本实施例中,所述待转发的数据报文是汇聚分流设备需要转发的数据报文。其中,端口权重配置信息可以由用户进行设置,具体可以包括与各数据报文对应的物理端口,以及各物理端口之间的负载比例。所述通讯模式可以为汇聚分流设备中预设的流量输出方式,例如单播模式和多播模式。其中,单播模式是指汇聚分流过程中,流量从一个负载均衡组输出;多播模式是指汇聚分流过程中,流量复制到多个负载均衡组中,从多个负载均衡组中输出。
在此步骤中,获取到多个待转发的数据报文后,可以根据预设的通讯模式,以及端口权重配置信息中记录的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与多个数据报文对应的端口信息表,所述端口信息表中存储了与各数据报文对应的物理端口。
在一个具体的实施例中,假设通讯模式为单播模式,则可以基于Tofino芯片的Lag机制特性,根据与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与多个数据报文对应的端口信息表。其中,假设某一数据报文对应四个物理端口,分别为端口A、端口B、端口C以及端口D,端口权重配置信息中记录的这四个端口之间的负载比例为1:3:2:1,则可以在端口信息表中对端口B、端口C以及端口D进行复制,复制处理后的端口信息表中包括1个端口A,3个端口B,2个端口C以及1个端口D。
在另一个具体的实施例中,假设通讯模式为多播模式,则可以基于Tofino芯片的多播树机制特性,根据与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与多个数据报文对应的端口信息树状表。其中,假设某一数据报文对应四个物理端口,分别为端口A、端口B、端口C以及端口D,端口权重配置信息中记录的这四个端口之间的负载比例为1:3:2:1,则可以在端口信息树状表中对端口B、端口C以及端口D对应的叶子节点进行复制,复制处理后的端口信息树状表中可以包括上述四种物理端口对应的7个叶子节点,其中,端口A可以对应1个叶子节点,端口B可以对应3个叶子节点,端口C可以对应2个叶子节点,端口D可以对应1个叶子节点。步骤120、根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值。
在本实施例中,数据报文中的五元组信息可以包括数据报文对应的源IP(Internet Protocol,互联网协议)地址、目的IP地址、协议类型、源端口号和目的端口号。其中,源IP地址为数据报文对应的发送者的IP地址;目的IP地址为数据报文对应的接收者的IP地址;协议类型为数据报文遵从的传输协议类型,例如超文本传输协议(Hyper TextTransfer Protocol,HTTP)或者传输控制协议(Transmission Control Protocol,TCP)等;源端口号为发送数据报文的端口对应的端口号;目的端口号接收数据报文的端口对应的端口号。
在本发明实施例的一个实施方式中,可以根据数据报文的全部五元组信息(源IP地址、目的IP地址、协议类型、源端口号和目的端口号),计算数据报文对应的哈希值;
在本发明实施例的另一个实施方式中,用户可以根据数据报文的五元组信息中配置用于计算哈希值的关键字段,例如,用户不关注数据报文的源端口号和目的端口号,仅关注数据报文的源IP地址和目的IP地址,则可以将数据报文的源IP地址和目的IP地址配置为用于计算哈希值的关键字段。获取到用户配置的关键字段后,可以根据所述关键字段计算数据报文对应的哈希值。
步骤130、根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口。
在本实施例中,如果通讯模式为单播模式,则可以根据各数据报文对应的哈希值去模除对应的物理端口的个数,得到与数据报文对应的目标端口,由此,通过将与数据报文对应的物理端口按照负载比例在端口信息表被多次添加,可以保证所有物理端口被模除的权重是按照负载比例来的,从而实现单播模式下,汇聚分流设备将流量在负载均衡组中按照端口权重进行输出。
如果通讯模式为多播模式,由于端口信息树状表中每一个叶子节点都对应一个父节点,即每个父节点都是按照预设的负载比例进行添加得到的,并且所有父节点共同组成了一个ECMP(Equal Cost Multi-Path,等价多路径路由)组,因此,在确定与各所述数据报文对应的目标端口时,可以在ECMP组中按照预设的负载比例执行一次哈希负载,确定出目标父节点,然后将目标父节点匹配的流量直接从对应的子节点进行输出,由此可以实现多播模式下,汇聚分流设备将流量在多个负载均衡组中按照端口权重进行输出。
在本发明实施例的一个实施方式中,根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各数据报文对应的目标端口,包括:将各所述数据报文对应的哈希值,与对应的物理端口的数量进行模除运算;根据模除运算结果,在各所述数据报文对应的物理端口中,确定与各所述数据报文对应的目标端口。
其中,假设某数据报文对应的哈希值为4,该数据报文对应三个物理端口,分别为端口A、端口B与端口C,将该数据报文对应的哈希值,与对应的物理端口的数量进行相除后,得到余数为1,则将上述三个物理端口中第一个端口(即端口A)作为与所述数据报文对应的目标端口;如果该数据报文对应的哈希值为8,将该数据报文对应的哈希值,与对应的物理端口的数量进行相除后,得到余数为2,则可以将上述三个物理端口中第二个端口(即端口B)作为与所述数据报文对应的目标端口。
步骤140、通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
在此步骤中,可以通过与各数据报文对应的目标端口,将各所述数据报文进行转发,以实现汇聚分流设备将多个数据报文进行负载均衡输出。
需要说明的是,现有的汇聚分流设备只能均匀地将流量在负载均衡组中输出,而无法对负载均衡组中的端口权重进行设置。例如,假设某负载均衡组中包括端口A、端口B和端口C,其中,端口A带宽为10G,端口B带宽为40G,端口C带宽为100G,如果需要将100G的流量从该负载均衡组中的三个端口负载输出,在不对端口权重进行设置的情况下,上述每个端口需要输出将近34G的流量,由此端口A将会发生流量溢出的现象,造成数据包丢失。
相比于现有的汇聚分流设备,本实施例通过获取用户设置的负载比例,并按照此负载比例将各个端口在端口信息表中进行多次添加,可以实现汇聚分流设备将流量在负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,同时也可以使负载均衡输出的方式更加灵活,可以根据用户的不同需求配置不同的负载输出权重。
本发明实施例的技术方案通过获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表,并根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值,然后根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口,最后通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出的技术手段,可以实现汇聚分流设备将流量在负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
实施例二
本实施例是对上述实施例的进一步细化,与上述实施例相同或相应的术语解释,本实施例不再赘述。图2为本实施例二提供的一种负载均衡输出方法的流程图,在本实施例中,本实施例的技术方案可以与上述实施例的方案中的一种或者多种方法进行组合,如图2所示,本实施例提供的方法还可以包括:
步骤210、获取多个原始数据报文,根据预存的访问控制列表ACL对所述多个原始数据报文进行过滤,得到多个待转发的数据报文。
在本实施例中,所述原始数据报文是预设时间段内输入汇聚分流设备的全部数据报文。获取到多个原始数据报文后,可以根据ACL列表中记录的标准报文信息(例如报文对应的源IP地址、目的IP地址、协议类型、源端口号和目的端口号)对所述多个原始数据报文进行过滤,将报文信息与标准报文信息一致的数据报文作为待转发的数据报文。
步骤220、如果所述通讯模式为单播模式,则构建与各数据报文对应的Lag表;所述Lag表是以各Lag ID为键值,并以选择表ID为数据的数据表,所述Lag ID表示与各数据报文对应的Lag标识。
在此步骤中,可以为各数据报文分配对应的Lag ID以及选择表ID,根据Lag ID以及选择表ID,构建与各数据报文对应的Lag表,如表1所示。表1中各数据报文对应的Lag ID为键值,选择表ID(Lag_selector_id)为数据。
表1
Table entry | Key(Lag_id) | Data(Lag_selector_id) |
1 | Lag_1 | Lag_selector_1 |
2 | Lag_2 | Lag_selector_2 |
3 | Lag_3 | Lag_selector_3 |
步骤230、根据各选择表ID,以及预存的端口权重配置信息,构建Lag选择表;所述Lag选择表是以各选择表ID为键值,并以端口ID为数据的数据表。
在本实施例中,所述预存的端口权重配置信息中包括与选择表ID对应的多个端口ID,以及各端口ID之间的负载比例。
在一个具体的实施例中,假设某数据报文的Lag ID为Lag_1,该报文对应的选择表ID为Lag_selector_1,端口权重配置信息中记录的与Lag_selector_1对应的端口ID可以为m1、m2、m3和m4。
在本发明实施例的一个实施方式中,根据各选择表ID,以及预存的端口权重配置信息,构建Lag选择表,包括:根据端口权重配置信息中包括的多个端口ID,以及各端口ID之间的负载比例,将负载比例大于一的端口ID进行复制,得到与选择表ID对应的数据;将与各选择表ID对应的数据填充在对应的数据行里,得到Lag选择表。
其中,假设端口权重配置信息中记录的各端口ID(m1、m2、m3和m4)之间的负载比例为1:3:2:1,则可以将m2、m3和m4进行复制,以使复制后的各端口ID的比例与所述负载比例相等,然后根据选择表ID,以及复制处理后的各端口ID,得到Lag选择表,如表2所示。
表2
其中,表2中是以各选择表ID(Lag_selector_id)为键值,以端口ID(ports_member_id)以及各端口的状态(ports_status)为数据,其中,端口状态为UP时,表2中记录的数据为True,端口状态为DOWN时,表2中记录的数据为False。
步骤240、根据各端口ID,以及各端口ID与各物理端口之间的映射关系,构建端口映射表;所述端口映射表是以各端口ID为键值,并以物理端口为数据的数据表。
在此步骤中,可以根据各端口ID,以及各端口ID与实际的物理端口之间的映射关系,构建端口映射表,如表3所示。
表3
在本实施例中,Lag表、Lag选择表以及端口映射表共同构成端口信息表,所述端口信息表中存储了与各数据报文对应的物理端口。
在本实施例中,构建完成Lag表之后,可以根据Lag表中的Lag ID,构建与各数据报文对应的ACL列表。其中,ACL列表中记录了每个数据报文对应的报文信息与Lag ID之间的映射关系,所述报文信息可以为数据报文对应的源IP地址、目的IP地址、协议类型、源端口号或者目的端口号等。
示例性地,以报文信息为IP地址为例,表4为本实施例中的一种ACL列表,该ACL列表中记录了每个待发送的数据报文对应的IP地址与Lag ID之间的映射关系,其中,每个待发送的数据报文对应的IP地址为键值,Lag ID为数据。
表4
Table entry | Key(sip) | Data(Lag_id) |
1 | 192.16.2.31 | Lag_1 |
2 | 192.168.1.3 | Lag_2 |
3 | 192.168.72.11 | Lag_3 |
在构建完与各数据报文对应的ACL列表之后,可以根据各数据报文对应的报文信息,在所述ACL列表中查询对应的Lag ID,然后根据所述Lag ID在Lag表、Lag选择表以及端口映射表中查询到与该数据报文对应的物理端口。
步骤250、根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值。
步骤260、根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口。
在本实施例中,可以根据数据报文的报文信息,在ACL列表中查询得到Lag ID,然后根据Lag ID在Lag表、Lag选择表以及端口映射表中查询得到与该数据报文对应的物理端口,例如port1、port2、port2、port2、port3、port3、port4,然后将该数据报文对应的哈希值,与对应的物理端口的数量进行模除运算,根据模除运算结果,在各所述数据报文对应的物理端口中,确定与各所述数据报文对应的目标端口。
步骤270、通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
本发明实施例的技术方案通过获取多个原始数据报文,根据ACL列表对多个原始数据报文进行过滤,得到多个待转发的数据报文,并在单播模式下构建与各数据报文对应的Lag表,然后根据各选择表ID以及端口权重配置信息构建Lag选择表,根据各端口ID以及各端口ID与各物理端口之间的映射关系构建端口映射表,并根据五元组信息计算各数据报文对应的哈希值,最后根据各数据报文对应的哈希值,以及对应的物理端口确定目标端口,通过与各数据报文对应的目标端口,将各数据报文进行负载均衡输出的技术手段,可以实现汇聚分流设备将流量在一个负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
实施例三
本实施例是对上述实施例的进一步细化,与上述实施例相同或相应的术语解释,本实施例不再赘述。图3a为本实施例三提供的一种负载均衡输出方法的流程图,在本实施例中,本实施例的技术方案可以与上述实施例的方案中的一种或者多种方法进行组合,如图3a所示,本实施例提供的方法还可以包括:
步骤310、获取多个待转发的数据报文。
步骤320、如果所述通讯模式为多播模式,则根据端口权重配置信息中包括的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与各数据报文对应的端口信息树状表。
在本发明实施例的一个实施方式中,根据端口权重配置信息中包括的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与各数据报文对应的端口信息树状表,包括:根据端口权重配置信息中包括的与数据报文对应的多个物理端口,以及各物理端口之间的负载比例,将负载比例大于一的物理端口进行复制,得到多个端口子节点;根据端口子节点的数量,构建与各端口子节点一一对应的端口父节点;将各端口父节点与根节点相连,得到与所述数据报文对应的端口信息树状表。
在一个具体的实施例中,图3b为本实施例的一种端口信息树状表的示意图,假设端口权重配置信息中记录的与某一数据报文对应的物理端口分别为端口A、端口B、端口C以及端口D,这四个端口之间的负载比例为1:3:2:1,则可以将端口B、端口C以及端口D进行复制,得到多个端口子节点(图3b中的Pa、Pb、Pb、Pb、Pc、Pc和Pd),然后根据端口子节点的数量,构建与各端口子节点一一对应的端口父节点(图3b中的node),多个端口父节点构成了一个ECMP组,然后将该ECMP组与根节点(图3b中的mg_id)相连,得到了与所述数据报文对应的端口信息树状表。
步骤330、根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值。
步骤340、根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口。
在本实施例中,可以根据端口信息树状表,在多个端口父节点组成的ECMP组中按照预设的负载比例执行一次哈希负载,确定出目标父节点,然后将目标父节点匹配的流量直接从对应的子节点进行输出,由此可以实现多播模式下,汇聚分流设备将流量在多个负载均衡组中按照端口权重进行输出。其中,由于本实施例中每个端口父节点与单个端口子节点相连,因此,端口父节点分配到数据报文后,会向对应的端口子节点复制一份数据报文。
步骤350、通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
本发明实施例的技术方案通过获取多个待转发的数据报文,在多播模式下根据端口权重配置信息中包括的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与各数据报文对应的端口信息树状表,然后根据各数据报文的五元组信息,计算各数据报文对应的哈希值,并根据各数据报文对应的哈希值,以及各数据报文对应的物理端口,确定与各数据报文对应的目标端口,最后通过与各数据报文对应的目标端口,将各数据报文进行负载均衡输出的技术手段,可以实现汇聚分流设备将流量在多个负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
实施例四
图4为本发明实施例四提供的一种负载均衡输出装置的结构图,包括:信息表构建模块410、哈希值计算模块420、端口确定模块430和输出模块440。
其中,信息表构建模块410,用于获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
哈希值计算模块420,用于根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
端口确定模块430,用于根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
输出模块440,用于通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
本发明实施例的技术方案通过获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表,并根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值,然后根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口,最后通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出的技术手段,可以实现汇聚分流设备将流量在负载均衡组中按照端口权重进行输出,解决当负载均衡组中各端口带宽不同时,导致带宽小的端口流量溢出的问题,提高负载均衡输出方式的灵活性。
在上述各实施例的基础上,所述预存的端口权重配置信息中包括与选择表ID对应的多个端口ID,以及各端口ID之间的负载比例;
信息表构建模块410,可以包括:
报文过滤单元,用于获取多个原始数据报文,根据预存的访问控制列表ACL对所述多个原始数据报文进行过滤,得到多个待转发的数据报文;
Lag表构建单元,用于如果所述通讯模式为单播模式,则构建与各数据报文对应的Lag表;所述Lag表是以各Lag ID为键值,并以选择表ID为数据的数据表;所述Lag ID表示与各数据报文对应的Lag标识;
Lag选择表构建单元,用于根据各选择表ID,以及预存的端口权重配置信息,构建Lag选择表;所述Lag选择表是以各选择表ID为键值,并以端口ID为数据的数据表;
端口映射表构建单元,用于根据各端口ID,以及各端口ID与各物理端口之间的映射关系,构建端口映射表;所述端口映射表是以各端口ID为键值,并以物理端口为数据的数据表;
端口ID复制单元,用于根据端口权重配置信息中包括的多个端口ID,以及各端口ID之间的负载比例,将负载比例大于一的端口ID进行复制,得到与选择表ID对应的数据;
数据填充单元,用于将与各选择表ID对应的数据填充在对应的数据行里,得到Lag选择表;
树状表构建单元,用于如果所述通讯模式为多播模式,则根据端口权重配置信息中包括的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与各数据报文对应的端口信息树状表;
物理端口复制单元,用于根据端口权重配置信息中包括的与数据报文对应的多个物理端口,以及各物理端口之间的负载比例,将负载比例大于一的物理端口进行复制,得到多个端口子节点;
父节点构建单元,用于根据端口子节点的数量,构建与各端口子节点一一对应的端口父节点;
节点连接单元,用于将各端口父节点与根节点相连,得到与所述数据报文对应的端口信息树状表。
端口确定模块430,可以包括:
模除运算单元,用于将各所述数据报文对应的哈希值,与对应的物理端口的数量进行模除运算;
目标端口确定单元,用于根据模除运算结果,在各所述数据报文对应的物理端口中,确定与各所述数据报文对应的目标端口。
本发明实施例所提供的负载均衡输出装置可执行本发明任意实施例所提供的负载均衡输出方法,具备执行方法相应的功能模块和有益效果。
实施例五
图5为本发明实施例五提供的一种汇聚分流设备的结构示意图,如图5所示,该汇聚分流设备包括处理器510、存储器520、输入装置530和输出装置540;汇聚分流设备中处理器510的数量可以是一个或多个,图5中以一个处理器510为例;汇聚分流设备中的处理器510、存储器520、输入装置530和输出装置540可以通过总线或其他方式连接,图5中以通过总线连接为例。存储器520作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的一种负载均衡输出方法对应的程序指令/模块(例如,一种负载均衡输出装置中的信息表构建模块410、哈希值计算模块420、端口确定模块430和输出模块440)。处理器510通过运行存储在存储器520中的软件程序、指令以及模块,从而执行汇聚分流设备的各种功能应用以及数据处理,即实现上述的一种负载均衡输出方法。也即,该程序被处理器执行时实现:
获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
存储器520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器520可进一步包括相对于处理器510远程设置的存储器,这些远程存储器可以通过网络连接至汇聚分流设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置530可用于接收输入的数字或字符信息,以及产生与汇聚分流设备的用户设置以及功能控制有关的键信号输入,可以包括键盘和鼠标等。输出装置540可包括显示屏等显示设备。
实施例六
本发明实施例六还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所述方法。当然,本发明实施例所提供的一种计算机可读存储介质,其可以执行本发明任意实施例提供的一种负载均衡输出方法中的相关操作。也即,该程序被处理器执行时实现:
获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台汇聚分流设备执行本发明各个实施例所述的方法。
值得注意的是,上述负载均衡输出装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (10)
1.一种负载均衡输出方法,其特征在于,包括:
获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
2.根据权利要求1所述的方法,其特征在于,获取多个待转发的数据报文,包括:
获取多个原始数据报文,根据预存的访问控制列表ACL对所述多个原始数据报文进行过滤,得到多个待转发的数据报文。
3.根据权利要求2所述的方法,其特征在于,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表,包括:
如果所述通讯模式为单播模式,则构建与各数据报文对应的Lag表;所述Lag表是以各Lag ID为键值,并以选择表ID为数据的数据表;所述Lag ID表示与各数据报文对应的Lag标识;
根据各选择表ID,以及预存的端口权重配置信息,构建Lag选择表;所述Lag选择表是以各选择表ID为键值,并以端口ID为数据的数据表;
根据各端口ID,以及各端口ID与各物理端口之间的映射关系,构建端口映射表;所述端口映射表是以各端口ID为键值,并以物理端口为数据的数据表。
4.根据权利要求3所述的方法,其特征在于,所述预存的端口权重配置信息中包括与选择表ID对应的多个端口ID,以及各端口ID之间的负载比例;
根据各选择表ID,以及预存的端口权重配置信息,构建Lag选择表,包括:
根据端口权重配置信息中包括的多个端口ID,以及各端口ID之间的负载比例,将负载比例大于一的端口ID进行复制,得到与选择表ID对应的数据;
将与各选择表ID对应的数据填充在对应的数据行里,得到Lag选择表。
5.根据权利要求1所述的方法,其特征在于,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表,包括:
如果所述通讯模式为多播模式,则根据端口权重配置信息中包括的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与各数据报文对应的端口信息树状表。
6.根据权利要求5所述的方法,其特征在于,根据端口权重配置信息中包括的与各数据报文对应的物理端口,以及各物理端口之间的负载比例,构建与各数据报文对应的端口信息树状表,包括:
根据端口权重配置信息中包括的与数据报文对应的多个物理端口,以及各物理端口之间的负载比例,将负载比例大于一的物理端口进行复制,得到多个端口子节点;
根据端口子节点的数量,构建与各端口子节点一一对应的端口父节点;
将各端口父节点与根节点相连,得到与所述数据报文对应的端口信息树状表。
7.根据权利要求1所述的方法,其特征在于,根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各数据报文对应的目标端口,包括:
将各所述数据报文对应的哈希值,与对应的物理端口的数量进行模除运算;
根据模除运算结果,在各所述数据报文对应的物理端口中,确定与各所述数据报文对应的目标端口。
8.一种负载均衡输出装置,其特征在于,包括:
信息表构建模块,用于获取多个待转发的数据报文,根据预存的端口权重配置信息,以及预设的通讯模式,构建与所述多个数据报文对应的端口信息表;所述端口信息表中存储了与各数据报文对应的物理端口;
哈希值计算模块,用于根据各所述数据报文的五元组信息,计算各所述数据报文对应的哈希值;
端口确定模块,用于根据各所述数据报文对应的哈希值,以及各所述数据报文对应的物理端口,确定与各所述数据报文对应的目标端口;
输出模块,用于通过与各数据报文对应的目标端口,将各所述数据报文进行负载均衡输出。
9.一种汇聚分流设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器执行所述程序时实现如权利要求1-7中任一所述的负载均衡输出方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的负载均衡输出方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110693188.2A CN113422731A (zh) | 2021-06-22 | 2021-06-22 | 一种负载均衡输出方法、装置、汇聚分流设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110693188.2A CN113422731A (zh) | 2021-06-22 | 2021-06-22 | 一种负载均衡输出方法、装置、汇聚分流设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113422731A true CN113422731A (zh) | 2021-09-21 |
Family
ID=77716130
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110693188.2A Pending CN113422731A (zh) | 2021-06-22 | 2021-06-22 | 一种负载均衡输出方法、装置、汇聚分流设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113422731A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237883A (zh) * | 2021-12-10 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种安全服务链创建方法、报文传输方法、装置及设备 |
CN114513464A (zh) * | 2021-12-31 | 2022-05-17 | 深圳市联洲国际技术有限公司 | 流量负载均衡调度方法、装置、设备及存储介质 |
CN115065641A (zh) * | 2022-06-09 | 2022-09-16 | 深圳市东晟数据有限公司 | 汇聚分流系统 |
CN115955439A (zh) * | 2023-03-13 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 数据报文的传输控制方法、系统、装置及存储介质 |
WO2023168657A1 (en) * | 2022-03-10 | 2023-09-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for selecting lag port for ip flow |
WO2023186046A1 (zh) * | 2022-04-01 | 2023-10-05 | 阿里巴巴(中国)有限公司 | 一种发送报文的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078804A (zh) * | 2012-12-28 | 2013-05-01 | 福建星网锐捷网络有限公司 | 等价多路径表处理方法、装置及网络设备 |
CN104539552A (zh) * | 2015-01-12 | 2015-04-22 | 盛科网络(苏州)有限公司 | 一种基于网络芯片的动态ecmp的实现方法 |
US20170005935A1 (en) * | 2014-01-23 | 2017-01-05 | Zte Corporation | Load Balancing Method and System |
CN107579923A (zh) * | 2017-09-18 | 2018-01-12 | 迈普通信技术股份有限公司 | 一种sdn网络的链路负载均衡方法和sdn控制器 |
-
2021
- 2021-06-22 CN CN202110693188.2A patent/CN113422731A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103078804A (zh) * | 2012-12-28 | 2013-05-01 | 福建星网锐捷网络有限公司 | 等价多路径表处理方法、装置及网络设备 |
US20170005935A1 (en) * | 2014-01-23 | 2017-01-05 | Zte Corporation | Load Balancing Method and System |
CN104539552A (zh) * | 2015-01-12 | 2015-04-22 | 盛科网络(苏州)有限公司 | 一种基于网络芯片的动态ecmp的实现方法 |
CN107579923A (zh) * | 2017-09-18 | 2018-01-12 | 迈普通信技术股份有限公司 | 一种sdn网络的链路负载均衡方法和sdn控制器 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237883A (zh) * | 2021-12-10 | 2022-03-25 | 北京天融信网络安全技术有限公司 | 一种安全服务链创建方法、报文传输方法、装置及设备 |
CN114513464A (zh) * | 2021-12-31 | 2022-05-17 | 深圳市联洲国际技术有限公司 | 流量负载均衡调度方法、装置、设备及存储介质 |
CN114513464B (zh) * | 2021-12-31 | 2024-03-29 | 深圳市联洲国际技术有限公司 | 流量负载均衡调度方法、装置、设备及存储介质 |
WO2023168657A1 (en) * | 2022-03-10 | 2023-09-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and apparatus for selecting lag port for ip flow |
WO2023186046A1 (zh) * | 2022-04-01 | 2023-10-05 | 阿里巴巴(中国)有限公司 | 一种发送报文的方法和装置 |
CN115065641A (zh) * | 2022-06-09 | 2022-09-16 | 深圳市东晟数据有限公司 | 汇聚分流系统 |
CN115955439A (zh) * | 2023-03-13 | 2023-04-11 | 苏州浪潮智能科技有限公司 | 数据报文的传输控制方法、系统、装置及存储介质 |
CN115955439B (zh) * | 2023-03-13 | 2023-05-23 | 苏州浪潮智能科技有限公司 | 数据报文的传输控制方法、系统、装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113422731A (zh) | 一种负载均衡输出方法、装置、汇聚分流设备和介质 | |
US10484206B2 (en) | Path detection method in VxLAN, controller, and network device | |
US7911977B2 (en) | Designated router assignment per multicast group address/range | |
US7889748B1 (en) | Mapping a port on a packet switch appliance | |
US10516549B2 (en) | Multicast service with is-is spine-leaf extension in a fabric network | |
US10601702B1 (en) | Flexible packet replication and filtering for multicast/broadcast | |
US9001668B2 (en) | Endpoint selection in a network test system | |
WO2017000677A1 (zh) | 组播控制方法和装置 | |
US10404589B2 (en) | Systems and methods for determining input and output interfaces of a network device and copies of a same packet going through the network device | |
CN106341338B (zh) | 一种报文的转发方法及装置 | |
US9571393B2 (en) | Systems and methods for processing packets tapped from a network | |
CN107947994B (zh) | 网络拓扑自发现方法、装置、网络设备及计算机存储介质 | |
CN1312889C (zh) | 集群网络的单一地址流量分发器 | |
WO2021082812A1 (zh) | 报文的发送方法和第一网络设备 | |
CN111726299B (zh) | 流量均衡方法及装置 | |
Cui et al. | Scalable and load-balanced data center multicast | |
CN112039783B (zh) | 通信数据输出方法、装置、计算机设备及存储介质 | |
US9680710B2 (en) | Systems and methods for processing packets tapped from a network using discovery protocol | |
CN111010343A (zh) | 一种转发组播报文的方法、装置、网络设备及存储介质 | |
CN107483341A (zh) | 一种跨防火墙报文快速转发方法及装置 | |
Miguel-Alonso | A research review of OpenFlow for datacenter networking | |
Cui et al. | Dual-structure data center multicast using software defined networking | |
CN105939276A (zh) | 组播数据报文的转发方法和装置 | |
US20110255421A1 (en) | Investigating quality of service disruptions in multicast forwarding trees | |
CN110995609A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210921 |