一种报文处理方法、装置、物理机及存储介质制造方法及图纸

技术编号:39047889 阅读:11 留言:0更新日期:2023-10-10 12:00
本申请实施例提供了一种报文处理方法、装置、物理机及存储介质,所述方法包括:接收负载均衡器发送的请求报文;响应请求报文,并生成响应报文;在发送响应报文的过程中,若响应报文到达内核发包路径的预设挂载点,将响应报文的源IP地址改写为负载均衡器的虚拟IP地址、源端口号改写为负载均衡器的虚拟端口号,得到目标响应报文;发送目标响应报文。由于物理机可以将响应报文的源IP地址和源端口分别改写为负载均衡器的虚拟IP地址和虚拟端口号得到目标响应报文,然后直接向客户端发送目标响应报文,无需经过负载均衡器的转发,所以减少了负载均衡器转发的报文的数量,解决了负载均衡器容易成为性能瓶颈的问题,从而提高了报文处理效率。效率。效率。

【技术实现步骤摘要】
一种报文处理方法、装置、物理机及存储介质


[0001]本申请涉及网络通信
,特别是涉及一种报文处理方法、装置、物理机及存储介质。

技术介绍

[0002]目前业务平台一般基于LVS(Linux Virtual Server,Linux虚拟服务器)等虚拟服务器集群系统对外提供业务。其中,上述虚拟服务器集群系统中包括负载均衡器和多台物理机,当客户端向虚拟服务器集群系统请求业务时,负载均衡器接收客户端发送的针对上述业务请求的请求报文,并基于负载均衡算法分配响应该请求报文的物理机,物理机响应负载均衡器为其分配的请求报文。上述虚拟服务器集群系统存在多种工作模式,其中,NAT(Network Address Translation,网络地址转换)模式是一种应用比较广泛的工作模式。
[0003]在NAT模式下,负载均衡器接收到客户端针对业务请求的请求报文后,向一台物理机转发上述请求报文,当物理机针对请求报文生成响应报文后向负载均衡器发送该响应报文,然后由负载均衡器将响应报文转发给客户端,从而为客户端提供其所请求的业务。
[0004]由上述过程可以看出,负载均衡器既需要向物理机转发请求报文,又需要向客户端转发响应报文,这样,在请求业务的请求报文较多的情况下,易导致负载均衡器需要转发的报文较多,进而使得负载均衡器成为上述虚拟服务器集群系统的性能瓶颈,报文处理效率低。

技术实现思路

[0005]本申请实施例的目的在于提供一种报文处理方法、装置、物理机及存储介质,以提高报文处理效率。具体技术方案如下:第一方面,本申请实施例提供了一种报文处理方法,应用于虚拟服务器集群系统中的物理机,所述方法包括:接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的IP地址和端口号;响应所述请求报文,并生成响应报文,其中,所述响应报文的源IP地址为所述物理机的IP地址、源端口号为所述物理机的端口号、目的IP地址为所述客户端的IP地址、目的端口号为所述客户端的端口号;按照内核发包路径发送所述响应报文;在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;发送所述目标响应报文。
[0006]可选的,所述预设挂载点挂载有信息改写钩子函数;所述若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源
IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文,包括:若所述信息改写钩子函数被调用,通过所述信息改写钩子函数,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。
[0007]可选的,所述预设挂载点为tc egress。
[0008]可选的,所述物理机上运行有用于发送报文的发包程序,所述发送所述目标响应报文,包括:调用所述发包程序发送所述目标响应报文。
[0009]可选的,所述将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,包括:判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:IP地址和端口号,所述目标地址端口对包括:所述响应报文的源IP地址和源端口号;如果存在,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;将所述响应报文的源IP地址改写为查找到的地址端口对中的IP地址、源端口号改写为查找到的地址端口对中的端口号。
[0010]可选的,所述对应关系采用key

value数据结构进行存储,其中,key

