CN105763617B - 一种负载均衡方法和系统 - Google Patents
一种负载均衡方法和系统 Download PDFInfo
- Publication number
- CN105763617B CN105763617B CN201610196969.XA CN201610196969A CN105763617B CN 105763617 B CN105763617 B CN 105763617B CN 201610196969 A CN201610196969 A CN 201610196969A CN 105763617 B CN105763617 B CN 105763617B
- Authority
- CN
- China
- Prior art keywords
- message
- single machine
- load balancing
- load
- address
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2441—Traffic characterised by specific attributes, e.g. priority or QoS relying on flow classification, e.g. using integrated services [IntServ]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种负载均衡方法和系统。该方法包括:通过各台负载均衡单机的链路口从外部接收报文;各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理;各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口。通过使用本发明所提供的负载均衡方法和系统,即使是在进行大规模链路的同源同宿负载均衡时,也可以在进行负载均衡的同时,使得所输出的报文都符合同源同宿规则,并可减少存储空间,提高系统的整体性能。
Description
技术领域
本发明涉及数据传输技术,特别涉及一种负载均衡方法和系统。
背景技术
目前,随着网络技术的飞速发展,通过网络技术传输的数据也越来越多。在进行上述数据传输时,一般都会使用相应的服务器进行传输。为了保证各个服务器的工作效率,在进行数据传输时将使用负载均衡设备。负载均衡设备将根据预设的分配策略,并根据所接收到的各个数据请求,完成相应的数据传输。
在进行上述数据传输时,通常会有同源同宿的要求,即同一个会话的报文,从同一个出端口发出。
现有技术中已经提出了一种相应的数据传输方法。在该数据传输方法中,将先区分所接收到的数据包是上行数据包还是下行数据包,然后对数据包进行解析,剥离出链路层信息;接着剥离出网络层信息,对上行数据包提取源IP地址,对下行数据包提取目标IP地址;随后再对所提取的地址进行散列计算,得出散列值;最后,将相同散列值的数据包存入同一个队列。在该方法中,通过对数据包的IP地址或者数据包特定的偏移位置进行散列计算,实现“同源同宿”,保证了同一个用户的所有数据包都被放入同样的队列中,应用程序处理的时候,就不必在不同队列进行搜索,避免“访问竞争”的同时也就提升了数据包的处理效率。
但是,上述的现有技术中还存在一些问题,例如,现有的技术方案一般都仅适用于仅有少量链路接入的情况下进行同源同宿负载均衡,但如果面对具有大规模链路接入(例如,多于200条链路接入)的同源同宿负载均衡的情况,则完全无法胜任,从而难以在进行负载均衡的同时,使得所输出的报文都符合同源同宿规则。
由此可知,现有技术中的上述方法中还存在一些问题,亟待解决。
发明内容
有鉴于此,本发明提供一种负载均衡方法和系统,从而即使是在进行大规模链路的同源同宿负载均衡时,也可以在进行负载均衡的同时,使得所输出的报文都符合同源同宿规则,并可减少存储空间,提高系统的整体性能。
本发明的技术方案具体是这样实现的:
一种负载均衡方法,该方法包括:
通过各台负载均衡单机的链路口从外部接收报文;
各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;
根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理;
各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口;
其中,所述预设的流分类策略包括:
预先在源IP地址和目的IP地址中的预设位置对应地截取n位;其中,所述n为小于或等于32的正整数;
对所截取的n位源IP地址、目的IP地址的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则;
根据报文的源IP地址和目的IP地址中的预设位置的n位的实际取值,确定所对应的排列组合结果,并根据所确定的排列组合结果确定该报文所符合的匹配规则组合;其中,所述匹配规则组合中包括至少一种匹配规则。
较佳的,所述根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理包括:
当一个负载均衡单机接收到一个报文时,判断该报文所符合的匹配规则组合是否与该负载均衡单机对应;如果是,则由该负载均衡单机对该报文进行后续的处理;否则,该负载均衡单机将该报文通过互联端口发送到与该报文所符合的匹配规则组合对应的负载均衡单机进行后续的处理。
较佳的,所述n的取值小于或等于4。
较佳的,所述源IP地址和目的IP地址中的预设位置的n位为:
源IP地址和目的IP地址中的最后2位。
较佳的,所述X通过如下公式得到:
较佳的,所述各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口包括:
从所需处理的报文的源IP地址和目的IP地址中的预设第二位置对应地选取x位;其中,所述x为小于或等于32的正整数;
对所选取的x位源IP地址和目的IP地址进行异或计算,然后进行对dpi_port取模计算;所述dpi_port为该负载均衡单机的出端口的数量;
将所需处理的报文发送到与取模计算的结果相应的出端口。
较佳的,所述x的取值小于或等于6。
本发明中还提供了一种负载均衡系统,该系统包括:多台负载均衡单机;
其中,各台负载均衡单机上均设置有多个链路口、互联端口和出端口;各台负载均衡单机通过互联端口相互连接;
各台负载均衡单机通过链路口从外部接收报文;
各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;并根据预设的匹配规则组合与各负载均衡单机的对应关系,将所接收到的报文分配给对应的负载均衡单机进行处理;
各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口;
其中,所述预设的流分类策略包括:
预先在源IP地址和目的IP地址中的预设位置对应地截取n位;其中,所述n为小于或等于32的正整数;
对所截取的n位源IP地址、目的IP地址的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则;
根据报文的源IP地址和目的IP地址中的预设位置的n位的实际取值,确定所对应的排列组合结果,并根据所确定的排列组合结果确定该报文所符合的匹配规则组合;其中,所述匹配规则组合中包括至少一种匹配规则。
较佳的,所述负载均衡单机中包括:收发单元、流分类单元、重定向单元和多个负载均衡单元;
所述收发单元中设置有多个链路口和多个互联端口;
所述收发单元,用于通过链路口从外部接收报文,通过互联端口从其它负载均衡单机接收需处理的报文并通过互联端口向其它负载均衡单机发送需处理的报文;还用于将接收到的报文发生给所述流分类单元;
所述流分类单元,用于根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;将所接收到的报文以及该报文所符合的匹配规则组合发生给所述重定向单元;
所述重定向单元,用于根据预设的匹配规则组合与各负载均衡单机的对应关系,将所接收到的报文发送给各个负载均衡单元或者收发单元;
所述各个负载均衡单元,用于根据所接收的报文进行内部负载均衡,将所接收到的报文根据内部负载均衡的结果发送到相应的出端口。
较佳的,所述负载均衡单元包括:发包模块和负载均衡引擎;
所述发包模块中设置有dpi_port个出端口;
所述负载均衡引擎,用于根据所接收的报文进行内部负载均衡,将所接收到的报文根据内部负载均衡的结果发送到所述发包模块中相应的出端口。
如上可见,在本发明的技术方案中,由于是先通过各台负载均衡单机的链路口从外部接收报文,然后各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;接着,再根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理;最后,各个负载均衡单机再根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口,因此即使是在进行大规模链路(例如,多于200条链路接入)的同源同宿负载均衡时,也可以在进行负载均衡的同时,使得所输出的报文都符合同源同宿规则,即同一个会话的报文,只会从同一个出端口发出。而且,在上述方法中,无需对源IP地址和目的IP地址的所有字节(8字节,64位数据)进行存储、建表、查询等操作,而只需关注源IP地址和目的IP地址中预先设置的n位,从而可以大大减少存储空间;另外,在上述方法中,无需进行HASH散列存储,可以大大减少计算工作量,降低对系统资源的占用,提高系统的整体性能;此外,上述方法在IPV4和IPV6场合都通用,而无需进行更改。
附图说明
图1为本发明实施例中的负载均衡方法的流程示意图。
图2为本发明实施例中的负载均衡系统的整体结构示意图。
图3为本发明实施例中的负载均衡单机的结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本实施例提供了一种负载均衡方法和系统。
图1为本发明实施例中的负载均衡方法的流程示意图。如图1所示,本发明实施例中的负载均衡方法主要包括如下所述的步骤:
步骤11,通过各台负载均衡单机的链路口从外部接收报文。
在本发明的技术方案中,将设置多台负载均衡单机对报文进行处理。例如,较佳的,在本发明的一个具体实施例中,可以设置3台负载均衡单机:单机A、单机B和单机C。
在本发明的技术方案中,各台负载均衡单机上均设置有多个链路接入端口(简称链路口,下同)、互联端口(简称互联口,下同)和出端口。其中,链路口是用于从外部接收报文,而互联口是用于各台负载均衡单机之间传输报文,出端口则是用于向外部输出报文。因此可知,各台负载均衡单机可以通过互联口相互连接。
另外,为了便于描述,在本发明的技术方案中个,可以设in_port表示一台负载均衡单机上的链路口的数量,设ca_port表示一台负载均衡单机上的互联口的数量,设dpi_port表示一台负载均衡单机上的出端口的数量。另外,在本发明的技术方案中,每两台负载均衡单机之间均通过互联口连接,因此,ca_port是一台负载均衡单机上的所有互联口的总和。
因此,在本步骤中,可以通过各台负载均衡单机的链路口从外部接收报文。
由于各台负载均衡单机都可以通过链路口从外部接收报文,而报文将从哪台负载均衡单机的哪个链路口进入一般来说并没有任何规律,同一个会话的上行报文和下行报文会随机的从任意一台负载均衡单机的链路口进入,因此如果不对从外部所接收的报文进行任何处理即进行传输,则从各台负载均衡单机的出端口输出的报文一般都不符合同源同宿规则。所述同源同宿规则为:同一个会话的报文,只会从同一个出端口发出。
所以,在本发明的技术方案中,需要通过后续的操作对所接收的报文进行处理,从而使得最终输出的报文符合同源同宿规则。
步骤12,各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;
其中,所述预设的流分类策略包括:
预先在源IP地址和目的IP地址中的预设位置对应地截取n位(例如,从源IP地址的倒数第2位以及目的IP地址的倒数第2位开始,截取2位);
对所截取的n位源IP地址、目的IP地址的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则;
根据报文的源IP地址和目的IP地址中的预设位置的n位的实际取值,确定所对应的排列组合结果,并根据所确定的排列组合结果确定该报文所符合的匹配规则组合;其中,所述匹配规则组合中包括至少一种匹配规则。
在本发明的技术方案中,可以根据实际应用的需要,预先设置上述的源IP地址和目的IP地址中的预设位置,即可以预先确定在源IP地址和目的IP地址中哪个位置开始进行截取操作。而且,还可以根据实际应用的需要,预先设置上述n的取值。因此,所截取的n位源IP地址、目的IP地址的所有可能的取值一共有22n种排列组合结果,所对应的匹配规则也有22n种。
例如,较佳的,在本发明的技术方案中,所述n的取值范围可以为:1~32,即n为小于或等于32的正整数。较佳的,在实际应用中,为了节省资源,所述n的取值可以小于或等于4。
例如,在本发明的一个具体实施例中,所述n的取值可以为:2;并且,所述源IP地址和目的IP地址中的预设位置的n位为:源IP地址和目的IP地址中的最后2位。
此时,根据本发明中预设的流分类策略可知,可预先截取源IP地址和目的IP地址中的最后2位,然后对所截取的源IP地址和目的IP地址的最后2位的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则,从而可以得到如下所示的表1:
表1
根据上述表1可知,在上述较佳实施例中,所截取的源IP地址和目的IP地址的最后2位的所有可能的取值一共有22n=16种可能,即16种排列组合结果,因此可以得到如上述表1中所示的16种匹配规则,每一种排列组合结果都对应一种匹配规则。
因此,在使用上述的流分类策略对报文进行流分类时,在接收到报文之后,即可根据所接收到的报文的源IP地址和目的IP地址的最后2位的实际取值确认该报文符合哪一种匹配规则组合。例如,如果所接收到的报文的源IP地址和目的IP地址的最后2位的实际取值分别为01和00,则该报文符合上述的编号为5的匹配规则(简称为匹配规则5);如果所接收到的报文的源IP地址和目的IP地址的最后2位的实际取值分别为10和10,则该报文符合上述的编号为11的匹配规则(简称为匹配规则11);……;以此类推,即可确定各个所接收到的报文所符合的匹配规则组合。
步骤13,根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理。
在本发明的技术方案中,上述的22n种匹配规则中只有X种匹配规则组合是符合同源同宿规则的(一种匹配规则组合中可以只包括一种匹配规则,也可以包括两种匹配规则);其中,所述X可以通过如下所述公式得到:
例如,当所述n的取值为2时,一共有16种匹配规则,但只有符合如下所述的10种匹配规则组合的报文是符合同源同宿规则的:
1、匹配规则组合1:包括匹配规则1;
即符合匹配规则1的报文符合同源同宿规则;
2、匹配规则组合2:包括匹配规则6;
即符合匹配规则6的报文符合同源同宿规则;
3、匹配规则组合3:包括匹配规则11;
即符合匹配规则11的报文符合同源同宿规则;
4、匹配规则组合4:包括匹配规则16;
即符合匹配规则16的报文符合同源同宿规则;
5、匹配规则组合5:包括匹配规则2和匹配规则5;
即符合匹配规则2或匹配规则5的报文符合同源同宿规则;(本匹配规则组合是考虑到报文可以分为上行报文和下行报文,符合同源同宿规则的上行报文和下行报文,其源IP地址和目的IP地址可能会互换,下同。)
6、匹配规则组合6:包括匹配规则3和匹配规则9;
即符合匹配规则3或匹配规则9的报文符合同源同宿规则;
7、匹配规则组合7:包括匹配规则4和匹配规则13;
即符合匹配规则4或匹配规则13的报文符合同源同宿规则;
8、匹配规则组合8:包括匹配规则7和匹配规则10;
即符合匹配规则7或匹配规则10的报文符合同源同宿规则;
9、匹配规则组合9:包括匹配规则8和匹配规则14;
即符合匹配规则8或匹配规则14的报文符合同源同宿规则;
10、匹配规则组合10:包括匹配规则12和匹配规则15;
即符合匹配规则12或匹配规则15的报文符合同源同宿规则。
因此,较佳的,在本发明的技术方案中,可以预先设置一个对应关系:匹配规则组合与各负载均衡单机的对应关系,使得每台负载均衡单机对应一个或多个匹配规则组合;然后,各台负载均衡单机在上述步骤12中确定所接收到的报文所符合的匹配规则组合之后,即可在本步骤中将所接收到的报文分配给对应的负载均衡单机进行后续的处理。
更进一步的,在本发明的技术方案中,可以根据实际应用情况预先设置上述的对应关系。例如,在设置上述对应关系时,可以根据报文的实际流量,将符合同源同宿规则的匹配规则组合平均分配给各台负载均衡单机进行后续的处理,从而可以尽量保证各台负载均衡单机之间的负载均衡。
例如,较佳的,在本发明的一个具体实施例中,假设一共设置了3台负载均衡单机:单机A、单机B和单机C,并假设源IP地址和目的IP地址中的预设位置的n位为源IP地址和目的IP地址中的最后2位。因此,具有上述的16种匹配规则,且具有上述的10种符合同源同宿规则的匹配规则组合。
此时,可以设定上述的单机A对应上述的4条匹配规则组合(例如,匹配规则组合1~4),单机B对应上述的3条匹配规则组合(例如,匹配规则组合5~7),单机C对应上述的3条匹配规则组合(例如,匹配规则组合8~10)。当然,也可以是其它的对应关系,在此不再一一赘述。
再例如,较佳的,在本发明的另一个具体实施例中,假设一共设置了5台负载均衡单机:单机A、单机B、单机C、单机D和单机E,并假设源IP地址和目的IP地址中的预设位置的n位为源IP地址和目的IP地址中的最后2位。因此,具有上述的16种匹配规则,且具有上述的10种符合同源同宿规则的匹配规则组合。
此时,可以设定每台负载均衡单机都对应2条匹配规则组合,例如,可以设定上述的单机A对应上述的匹配规则组合1~2,单机B对应上述的匹配规则组合3~4,单机C对应上述的匹配规则组合5~6,单机D对应上述的匹配规则组合7~8,单机E对应上述的匹配规则组合9~10。当然,也可以是其它的对应关系,在此不再一一赘述。
由于在本发明的技术方案中,各负载均衡单机上都设置有互联端口,因此,较佳的,在本发明的一个具体实施例中,所述步骤13包括:
当一个负载均衡单机接收到一个报文时,判断该报文所符合的匹配规则组合是否与该负载均衡单机对应;如果是,则由该负载均衡单机对该报文进行后续的处理;否则,该负载均衡单机将该报文通过互联端口发送到与该报文所符合的匹配规则组合对应的负载均衡单机进行后续的处理。
步骤14,各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口。
在本发明的技术方案中,每个负载均衡单机中都预先设置有多个出端口,因此,在本步骤中,各个负载均衡单机将根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口。
在本发明的技术方案中,各个负载均衡单机可以使用多种方式进行内部负载均衡。以下将以其中的一种具体实现方式为例,对本发明的技术方案进行更详细的介绍。
例如,较佳的,在本发明的技术方案中,所述负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口包括:
步骤141,从所需处理的报文的源IP地址和目的IP地址中的预设第二位置对应地选取x位(例如,从源IP地址的倒数第3位以及目的IP地址的倒数第3位开始,选取3位);
步骤142,对所选取的x位源IP地址和目的IP地址进行异或计算,然后进行对dpi_port取模计算;该取模计算的结果必然是取值范围为1~dpi_port的正整数;其中,所述dpi_port为该负载均衡单机的出端口的数量。在本发明的较佳实施例中,可以根据实际应用需要,预先设置dpi_port的取值。
步骤143,将所需处理的报文发送到与取模计算的结果相应的出端口。
例如,在本发明的较佳实施例中,可以在所需处理的报文的源IP地址中选取x位,形成二进制数字串,用s[1…x]表示;
然后,再在所需处理的报文的目的IP地址中的对应位置同样选取x位,形成二进制数字串,用d[1…x]表示;
接着,对所选取的x位源IP地址和目的IP地址进行异或计算,然后对dpi_port取模,取模计算的结果为1到dpi_port中的一个正整数,例如,可以用p表示,1≤p≤dpi_port。p的取值即为出端口的编号,即第p个出端口。
较佳的,在本发明的技术方案中,所述p的取值可以通过如下所述的公式计算得到:
p=(s[1...x]^d[1...x])%dpi_port (2)
因此,负载均衡单机可以将所需处理的报文发送到出端口p(即第p个出端口)。
在本发明的技术方案中,可以根据实际应用的需要,预先设置上述的源IP地址和目的IP地址中的预设位置,即可以预先确定在源IP地址和目的IP地址中哪个位置开始进行选取。而且,还可以根据实际应用的需要,预先设置上述x的取值。
例如,较佳的,在本发明的技术方案中,所述x的取值范围可以为:1~32。较佳的,在实际应用中,为了节省资源,所述x的取值可以小于或等于6。
根据上述的步骤11~14可知,在本发明的技术方案中,是先通过各台负载均衡单机的链路口从外部接收报文,然后各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;接着,再根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理;最后,各个负载均衡单机再根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口,因此即使是在进行大规模链路(例如,多于200条链路接入)的同源同宿负载均衡时,也可以在进行负载均衡的同时,使得所输出的报文都符合同源同宿规则,即同一个会话的报文,只会从同一个出端口发出。而且,在上述方法中,无需对源IP地址和目的IP地址的所有字节(8字节,64位数据)进行存储、建表、查询等操作,而只需关注源IP地址和目的IP地址中预先设置的n位,从而可以大大减少存储空间;另外,在上述方法中,无需进行HASH散列存储,可以大大减少计算工作量,降低对系统资源的占用,提高系统的整体性能;此外,上述方法在IPV4和IPV6场合都通用,而无需进行更改。
此外,根据本发明所提供的上述负载均衡方法,本发明还提供了相应的负载均衡系统。
图2为本发明实施例中的负载均衡系统的整体结构示意图。如图2所示,本发明实施例中的负载均衡系统主要包括:多台负载均衡单机20;例如,在图2所示的一个具体实施例中,所述负载均衡系统中可以设置3台负载均衡单机:负载均衡单机20A、负载均衡单机20B和负载均衡单机20C。当然,在本发明的技术方案中,可以根据实际应用的需要设置多台负载均衡单机,而并不仅限于上述举例中的3台负载均衡单机,在此不再赘述。
其中,各台负载均衡单机上均设置有多个链路口211、互联端口212和出端口243;各台负载均衡单机通过互联端口211相互连接;
各台负载均衡单机通过链路口211从外部接收报文;
各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;并根据预设的匹配规则组合与各负载均衡单机的对应关系,将所接收到的报文分配给对应的负载均衡单机进行处理;
各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口243;
其中,所述预设的流分类策略包括:
预先在源IP地址和目的IP地址中的预设位置对应地截取n位;其中,所述n为小于或等于32的正整数;
对所截取的n位源IP地址、目的IP地址的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则;
根据报文的源IP地址和目的IP地址中的预设位置的n位的实际取值,确定所对应的排列组合结果,并根据所确定的排列组合结果确定该报文所符合的匹配规则组合;其中,所述匹配规则组合中包括至少一种匹配规则。
图3为本发明实施例中的负载均衡单机的结构示意图。如图3所示,较佳的,在本发明的一个具体实施例中,所述负载均衡单机20中包括:收发单元21、流分类单元22、重定向单元23和多个负载均衡单元24;
所述收发单元21中设置有多个链路口211和多个互联端口212;
所述收发单元21,用于通过链路口211从外部接收报文,通过互联端口212从其它负载均衡单机接收需处理的报文并通过互联端口212向其它负载均衡单机发送需处理的报文;还用于将接收到的报文发生给所述流分类单元22;
所述流分类单元22,用于根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;将所接收到的报文以及该报文所符合的匹配规则组合发生给所述重定向单元23;
所述重定向单元23,用于根据预设的匹配规则组合与各负载均衡单机的对应关系,将所接收到的报文发送给各个负载均衡单元24或者收发单元21;
所述各个负载均衡单元24,用于根据所接收的报文进行内部负载均衡,将所接收到的报文根据内部负载均衡的结果发送到相应的出端口。
较佳的,在本发明的技术方案中,所述负载均衡单元24包括:发包模块242和负载均衡引擎241;
所述发包模块242中设置有dpi_port个出端口243;
所述负载均衡引擎241,用于根据所接收的报文进行内部负载均衡,将所接收到的报文根据内部负载均衡的结果发送到所述发包模块中相应的出端口243。
综上可知,在本发明的技术方案中,由于先通过各台负载均衡单机的链路口从外部接收报文,然后各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;接着,再根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理;最后,各个负载均衡单机再根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口,因此即使是在进行大规模链路(例如,多于200条链路接入)的同源同宿负载均衡时,也可以在进行负载均衡的同时,使得所输出的报文都符合同源同宿规则,即同一个会话的报文,只会从同一个出端口发出。而且,在上述方法中,无需对源IP地址和目的IP地址的所有字节(8字节,64位数据)进行存储、建表、查询等操作,而只需关注源IP地址和目的IP地址中预先设置的n位,从而可以大大减少存储空间;另外,在上述方法中,无需进行HASH散列存储,可以大大减少计算工作量,降低对系统资源的占用,提高系统的整体性能;此外,上述方法在IPV4和IPV6场合都通用,而无需进行更改。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种负载均衡方法,其特征在于,该方法包括:
通过各台负载均衡单机的链路口从外部接收报文;
各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;
根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理;
各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口;
其中,所述预设的流分类策略包括:
预先在源IP地址和目的IP地址中的预设位置对应地截取n位;其中,所述n为小于或等于32的正整数;
对所截取的n位源IP地址、目的IP地址的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则;根据得到的22n种匹配规则,设置X种符合同源同宿规则的匹配规则组合;
根据报文的源IP地址和目的IP地址中的预设位置的n位的实际取值,确定所对应的排列组合结果,并根据所确定的排列组合结果确定该报文所符合的匹配规则组合;其中,所述匹配规则组合中包括至少一种匹配规则。
2.根据权利要求1所述的方法,其特征在于,所述根据预设的匹配规则组合与各负载均衡单机的对应关系,各负载均衡单机将所接收到的报文分配给对应的负载均衡单机进行处理包括:
当一个负载均衡单机接收到一个报文时,判断该报文所符合的匹配规则组合是否与该负载均衡单机对应;如果是,则由该负载均衡单机对该报文进行后续的处理;否则,该负载均衡单机将该报文通过互联端口发送到与该报文所符合的匹配规则组合对应的负载均衡单机进行后续的处理。
3.根据权利要求2所述的方法,其特征在于:
所述n的取值小于或等于4。
4.根据权利要求3所述的方法,其特征在于,所述源IP地址和目的IP地址中的预设位置的n位为:
源IP地址和目的IP地址中的最后2位。
5.根据权利要求4所述的方法,其特征在于,所述X通过如下公式得到:
6.根据权利要求1所述的方法,其特征在于,所述各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口包括:
从所需处理的报文的源IP地址和目的IP地址中的预设第二位置对应地选取x位;其中,所述x为小于或等于32的正整数;
对所选取的x位源IP地址和目的IP地址进行异或计算,然后进行对dpi_port取模计算;所述dpi_port为该负载均衡单机的出端口的数量;
将所需处理的报文发送到与取模计算的结果相应的出端口。
7.根据权利要求6所述的方法,其特征在于:
所述x的取值小于或等于6。
8.一种负载均衡系统,其特征在于,该系统包括:多台负载均衡单机;
其中,各台负载均衡单机上均设置有多个链路口、互联端口和出端口;各台负载均衡单机通过互联端口相互连接;
各台负载均衡单机通过链路口从外部接收报文;
各负载均衡单机根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;并根据预设的匹配规则组合与各负载均衡单机的对应关系,将所接收到的报文分配给对应的负载均衡单机进行处理;
各个负载均衡单机根据所需处理的报文进行内部负载均衡,将所需处理的报文根据内部负载均衡的结果发送到相应的出端口;
其中,所述预设的流分类策略包括:
预先在源IP地址和目的IP地址中的预设位置对应地截取n位;其中,所述n为小于或等于32的正整数;
对所截取的n位源IP地址、目的IP地址的所有可能的取值进行排列组合,并将每一种排列组合结果作为一种匹配规则;根据得到的22n种匹配规则,设置X种符合同源同宿规则的匹配规则组合;
根据报文的源IP地址和目的IP地址中的预设位置的n位的实际取值,确定所对应的排列组合结果,并根据所确定的排列组合结果确定该报文所符合的匹配规则组合;其中,所述匹配规则组合中包括至少一种匹配规则。
9.根据权利要求8所述的系统,其特征在于,所述负载均衡单机中包括:收发单元、流分类单元、重定向单元和多个负载均衡单元;
所述收发单元中设置有多个链路口和多个互联端口;
所述收发单元,用于通过链路口从外部接收报文,通过互联端口从其它负载均衡单机接收需处理的报文并通过互联端口向其它负载均衡单机发送需处理的报文;还用于将接收到的报文发生给所述流分类单元;
所述流分类单元,用于根据预设的流分类策略对所接收的报文进行流分类,确定所接收到的报文所符合的匹配规则组合;将所接收到的报文以及该报文所符合的匹配规则组合发生给所述重定向单元;
所述重定向单元,用于根据预设的匹配规则组合与各负载均衡单机的对应关系,将所接收到的报文发送给各个负载均衡单元或者收发单元;
所述各个负载均衡单元,用于根据所接收的报文进行内部负载均衡,将所接收到的报文根据内部负载均衡的结果发送到相应的出端口。
10.根据权利要求9所述的系统,其特征在于,所述负载均衡单元包括:发包模块和负载均衡引擎;
所述发包模块中设置有dpi_port个出端口;
所述负载均衡引擎,用于根据所接收的报文进行内部负载均衡,将所接收到的报文根据内部负载均衡的结果发送到所述发包模块中相应的出端口。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610196969.XA CN105763617B (zh) | 2016-03-31 | 2016-03-31 | 一种负载均衡方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610196969.XA CN105763617B (zh) | 2016-03-31 | 2016-03-31 | 一种负载均衡方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105763617A CN105763617A (zh) | 2016-07-13 |
CN105763617B true CN105763617B (zh) | 2019-08-02 |
Family
ID=56346893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610196969.XA Active CN105763617B (zh) | 2016-03-31 | 2016-03-31 | 一种负载均衡方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105763617B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107948088B (zh) * | 2018-01-05 | 2021-10-01 | 宝牧科技(天津)有限公司 | 一种网络应用层负载均衡的方法 |
CN108768878A (zh) * | 2018-06-06 | 2018-11-06 | 北京奇艺世纪科技有限公司 | 一种负载均衡系统、方法、装置及负载均衡设备 |
CN110912832A (zh) * | 2019-10-15 | 2020-03-24 | 深圳市恒扬数据股份有限公司 | 流量负载均衡的处理方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387219A (zh) * | 2011-12-13 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种多网卡负载均衡系统和方法 |
CN102497322A (zh) * | 2011-12-19 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种基于分流网卡和多核cpu实现的高速包过滤设备和方法 |
CN102724119A (zh) * | 2012-06-08 | 2012-10-10 | 南京贝伦思网络科技有限公司 | 一种网络负载均衡设备或分流设备规则同步方法 |
CN102904729A (zh) * | 2012-10-26 | 2013-01-30 | 曙光信息产业(北京)有限公司 | 根据协议、端口分流支持多应用的智能加速网卡 |
CN102932270A (zh) * | 2012-11-27 | 2013-02-13 | 无锡城市云计算中心有限公司 | 支持网络安全业务的负载均衡方法和设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003281109A (ja) * | 2002-03-26 | 2003-10-03 | Hitachi Ltd | 負荷分散方法 |
-
2016
- 2016-03-31 CN CN201610196969.XA patent/CN105763617B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387219A (zh) * | 2011-12-13 | 2012-03-21 | 曙光信息产业(北京)有限公司 | 一种多网卡负载均衡系统和方法 |
CN102497322A (zh) * | 2011-12-19 | 2012-06-13 | 曙光信息产业(北京)有限公司 | 一种基于分流网卡和多核cpu实现的高速包过滤设备和方法 |
CN102724119A (zh) * | 2012-06-08 | 2012-10-10 | 南京贝伦思网络科技有限公司 | 一种网络负载均衡设备或分流设备规则同步方法 |
CN102904729A (zh) * | 2012-10-26 | 2013-01-30 | 曙光信息产业(北京)有限公司 | 根据协议、端口分流支持多应用的智能加速网卡 |
CN102932270A (zh) * | 2012-11-27 | 2013-02-13 | 无锡城市云计算中心有限公司 | 支持网络安全业务的负载均衡方法和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN105763617A (zh) | 2016-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101217464B (zh) | 一种udp数据包的传输方法 | |
CN101217493B (zh) | 一种tcp数据包的传输方法 | |
CN101098305B (zh) | 一种宽带网络接入及流量管理调度系统 | |
CN101610296B (zh) | 一种网络地址转换出接口均衡方法和装置 | |
CN102497322A (zh) | 一种基于分流网卡和多核cpu实现的高速包过滤设备和方法 | |
CN105763617B (zh) | 一种负载均衡方法和系统 | |
CN112119620B (zh) | 用于在节点的网络中传播数据分组的系统和方法 | |
CN102656850A (zh) | 用于处理多个数据的方法和用于交换通信分组的交换设备 | |
CN107135278A (zh) | 一种高效的负载均衡器及负载均衡系统 | |
CN102970142B (zh) | 一种vpn设备在多加密卡环境下并发加解密的方法及系统 | |
CN105162883A (zh) | 网络负载均衡处理系统及其方法和装置 | |
CN106713182A (zh) | 一种处理流表的方法及装置 | |
CN110011930A (zh) | 一种区块链中多联盟链的负载均衡方法及装置 | |
WO2016180188A1 (zh) | 分发建链方法、装置和系统 | |
CN102904825A (zh) | 一种基于Hash的报文传输方法和设备 | |
CN110992177A (zh) | 基于链外通道路由评价机制的区块链通量提高方法及系统 | |
CN108259372A (zh) | 一种多链路负载均衡系统和方法 | |
KR101841026B1 (ko) | 최적 경로 설정을 위한 서비스 기능 체이닝 네트워크 시스템 | |
CN109905863B (zh) | 基于区块链存储的分布式协作通信的中继接入方法 | |
US9491098B1 (en) | Transparent network multipath utilization through encapsulation | |
CN114945032A (zh) | 电力物联网终端数据接入系统、方法、装置、设备及介质 | |
Aloqaily et al. | A generalized framework for quality of experience (QoE)-based provisioning in a vehicular cloud | |
WO2017097092A1 (zh) | 缓存集群服务的处理方法及系统 | |
CN105471770B (zh) | 一种基于多核处理器的报文处理方法及装置 | |
EP4199427A1 (en) | Ai-supported network telemetry using data processing unit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |