一种负载均衡方法和路由器技术

技术编号:35191734 阅读:11 留言:0更新日期:2022-10-12 18:12
本申请涉及CDN的应用领域,尤其是涉及一种负载均衡方法和路由器,该方法包括获取业务数据包,业务数据包为基于用户端发出的请求数据包而产生的由服务端向用户端发送的数据包,每个业务数据包均关联有包括源端口、目的端口、源地址以及目的地址的关联信息;基于关系信息配置每个业务数据包的NAT规则;基于各个关联信息和预设的负载均衡规则,确定各个业务数据包分别对应的输出网卡,输出网卡为业务数据包被分配传输的网卡;将各个业务数据包通过对应的输出网卡发送。本申请具有使得多个网卡的负载均衡的效果。的负载均衡的效果。的负载均衡的效果。

【技术实现步骤摘要】
一种负载均衡方法和路由器


[0001]本申请涉及CDN的应用领域,尤其是涉及一种负载均衡方法和路由器。

技术介绍

[0002]随着互联网技术和电信技术的发展,多网卡Linux环境服务平台逐步被应用在内容分发网络(content delivery network, CDN)等领域,其相比单网卡Linux环境服务平台有更高的使用性价比。
[0003]但是在多网卡网络下,数据包在传输时需要面临多个网卡的选择问题,如果对数据包的分配不够合理,就会导致某个网卡出现高负载的情况;例如,客户端从单一网卡过量访问服务端或服务端通过单一网卡向用户提供过量服务时,较多的数据通过单一网卡传输,进而使得该网卡的负载较高,同时,数据传输的速度也会变慢。

技术实现思路

[0004]为了使得多个网卡的负载均衡,本申请提供一种负载均衡方法和路由器。
[0005]第一方面,本申请提供一种负载均衡方法和路由器,采用如下的技术方案:一种负载均衡方法,由路由器执行,包括:获取业务数据包,所述业务数据包为基于用户端发出的请求数据包而产生的由服务端向用户端发送的数据包,每个所述业务数据包均关联有包括源端口、目的端口、源地址以及目的地址的关联信息;基于所述关系信息配置每个所述业务数据包的NAT规则;基于各个所述关联信息和预设的负载均衡规则,确定各个所述业务数据包分别对应的输出网卡,所述输出网卡为所述业务数据包被分配传输的网卡;将各个所述业务数据包通过对应的所述输出网卡发送。
[0006]通过采用上述技术方案,通过关联信息确定数据包对应的输出网卡,即若存在多个业务数据包,则对于关联信息相同的数据包,也就是要发送至同一设备的数据包,则其输出网卡相同;对于关联信息不同的数据包,则其对应的输出网卡不同;进而减少了多个不同目的地址的数据包全部通过一个网卡进行传输的情况,在传输较多数据时,减小了对单一网卡的负载,进而实现了负载较为均衡的效果。
[0007]在一种可能实现的方式中,在获取业务数据包之前,还包括:获取任一网卡接收到的请求数据包并生成应答数据包;确定所述应答数据包的流出网卡,所述流出网卡为所述请求数据包进入时的网卡;将所述应答数据包通过所述流出网卡发送。
[0008]通过采用上述技术方案,将请求数据包对应的应答数据包,按照请求数据包进入时的网卡的路径进行返回,使得同一设备的数据信息能够转却返回至该设备。
[0009]在一种可能实现的方式中,所述确定所述应答数据包的流出网卡的IP,包括:
基于iptables的mangle规则,生成所述请求数据包的分类标签,并将所述分类标签与所述请求数据包关联,所述分类标签中包括数据包进入时的网卡的IP,以及对应的路由表ID;将所述分类标签和表帧写入策略路由表;配置所述请求数据包的NAT规则;基于所述策略路由表确定流出网卡的IP以确定流出网卡。
[0010]在一种可能实现的方式中,在将所述分类标签和表帧写入策略路由表,之前还包括:判断所述分类标签是否为新标签;若是,则将所述分类标签和表帧写入策略路由表;若否,则将所述分类标签确定为其被判断为新标签时所对应的原标签。
[0011]在一种可能实现的方式中,在配置每个所述业务数据包的NAT规则,之前还包括:基于各个网卡的IP确定各个网卡分别对应的策略路由表;将各个网卡的IP以及各个网卡对应的路由表写入策略路由表,以得到配置后的策略路由表;为各个网卡配置预设的负载均衡规则。
[0012]在一种可能实现的方式中,所述负载均衡规则包括:基于所述业务数据包的源地址、源端口、目的地址以及目的端口进行哈希计算,得到中间参数M;计算M/N的余数,N为网卡的数量,且每个网卡均预设有与其IP对应的编号,每个网卡的编号均从0

N中确定,且任意两个网卡的编号不重复;若所述余数为N

