一种负载均衡设备中Linux系统源端口分配方法技术方案

技术编号:38160797 阅读:11 留言:0更新日期:2023-07-13 09:33
本发明专利技术公开一种负载均衡设备中Linux系统源端口分配方法,涉及网络端口分配技术领域。本发明专利技术通过对源端口的分配调控,使得负载均衡设备的健康检查模块和SNAT(源地址转换)模块的报文五元组(包括源IP、源端口、协议类型、目的IP、目的端口)不会完全相同,从而有效解决上述两个模块发生报文冲突的问题,进而能够避免负载均衡设备转发业务异常和健康检查模块结果震荡的问题出现。果震荡的问题出现。果震荡的问题出现。

【技术实现步骤摘要】
一种负载均衡设备中Linux系统源端口分配方法


[0001]本专利技术涉及网络端口分配
,特别是涉及一种负载均衡设备中Linux系统源端口分配方法。

技术介绍

[0002]健康检查和SNAT(源地址转换)是负载均衡器设备必备的功能,并且在负载均衡器设备工作时,健康检查模块是必须启用的功能。健康检查模块指的是负载均衡器会定期向后端服务器发送请求以测试其运行状态,来判断后端服务器是否可用。SNAT指的是负载均衡器向后端服务器转发报文时改变报文的源IP和源端口的一种技术。健康检查模块报文的源IP和SNAT报文的源IP均可以使用业务接口的IP地址,因此这两种报文的源IP地址可能相同。当后端服务器的业务端口和健康检查模块检测端口相同时(报文的目的地址和目的端口相同),如果这两种报文的源端口相同时,就会导致报文冲突。报文冲突指的是报文的五元组相同(源IP、源端口、协议类型、目的IP、目的端口)。
[0003]负载均衡设备通常是基于Linux系统的,其中健康检查模块功能的收发包也是基于linux系统的,即报文的源端口是Linux系统决定的,但是SNAT报文的源端口却不是由Linux系统决定的,而是由转发系统(Linux系统上的一个进程,由编程实现)决定的。Linux系统下可以通过修改其系统参数/proc/sys/net/ipv4/ip_local_port_range来指定其可以使用的源端口的范围,而转发系统中SNAT模块可以使用的源端口的范围是通过程序实现的。当负载均衡设备同时使能健康检查模块和SNAT,为了避免出现冲突报文,就需要将两者能够使用的源端口范围进行合理规划,避免冲突。
[0004]现有的TCP/IP技术中的端口范围一般设置为<1,65534>(即表示从1到65534),其中<1,1024>为系统保留端口,实际可用端口为<1025,65534>。在没有配置SNAT模块的场景下,健康检查模块可用的源端口范围即为<1025,65534>,这样可以保证健康检查模块的最大数量。当SNAT模块配置后,重新规划源端口的使用范围。SNAT模块使用的范围为<1025,X>,健康检查模块使用的源端口的范围则变为<X+1,65534>,其中,X为事先规划好的某个值,各厂家可能不同。
[0005]在没有配置SNAT模块的情况下,健康检查模块可以使用全部的可用端口,假定已经是使用了其中的某些端口{P1,P2...Pn}。如果端口{P1,P2...Pn}中的某些在<X+1,65534>,那么当配置SNAT模块后,SNAT模块也可能使用这些端口,就会出现报文冲突的情况,导致负载均衡设备转发业务异常和健康检查模块结果震荡。

技术实现思路

[0006]为解决现有技术存在的上述问题,本专利技术提供了一种负载均衡设备中Linux系统源端口分配方法。
[0007]为实现上述目的,本专利技术提供了如下方案:
[0008]一种负载均衡设备中Linux系统源端口分配方法,包括:
[0009]基于健康检查模块的规格设置初值;
[0010]基于所述初值设置第一源端口范围;所述第一源端口范围为健康检查模块能够使用的源端口范围;
[0011]基于所述第一源端口范围判断剩余的源端口是否满足SANT模块的源端口数量需求;
[0012]当剩余的源端口满足SANT模块的源端口数量需求时,则基于所述初值确定Linux系统的源端口范围;
[0013]当剩余的源端口不满足SANT模块的源端口数量需求时,则调整所述初值,并返回执行“基于所述初值设置第一源端口范围”。
[0014]优选地,通过调整健康检查模块的规格或SANT模块规格,进而调整所述初值。
[0015]优选地,通过调整健康检查模块的规格和SANT模块规格,进而调整所述初值。
[0016]优选地,所述初值为X:
[0017]X=30000,或X=40000。
[0018]优选地,所述第一源端口范围为<1025,X>。
[0019]优选地,所述SANT模块的源端口范围为<X+1,65534>。
[0020]根据本专利技术提供的具体实施例,本专利技术公开了以下技术效果:
[0021]本专利技术提供的负载均衡设备中Linux系统源端口分配方法,通过对源端口的分配调控,使得负载均衡设备的健康检查模块和SNAT(源地址转换)模块的报文五元组(包括源IP、源端口、协议类型、目的IP、目的端口)不会完全相同,从而有效解决上述两个模块发生报文冲突的问题,进而能够避免负载均衡设备转发业务异常和健康检查模块结果震荡的问题出现。
附图说明
[0022]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0023]图1为本专利技术提供的负载均衡设备中Linux系统源端口分配方法的流程图。
具体实施方式
[0024]下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0025]本专利技术的目的是提供一种负载均衡设备中Linux系统源端口分配方法,能够有效解决上述两个模块发生报文冲突的问题,进而能够避免负载均衡设备转发业务异常和健康检查模块结果震荡的问题出现。
[0026]为使本专利技术的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本专利技术作进一步详细的说明。
[0027]实施例一
[0028]如图1所示,本专利技术提供的负载均衡设备中Linux系统源端口分配方法,包括:
[0029]步骤100:基于健康检查模块的规格设置初值。
[0030]步骤101:基于初值设置第一源端口范围。第一源端口范围为健康检查模块能够使用的源端口范围。
[0031]步骤102:基于第一源端口范围判断剩余的源端口是否满足SANT模块的源端口数量需求。
[0032]步骤103:当剩余的源端口满足SANT模块的源端口数量需求时,则基于初值确定Linux系统的源端口范围。
[0033]该步骤中,主要是通过设置程序代码实现,例如,当程序启动时通过系统调用以下代码设置Linux系统的可用源端口范围后,修改SNAT程序代码设置其可用的端口范围为<X+1,65534>。
[0034]程序本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种负载均衡设备中Linux系统源端口分配方法,其特征在于,包括:基于健康检查模块的规格设置初值;基于所述初值设置第一源端口范围;所述第一源端口范围为健康检查模块能够使用的源端口范围;基于所述第一源端口范围判断剩余的源端口是否满足SANT模块的源端口数量需求;当剩余的源端口满足SANT模块的源端口数量需求时,则基于所述初值确定Linux系统的源端口范围;当剩余的源端口不满足SANT模块的源端口数量需求时,则调整所述初值,并返回执行“基于所述初值设置第一源端口范围”。2.根据权利要求1所述的负载均衡设备中Linux系统源端口分配方法,其特征在于,通过调整健康检查模块的规格或SANT模块规格,进而调...

【专利技术属性】
技术研发人员:李文化
申请(专利权)人:上海弘积信息科技有限公司
类型:发明
国别省市:

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

1