value中的key值包括:物理机的IP地址和端口号,value值包括:负载均衡器的虚拟IP地址和虚拟端口号。
[0011]可选的,在所述接收负载均衡器发送的请求报文之前,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf API接口创建所述对应关系。
[0012]可选的,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf API接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。
[0013]第二方面,本申请实施例提供了一种报文处理装置,应用于虚拟服务器集群系统中的物理机,所述装置包括:接收模块,用于接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的IP地址和端口号;响应模块,用于响应所述请求报文,并生成响应报文,其中,所述响应报文的源IP地址为所述物理机的IP地址、源端口号为所述物理机的端口号、目的IP地址为所述客户端的IP地址、目的端口号为所述客户端的端口号;第一发送模块,用于按照内核发包路径发送所述响应报文;改写模块,用于在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;
第二发送模块,用于发送所述目标响应报文。
[0014]可选的,所述预设挂载点挂载有信息改写钩子函数;所述改写模块,具体用于在所述信息改写钩子函数被调用时,通过所述信息改写钩子函数,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。
[0015]可选的,所述预设挂载点为tc egress。
[0016]可选的,所述物理机上运行有用于发送报文的发包程序;所述第二发送模块,具体用于调用所述发包程序发送所述目标响应报文。
[0017]可选的,所述改写模块,包括:判断单元,用于判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:IP地址和端口号,所述目标地址端口对包括:所述响应报文的源IP地址和源端口号;地址端口对查找单元,用于在预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中存在目标地址端口对时,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;改写单元,用于将所述响应报文的源IP地址改写为查找到的地址端口对中的IP地址、源端口号改写为查找到的地址端口对中的端口号。
[0018]可选的,所述对应关系采用key

value数据结构进行存储,其中,key

value中的key值包括:物理机的IP地址和端口号,value值包括:负载均衡器的虚拟IP地址和虚拟端口号。
[0019]可选的,所述装置还包括:对应关系创建模块,用于在接收负载均衡器发送的请求报文之前,本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种报文处理方法,其特征在于,应用于虚拟服务器集群系统中的物理机,所述方法包括:接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的IP地址和端口号;响应所述请求报文,并生成响应报文,其中,所述响应报文的源IP地址为所述物理机的IP地址、源端口号为所述物理机的端口号、目的IP地址为所述客户端的IP地址、目的端口号为所述客户端的端口号;按照内核发包路径发送所述响应报文;在发送所述响应报文的过程中,若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文;发送所述目标响应报文。2.根据权利要求1所述的方法,其特征在于,所述预设挂载点挂载有信息改写钩子函数;所述若所述响应报文到达所述内核发包路径的预设挂载点,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文,包括:若所述信息改写钩子函数被调用,通过所述信息改写钩子函数,将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,得到目标响应报文。3.根据权利要求2所述的方法,其特征在于,所述预设挂载点为tc egress。4.根据权利要求1

3中任一项所述的方法,其特征在于,所述物理机上运行有用于发送报文的发包程序,所述发送所述目标响应报文,包括:调用所述发包程序发送所述目标响应报文。5.根据权利要求1

3中任一项所述的方法,其特征在于,所述将所述响应报文的源IP地址改写为所述负载均衡器的虚拟IP地址、源端口号改写为所述负载均衡器的虚拟端口号,包括:判断预先存储的物理机的地址端口对与负载均衡器的地址端口对的对应关系中是否存在目标地址端口对,其中,所述地址端口对包括:IP地址和端口号,所述目标地址端口对包括:所述响应报文的源IP地址和源端口号;如果存在,从所述对应关系中查找所述目标地址端口对对应的负载均衡器的地址端口对;将所述响应报文的源IP地址改写为查找到的地址端口对中的IP地址、源端口号改写为查找到的地址端口对中的端口号。6.根据权利要求5所述的方法,其特征在于,所述对应关系采用key

value数据结构进行存储,其中,key

value中的key值包括:物理机的IP地址和端口号,value值包括:负载均衡器的虚拟IP地址和虚拟端口号。7.根据权利要求5所述的方法,其特征在于,在所述接收负载均衡器发送的请求报文之前,所述方法还包括:
在所述物理机上运行的发包程序接收到所述负载均衡器发送的创建通知后,通过所述发包程序调用ebpf API接口创建所述对应关系。8.根据权利要求5所述的方法,其特征在于,所述方法还包括:在所述物理机上运行的发包程序接收到所述负载均衡器发送的删除通知时,通过所述发包程序调用ebpf API接口,删除所述对应关系,其中,所述删除通知是所述负载均衡器在接收到针对所述物理机的下线指令时发送的。9.一种报文处理装置,其特征在于,应用于虚拟服务器集群系统中的物理机,所述装置包括:接收模块,用于接收负载均衡器发送的请求报文,其中,所述请求报文中包括:请求业务的客户端的IP地址和端口号;响应模块,用于响应所述请求报文,并生成响应...

【专利技术属性】
技术研发人员:田文杰郑王力赵维五王宪良李文龙
申请(专利权)人:中航金网北京电子商务有限公司
类型:发明
国别省市:

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

1