一种链路负载均衡方法和装置制造方法

文档序号:7817743阅读:205来源:国知局
一种链路负载均衡方法和装置制造方法
【专利摘要】本发明提供了一种链路负载均衡方法,该方法包括:LB检测到各DNS服务器的链路的负载;该LB接收到用户终端发送的DNS请求时,选择当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析,并将接收到的DNS请求发送给该DNS服务器;该LB接收到该DNS服务器发送的DNS响应时,将该DNS响应发送给对应用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。基于同样的发明构思,本申请还提出一种装置,能够避免各DNS服务器所在运营商出口链路发生拥塞。
【专利说明】—种链路负载均衡方法和装置

【技术领域】
[0001]本发明涉及通信【技术领域】,特别涉及一种链路负载均衡方法和装置。

【背景技术】
[0002]在当前的企业或者校园网络中,由于带宽需求不断增加,每隔一段时间,就会有带宽扩容的需求,就形成了很多企业的网络出口出现了多个运营商,多条出口链路的组网出现,为了更好利用链路的带宽,绝大多数的企业会选择负载均衡器(Load Balancer, LB)来实现链路的负载均衡,
[0003]在多条出口链路带宽不均衡,或者用户访问流量的不均衡,经常会导致某个出口链路发生拥塞。当前的LB主要使用下面方法来处理某个出口链路拥塞的情况:
[0004]当某个运营商出口发生拥塞时,保持当前链路上所有出口的转发会话的转发;
[0005]对于新建的出口会话,不再匹配运营商地址表,强制送到其他运营商的出口做转发处理。
[0006]这样的处理存在这样的问题:用户访问的是存在于运营商(A)的服务器,而流量被送到了运营商(B)的网络,用户的访问流量会在运营商(B)网络中绕一大圈,经过互联中心进入运营商(A)的网络,访问目的服务器,由于运营商互联的出口带宽有限,相比直接进入运营商(A)的网络,会造成用户访问网络体验变得很差。
[0007]为了解决上述问题,现有实现中在给用户动态主机配置协议(Dynamic HostConfigurat1n Protocol,DHCP)分配IP地址时,按照带宽的比例下发不同的DNS服务器的IP地址,以达到统计均衡的目的,尽量避免拥塞发生。
[0008]这种解决方案只能保证用户终端数量在出口链路上的均衡,当某个用户终端存在大流量的视频等业务时,在出口链路上不能做到流量的均衡,还会存在拥塞导致的强制流量调度的问题。


【发明内容】

[0009]有鉴于此,本申请提供一种链路负载均衡方法和装置,以解决各DNS服务器所在运营商的出口链路不均衡引起的用户终端访问变慢的问题。
[0010]为解决上述技术问题,本申请的技术方案是这样实现的:
[0011]一种链路负载均衡方法,该方法包括:
[0012]负载均衡器LB检测到各域名系统DNS服务器的链路的负载,其中,通过LB对用户终端进行DNS代理;
[0013]该LB接收到用户终端发送的DNS请求时,选择当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析,并将接收到的DNS请求发送给该DNS服务器;
[0014]该LB接收到该DNS服务器发送的DNS响应时,将该DNS响应发送给对应用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。
[0015]一种链路负载均衡装置,通过该装置对用户终端进行域名系统DNS代理,该装置包括:检测单元、接收单元、处理单元和发送单元;
[0016]所述检测单元,用于检测检测本装置到各域名系统DNS服务器的链路的负载;
[0017]所述接收单元,用于接收用户终端发送的DNS请求;接收DNS服务器发送的DNS响应;
[0018]所述处理单元,用于当所述接收单元接收到DNS请求时,选择所述检测单元当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析;
[0019]所述发送单元,用于将所述接收单元接收到的DNS请求发送给所述处理单元选择的DNS服务器;当所述接收单元接收到DNS响应时,将该DNS响应发送给对应用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。
[0020]由上面的技术方案可知,本申请中使用出口 LB作为DNS代理,通过对到各DNS服务器的链路的负载进行检测,在接收到任一用户终端发送的DNS请求时,选择负载最轻的链路对应的DNS服务器为当前发送DNS请求的用户终端进行DNS解析,从而能够避免各DNS服务器所在运营商出口链路发生拥塞。