1,则确定编号为N的网卡为所述业务数据包的输出网卡。
[0013]第二方面,本申请提供一种负载均衡装置,采用如下的技术方案:一种负载均衡装置,包括业务数据报获取模块,用于获取业务数据包,所述业务数据包为基于用户端发出的请求数据包而产生的由服务端向用户端发送的数据包,每个所述业务数据包均关联有包括源端口、目的端口、源地址以及目的地址的关联信息;第一NAT规则配置模块,用于基于所述关系信息配置每个所述业务数据包的NAT规则;输出网卡确定模块,用于基于各个所述关联信息和预设的负载均衡规则,确定各个所述业务数据包分别对应的输出网卡,所述输出网卡为所述业务数据包被分配传输的网卡;第一发送模块,用于将各个所述业务数据包通过对应的所述输出网卡发送。
[0014]在一种可能实现的方式中,该装置还包括:应答数据包生成模块,用于获取任一网卡接收到的请求数据包并生成应答数据包;流出网卡确定模块,用于确定所述应答数据包的流出网卡,所述流出网卡为所述请求数据包进入时的网卡;第二发送模块,用于将所述应答数据包通过所述流出网卡发送。
[0015]在一种可能实现的方式中,当流出网卡确定模块确定所述应答数据包的流出网卡时,具体用于:基于iptables的mangle规则,生成所述请求数据包的分类标签,并将所述分类标签与所述请求数据包关联,所述分类标签中包括数据包进入时的网卡的IP,以及对应的路由表ID;将所述分类标签和表帧写入策略路由表;配置所述请求数据包的NAT规则;基于所述策略路由表确定流出网卡的IP以确定流出网卡。
[0016]在一种可能实现的方式中,该装置还包括:判断模块,用于判断所述分类标签是否为新标签;原标签确定模块,用于将所述分类标签确定为其被判断为新标签时所对应的原标签。
[0017]在一种可能实现的方式中,该装置还包括:策略路由表确定模块,用于基于各个网卡的IP确定各个网卡分别对应的策略路由表;写入模块,用于将各个网卡的IP以及各个网卡对应的路由表写入策略路由表,以得到配置后的策略路由表;配置模块,用于为各个网卡配置预设的负载均衡规则。
[0018]在一种可能实现的方式中,所述负载均衡规则包括:基于所述业务数据包的源地址、源端口、目的地址以及目的端口进行哈希计算,得到中间参数M;计算M/N的余数,N为网卡的数量,且每个网卡均预设有与其IP对应的编号,每个网卡的编号均从0

N中确定,且任意两个网卡的编号不重复;若所述余数为N

1,则确定编号为N的网卡为所述业务数据包的输出网卡。
[0019]第三方面,本申请提供一种路由器,采用如下的技术方案:一种路由器,该路由器包括:至少两个网卡;至少一个处理器;存储器;至少一个应用程序,其中所述至少一个应用程序被存储在存储器中并被配置为由至少一个处理器执行,所述至少一个应用程序配置用于:执行上述负载均衡方法。
[0020]第四方面,本申请提供一种计算机可读存储介质,采用如下的技术方案:一种计算机可读存储介质,包括:存储有能够被处理器加载并执行上述负载均衡方法的计算机程序。
[0021]综上所述,本申请包括本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种负载均衡方法,由路由器执行,其特征在于,包括:获取业务数据包,所述业务数据包为基于用户端发出的请求数据包而产生的由服务端向用户端发送的数据包,每个所述业务数据包均关联有包括源端口、目的端口、源地址以及目的地址的关联信息;基于所述关系信息配置每个所述业务数据包的NAT规则;基于各个所述关联信息和预设的负载均衡规则,确定各个所述业务数据包分别对应的输出网卡,所述输出网卡为所述业务数据包被分配传输的网卡;将各个所述业务数据包通过对应的所述输出网卡发送。2.根据权利要求1所述的一种负载均衡方法,其特征在于,在获取业务数据包之前,还包括:获取任一网卡接收到的请求数据包并生成应答数据包;确定所述应答数据包的流出网卡,所述流出网卡为所述请求数据包进入时的网卡;将所述应答数据包通过所述流出网卡发送。3.根据权利要求2所述的一种负载均衡方法,其特征在于, 所述确定所述应答数据包的流出网卡,包括:基于iptables的mangle规则,生成所述请求数据包的分类标签,并将所述分类标签与所述请求数据包关联,所述分类标签中包括数据包进入时的网卡,以及对应的路由表ID;将所述分类标签和表帧写入策略路由表;配置所述请求数据包的NAT规则;基于所述策略路由表确定流出网卡的IP以确定流出网卡。4.根据权利要求3所述的一种负载均衡方法,其特征在于,在将所述分类标签和表帧写入策略路由表,之前还包括:判断所述分类标签是否为新标签;若是,则将所述分类标签和表帧写入策略路由表;若否,则将所述分类标签确定为其被判断为新标签时所对应的原标签。5.根据权利要求1所述的一种负载均衡方法,其特征在于, 在配置每个所述业务数据包的NAT规则,之前还包括:基于各个网卡的IP确定各个网卡分别对应的策略路由表;将各个网卡的IP以...

【专利技术属性】
技术研发人员:段靖远
申请(专利权)人:即刻雾联科技北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1