【专利附图】

【附图说明】
[0021]图1为本申请实施例中负载均衡方法流程示意图;
[0022]图2为本申请实施例中多运营商网络组网示意图;
[0023]图3为本申请实施例中应用于上述技术的装置结构示意图。

【具体实施方式】
[0024]为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并据实施例,对本发明的技术方案进行详细说明。
[0025]参见图1,图1为本申请实施例中负载均衡方法流程示意图。具体步骤包括:
[0026]步骤101, LB检测到各域名系统(Domain Name System, DNS)服务器的链路的负载。
[0027]本申请实施例中的LB作为所有用户终端的DNS代理,LB上配置到多个运营商的DNS服务器的链路,以及各链路能够提供的带宽。具体实现时,可以通过端口号标识到各DNS服务器的链路。
[0028]LB可以检测到各DNS服务器的链路当前流量占用的带宽,由于已配置各链路初始能够提供的带宽,从而可以获得各链路的负载情况,如带宽占用率。
[0029]参见图2,图2为本申请实施例中多运营商网络组网示意图。图2中LB作为用户终端1、用户终端2和用户终端3的DNS代理。LB上配置链路LI的带宽为1000M,链路L2的带宽为2000M,链路L3的带宽为3000M。链路LI对应运营商I中的DNS服务器1,出口为接口 I ;链路L2对应运营商2中的DNS服务器2,出口为接口 2 ;链路L3对应运营商3中的DNS服务器3,出口为接口 3。
[0030]LB检测各链路的负载,即检测链路L1、L2和L3上流量占用的带宽。在具体实现时,LB可以周期检测,也可以实时检测各链路上流量占用的带宽。
[0031]步骤102,该LB接收到用户终端发送的DNS请求时,选择当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析,并将接收到的DNS请求发送给该DNS服务器。
[0032]本步骤中负载最轻的链路的选择方法可以有多种实现方式,本申请给出如下两种实现方式,但不限于如下两种实现方式:
[0033]第一种,该LB选择带宽占用率最小的链路作为负载最轻的链路;
[0034]当到各DNS服务器的链路的带宽占用率相同时,选择带宽值最大的链路作为负载最轻的链路;
[0035]当到各DNS服务器的链路的带宽占用率相同,且带宽值相同时,选择对应DNS服务器编号最小的链路作为负载最轻的链路;或,随机选择一条链路作为负载最轻的链路。
[0036]假设当前检测到的,或者当前周期检测到的L1、L2和L3上流量占用的带宽分别为600M、1000M和1200M,则各链路的带宽占用率分别为600M/1000M = 60% U000M/2000M =50%和1200M/3000M = 40% ;则负载最轻的链路为链路L3,链路L3对应的DNS服务器为DNS服务器3。
[0037]假设当前各链路带宽的占用率相同时,则选择链路带宽值最大的链路L3作为负载最轻的链路。
[0038]在应用的过程中,在LB对带宽占用率进行计算的时候,可以设置以10%为单位进行跳变,例如当计算出带宽占用率为16%时,则记为20%,这样一来,便可以在几条链路带宽占用率相近的情况下,选择带宽较大的链路进行DNS请求,从而进一步避免拥堵情况的发生。
[0039]第二种,该LB确定是否存在带宽占用率与最小带宽占用率差值小于预设阈值的链路,如果是,在带宽占用率最小的链路,以及带宽占用率与最小带宽占用率差值小于预设阈值的链路中,选择带宽值最大的链路作为负载最轻的链路;否则,选择带宽占用率最小的链路作为负载最轻的链路。
[0040]假设预设阈值为5%,当前检测到的,或者当前周期检测到的L1、L2和L3上流量占用的带宽分别为600M、1000M和1380M,则各链路的带宽占用率分别为600M/1000M = 60%,800M/2000M = 40%和1290M/3000M = 43% ;则确定各链路的带宽占用率与最小带宽占用率做差值,L2的带宽占用率最小40%,LI与L3的带宽占用率的差值为3%,L2与L3的带宽占用率的差值为20%,由预设阈值5%可知,L2与L3的带宽占用率的差值3%小于预设阈值,因此,选择L2和L3中带宽值大的L3,作为负载最轻的链路。
[0041]由于LB作为各用户终端的DNS代理,因此,LB将接收到的DNS请求发送给该DNS服务器时,建立DNS代理表项,用于在接收到DNS服务器发送的DNS响应时,转发给发送与该DNS响应对应的DNS请求的用户终端。
[0042]在具体实现时,DNS代理表项的内容可以根据实际应用具体配置,能够将响应报文发送给对应的用户终端即可。本申请实施例中给出一种DNS代理表项实现方式,但不限于此实现方式。
[0043]DNS代理表项包括:用户终端IP地址、交易标识(transact1n ID)标识、本LB上配置的DNS代理公网地址。其中,transact1n ID为DNS报文中的标识,用于标识一对DNS请求和响应。
[0044]如果需要替换DNS请求中携带的端口号,该DNS代理表项还应该包括用户终端IP地址对应的TCP/UDP端口,本LB上配置的DNS代理公网地址对应的TCP/UDP端口,可以由LB按一定规则为该DNS请求分配DNS代理公网地址和对应的TCP/UDP端口。
[0045]LB将接收到的DNS请求的源IP地址替换为本LB上配置的DNS代理公网地址,将目的IP地址替换为选择的DNS服务器的IP地址,并通过到选择的DNS服务器对应的出口发送该处理后的DNS请求。
[0046]假设LB将用户终端I发送的DNS请求,以及发送给DNS服务器的DNS请求,生成的DNS代理表项包含的内容为transact1n ID1,用户终端I的IP地址1.1.1.1+TCP/UDP端口号1,分配的DNS代理公网地址168.1.1.1+TCP/UDP端口号2。
[0047]步骤103,该LB接收到该DNS服务器发送的DNS响应时,将该DNS响应发送给所述用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。
[0048]本步骤中LB接收到该DNS服务器发送的DNS响应时,根据DNS响应携带的传输标识查找到对应的DNS代理表项,并根据查找到的DNS代理表项发送给对应用户终端。
[0049]仍以图2中LB接收到DNS服务器3发送的DNS响应为例,LB根据该DNS响应中携带的transact1n IDl,目的IP地址168.1.1.1和TCP/UDP端口号2查找到对应的DNS代理表项内容处理该DNS请求并发送给用户终端I。
[0050]该LB将该DNS请求的目的IP地址替换为该DNS代理表项中的用户终端的IP地址,源IP地址替换为本LB配置的DNS代理私网地址,并替换对应端口相关内容。
[0051]下面详细描述用户终端根据DNS服务器响应的公网地址,与公网进行流量交互的过程:
[0052]该LB接收到用户终端发送的流量时,根据本地的网络地址转换(Network AddressTranslat1n, NAT)会话表对该流量进行NAT处理,并通过接收到的流量的目的IP地址在运营商地址表中对应的出口发送进行NAT处理后的流量。
[0053]其中的运营商地址表的实现同现有实现,运营商地址表包含的内容:运营商IP网段,出口号。
[0054]该LB接收到公网发送的流量时,根据本地的NAT会话表对该流量进行NAT处理,并发送到局域网中。
[0055]本申请实施例中的NAT处理同现有实现,这里不再详细描述。
[0056]基于同样的发明构思,本申请还提出一种链路负载均衡装置。通过该装置对用户终端进行域名系统DNS代理。参见图3,图3为本申请实施例中应用于上述技术的装置结构示意图。该装置包括:检测单元301、接收单元302、处理单元303和发送单元304 ;
[0057]检测单元301,用于检测检测本装置到各DNS服务器的链路的负载;
[0058]接收单元302,用于接收用户终端发送的DNS请求;接收DNS服务器发送的DNS响应;
[0059]处理单元303,用于当接收单元302接收到DNS请求时,选择检测单元301当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析;
[0060]发送单元304,用于将接收单元302接收到的DNS请求发送给处理单元303选择的DNS服务器;当接收单元302接收到DNS响应时,将该DNS响应发送给对应用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。
[0061]较佳地,
[0062]处理单元303,具体用于选择负载最轻的链路时,选择带宽占用率最小的链路作为负载最轻的链路;当到各DNS服务器的链路的带宽占用率相同时,选择带宽值最大的链路作为负载最轻的链路;当到各DNS服务器的链路的带宽占用率相同,且带宽值相同时,选择对应DNS服务器编号最小的链路作为负载最轻的链路;或,随机选择一条链路作为负载最轻的链路。
[0063]较佳地,
[0064]处理单元303,具体用于选择负载最轻的链路时,确定是否存在带宽占用率与最小带宽占用率差值小于预设阈值的链路,如果是,在带宽占用率最小的链路,以及带宽占用率与最小带宽占用率差值小于预设阈值的链路中,选择带宽值最大的链路作为负载最轻的链路;否则,选择带宽占用率最小的链路作为负载最轻的链路。
[0065]较佳地,
[0066]接收单元302,进一步用于接收用户终端发送的流量;接收公网发送的流量;
[0067]处理单元303,用于当接收单元302接收到用户终端发送的流量时,根据接收到的流量的目的IP地址在运营商地址表中匹配出口 ;根据本地的NAT会话表对该流量进行NAT处理;当接收单元302接收到公网发送的流量时,根据本地的NAT会话表对该流量进行NAT处理;
[0068]发送单元304,进一步用于通过处理单元303匹配到的出口发送NAT处理后的流量;将处理单元303进行NAT处理后的公网发送的流量发送到局域网中。
[0069]较佳地,
[0070]处理单元303,进一步用于当发送单元304将DNS请求发送给DNS服务器时,根据该DNS请求的交易标识生成DNS代理表项;当接收单元302接收到DNS服务器发送的DNS响应时,根据该DNS响应携带的交易标识查找到对应的DNS代理表项;
[0071]发送单元304,进一步用于根据处理单元303查找到的DNS代理表项将所述DNS响应发送给对应用户终端。
[0072]上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
[0073]综上所述,本申请中使用出口 LB作为DNS代理,通过对到各DNS服务器的链路的负载进行检测,在接收到任一用户终端发送的DNS请求时,选择负载最轻的链路对应的DNS服务器为当前发送DNS请求的用户终端进行DNS解析,使得用户后续的访问可以通过运营商地址表匹配进入已选择链路,从而能够避免各DNS服务器所在运营商出口链路发生拥塞。
[0074]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种链路负载均衡方法,其特征在于,该方法包括: 负载均衡器LB检测到各域名系统DNS服务器的链路的负载,其中,通过LB对用户终端进行DNS代理; 该LB接收到用户终端发送的DNS请求时,选择当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析,并将接收到的DNS请求发送给该DNS服务器; 该LB接收到该DNS服务器发送的DNS响应时,将该DNS响应发送给对应用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。
2.根据权利要求1所述的方法,其特征在于,所述负载最轻的链路的选择方法为: 选择带宽占用率最小的链路作为负载最轻的链路; 当到各DNS服务器的链路的带宽占用率相同时,选择带宽值最大的链路作为负载最轻的链路; 当到各DNS服务器的链路的带宽占用率相同,且带宽值相同时,选择对应DNS服务器编号最小的链路作为负载最轻的链路;或,随机选择一条链路作为负载最轻的链路。
3.根据权利要求1所述的方法,其特征在于,所述负载最轻的链路的选择方法为: 确定是否存在带宽占用率与最小带宽占用率差值小于预设阈值的链路,如果是,在带宽占用率最小的链路,以及带宽占用率与最小带宽占用率差值小于预设阈值的链路中,选择带宽值最大的链路作为负载最轻的链路;否则,选择带宽占用率最小的链路作为负载最轻的链路。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述方法进一步包括: 该LB接收到用户终端发送的流量时,根据本地的网络地址转换NAT会话表对该流量进行NAT处理,并通过接收到的流量的目的因特网协议IP地址在运营商地址表中对应的出口发送进行NAT处理后的流量; 该LB接收到公网发送的流量时,根据本地的NAT会话表对该流量进行NAT处理,并发送到局域网中。
5.根据权利要求1-3任意一项所述的方法,其特征在于,所述将接收到的DNS请求发送给该DNS服务器时,所述方法进一步包括: 根据该DNS请求的交易标识生成DNS代理表项; 所述该LB接收到该DNS服务器发送的DNS响应时,所述方法进一步包括: 根据该DNS响应携带的交易标识查找到对应的DNS代理表项,并根据该DNS代理表项将所述DNS响应发送给对应用户终端。
6.一种链路负载均衡装置,其特征在于,通过该装置对用户终端进行域名系统DNS代理,该装置包括:检测单元、接收单元、处理单元和发送单元; 所述检测单元,用于检测检测本装置到各DNS服务器的链路的负载; 所述接收单元,用于接收用户终端发送的DNS请求;接收DNS服务器发送的DNS响应;所述处理单元,用于当所述接收单元接收到DNS请求时,选择所述检测单元当前检测到的负载最轻的链路对应的DNS服务器为该用户终端做DNS解析; 所述发送单元,用于将所述接收单元接收到的DNS请求发送给所述处理单元选择的DNS服务器;当所述接收单元接收到DNS响应时,将该DNS响应发送给对应用户终端,使所述用户终端使用所述DNS服务器响应的公网地址发送流量。
7.根据权利要求6所述的装置,其特征在于, 所述处理单元,具体用于选择负载最轻的链路时,选择带宽占用率最小的链路作为负载最轻的链路;当到各DNS服务器的链路的带宽占用率相同时,选择带宽值最大的链路作为负载最轻的链路;当到各DNS服务器的链路的带宽占用率相同,且带宽值相同时,选择对应DNS服务器编号最小的链路作为负载最轻的链路;或,随机选择一条链路作为负载最轻的链路。
8.根据权利要求6所述的装置,其特征在于, 所述处理单元,具体用于选择负载最轻的链路时,确定是否存在带宽占用率与最小带宽占用率差值小于预设阈值的链路,如果是,在带宽占用率最小的链路,以及带宽占用率与最小带宽占用率差值小于预设阈值的链路中,选择带宽值最大的链路作为负载最轻的链路;否则,选择带宽占用率最小的链路作为负载最轻的链路。
9.根据权利要求6-8任意一项所述的装置,其特征在于, 所述接收单元,进一步用于接收用户终端发送的流量;接收公网发送的流量; 所述处理单元,用于当所述接收单元接收到用户终端发送的流量时,根据接收到的流量的目的因特网协议IP地址在运营商地址表中匹配出口 ;根据本地的网络地址转换NAT会话表对该流量进行NAT处理;当所述接收单元接收到公网发送的流量时,根据本地的NAT会话表对该流量进行NAT处理; 所述发送单元,进一步用于通过所述处理单元匹配到的出口发送NAT处理后的流量;将所述处理单元进行NAT处理后的公网发送的流量发送到局域网中。
10.根据权利要求6-8任意一项所述的装置,其特征在于, 所述处理单元,进一步用于当所述发送单元将DNS请求发送给DNS服务器时,根据该DNS请求的交易标识生成DNS代理表项;当所述接收单元接收到DNS服务器发送的DNS响应时,根据该DNS响应携带的交易标识查找到对应的DNS代理表项; 所述发送单元,进一步用于根据所述处理单元查找到的DNS代理表项将所述DNS响应发送给对应用户终端。
【文档编号】H04L12/803GK104283804SQ201410581352
【公开日】2015年1月14日 申请日期:2014年10月27日 优先权日:2014年10月27日
【发明者】傅振宇 申请人:杭州华三通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1