CN117354368A - 七层代理下客户端信息透传方法、装置、设备及存储介质 - Google Patents
七层代理下客户端信息透传方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117354368A CN117354368A CN202311655315.5A CN202311655315A CN117354368A CN 117354368 A CN117354368 A CN 117354368A CN 202311655315 A CN202311655315 A CN 202311655315A CN 117354368 A CN117354368 A CN 117354368A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- matching
- client information
- client
- message
- 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.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 65
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 19
- 230000003993 interaction Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 5
- 238000010276 construction Methods 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 10
- 239000002699 waste material Substances 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 9
- 230000002452 interceptive effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000012550 audit Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Computer And Data Communications (AREA)
Abstract
本说明书涉及通信技术领域,尤其涉及一种七层代理下客户端信息透传方法、装置、设备及存储介质。其中方法包括,应用于七层代理服务器,包括,在用户态,接收并解析客户端的原始报文,构建转发报文;在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。利用本说明书实施例,在七层代理服务器的内核态中,通过加入内核态客户端信息写入单元对至少部分转发报文写入客户端信息,使得在七层代理环境中可以将客户端信息透传给源站服务器;并且还可能灵活的配置对转发报文的处理,避免浪费七层代理服务器的资源。
Description
技术领域
本说明书涉及通信技术领域,尤其涉及一种七层代理下客户端信息透传方法、装置、设备及存储介质。
背景技术
在通过互联网访问服务器的过程中,出于对负载均衡、安全、传输效率等方面的考虑,有时并不会把保存有原始数据的服务器(源站)暴露给客户端,而是通过代理服务器的方式,让客户端访问代理服务器,代理服务器再将请求转发给源站,从源站获取到数据后再传给客户端。
现有技术中使用七层代理来实现报文的转发,通过分别与源站和客户端建立连接,客户端原始请求到达代理服务器后,代理服务器解析应用层协议,然后转发应用层请求到源站,实现代理;该方式更灵活,可实现缓存、SSL卸载、安全审计等附加功能。但是,在一些应用场景中,源站需要获得客户端的原始IP地址和端口(port)的信息,通过现有的七层代理无法适用于这些应用场景。
如何解决现有技术中基于七层代理协议无法将客户端信息透传给源站是亟需解决的问题。
发明内容
为解决现有技术中的问题,本说明书实施例提供了一种七层代理下客户端信息透传方法、装置、设备及存储介质,解决了现有技术中在七层代理下无法透传客户端信息的问题。
本说明书实施例提供了一种七层代理下客户端信息透传的方法,应用于七层代理服务器,包括,
在用户态,接收并解析客户端的原始报文,构建转发报文;
在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;
根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。
作为本说明书的一个进一步的方面,在用户态,接收并解析客户端的原始报文,构建转发报文中进一步包括,
根据解析后的原始报文的信息以及转发报文的转发五元组信息,构建所述转发报文。
作为本说明书的再一个进一步的方面,所述转发五元组信息包括,所述七层代理服务器的IP地址、端口号,目标源站服务器的IP地址、端口号,通信协议。
作为本说明书的另一个进一步的方面,在用户态,接收并解析客户端的原始报文,构建转发报文中进一步包括,
通过所述用户态与内核态的交互接口,更新所述内核态中的透传匹配表。
作为本说明书的另一个进一步的方面,所述用户态与内核态的交互接口至少包括以下其中之一或者组合:系统调用接口、共享内存和系统文件IO接口。
作为本说明书的另一个进一步的方面,在所述内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息中进一步包括,
根据所述转发报文的至少部分信息,在透传匹配表中获取客户端信息;
在匹配成功的转发报文中写入所述客户端的客户端信息。
作为本说明书的另一个进一步的方面,所述透传匹配表包括,转发报文的至少部分信息以及客户端信息。
作为本说明书的另一个进一步的方面,在所述用户态,根据目标源站服务器的域名,获取匹配的规则;
在所述内核态,将转发报文按照所述匹配规则在所述透传匹配表中进行匹配,其中,所述匹配规则包括精确匹配或模糊匹配。
作为本说明书的另一个进一步的方面,根据所述匹配规则在所述透传匹配表中进行匹配中进一步包括,
所述匹配规则为精确匹配时,利用所述转发报文的七层代理服务器的IP地址、端口号,目标源站服务器的IP地址、端口号以及通信协议,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。
作为本说明书的另一个进一步的方面,根据所述匹配规则在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息中进一步包括,
所述匹配规则为模糊匹配时,至少利用所述转发报文的七层代理服务器的IP地址在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息;或者,
至少利用所述转发报文的目标源站服务器的IP地址在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息;或者,
利用所述转发报文的目标源站服务器的IP地址和端口号,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。
作为本说明书的另一个进一步的方面,在所述用户态,根据目标源站服务器的域名,获取匹配的规则中还包括,
根据每个源站服务器的配置生成源站配置表,其中包括由源站服务器配置的需要写入客户端信息的转发报文的特征;
将所述原始报文的信息在所述源站配置表中进行匹配;
将匹配成功的与所述原始报文对应生成的转发报文的转发五元组信息、客户端信息以及匹配规则传送到内核态的透传匹配表进行更新。
作为本说明书的另一个进一步的方面,在所述内核态,将至少部分转发报文写入所述客户端的客户端信息中进一步包括,
所述客户端信息包括所述客户端的IP地址和/或端口号。
作为本说明书的另一个进一步的方面,在所述内核态,将至少部分转发报文写入所述客户端的客户端信息中进一步包括,
在所述至少部分转发报文的TCP报文头的选项中写入所述客户端信息。
本说明书实施例还提供了一种七层代理下客户端信息透传的装置,包括,
用户态转发报文构建单元,用于在用户态,接收并解析客户端的报文,构建转发报文;
内核态客户端信息写入单元,用于在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;
发送单元,用于根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。
本说明书实施例还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
本说明书实施例还提供了一种计算机可读存储介质,其上存储有计算机指令,该计算机指令被处理器执行时实现上述的方法。
利用本说明书实施例,在七层代理服务器的内核态中,通过加入内核态客户端信息写入单元对至少部分转发报文写入客户端信息,使得在七层代理环境中可以将客户端信息透传给源站服务器;并且还可能灵活的配置对转发报文的处理,避免浪费七层代理服务器的资源。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1所示为本说明书实施例基于七层代理的网络结构示意图;
图2所示为本说明书实施例一种七层代理下客户端信息透传方法的流程图;
图3所示为本说明书实施例一种七层代理下客户端信息透传的数据流图;
图4所示为本说明书实施例根据匹配规则进行转发报文匹配的流程图;
图5所示为本说明书实施例一种七层代理下客户端信息透传的装置的结构示意图;
图6所示为本说明书实施例提供的一种计算机设备。
【附图标记说明】
101、客户端;
102、七层代理服务器;
103、源站服务器;
501、用户态转发报文构建单元;
502、内核态客户端信息写入单元;
503、发送单元;
602、计算机设备;
604、处理器;
606、存储器;
608、驱动机构;
610、输入/输出模块;
612、输入设备;
614、输出设备;
616、呈现设备;
618、图形用户接口;
620、网络接口;
622、通信链路;
624、通信总线。
具体实施方式
下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
如图1所示为本说明书实施例基于七层代理的网络结构示意图,在本图中描述了多个客户端101、七层代理服务器102、多个源站服务器103。
客户端101包括但不限于自助终端设备、台式计算机、平板电脑、笔记本电脑、智能可穿戴设备等类型的电子设备。可选的,电子设备上运行的操作系统可以包括但不限于安卓系统、IOS系统、Linux、Windows等。当然,所述客户端101并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。
七层代理服务器102、多个源站服务器103可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(CDN, Content Delivery Network)、以及大数据和人工智能平台等基础云计算服务的云服务器。
客户端101根据源站服务器103的域名发起访问请求原始报文,该访问请求原始报文的源IP地址和端口号为该客户端101的IP地址和端口号,目的IP地址和端口号为所述七层代理服务器102的第一IP地址和第一端口号,七层代理服务器102接收到该访问请求原始报文后,将该访问请求原始报文进行解析并重新构建与所述原始报文对应的转发报文,在此过程中七层代理服务器102可实现缓存、SSL卸载(安全套接字协议卸载,将SSL加密数据流卸载为非加密格式数据流的过程)、安全审计等附加功能,实现在七层代理服务器102的用户态,如Nginx、Apache、HAProxy等,所述转发报文的源IP地址和端口号为七层代理服务器102的第二IP地址和第二端口号,目的地址为目标源站服务器103的IP地址和端口号。在本说明书的实施例中,七层代理服务器102还调用内核态的内核态客户端信息写入单元将客户端101的信息,例如客户端IP地址和端口号,写入到发送给目标源站服务器103的转发报文的选项(option)字段中,从而使得目标源站服务器103可以获得客户端信息,以用于统计或者分析所用。
如图2所示为本说明书实施例一种七层代理下客户端信息透传方法的流程图,在本图中描述了基于图1的网络构架七层代理服务器在实现代理转发报文的同时,在由源站服务器指定的转发报文中加入客户端信息,使得源站服务器可以根据客户端信息进行其他应用统计等功能。该方法具体包括:
步骤201,在用户态,接收并解析客户端的原始报文,构建转发报文;
步骤202,在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;
步骤203,根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。
通过上述本说明书实施例的方法,在七层代理服务器的内核态中,通过加入内核态客户端信息写入单元对至少部分转发报文写入客户端信息,使得在七层代理环境中可以将客户端信息透传给源站服务器。
作为本说明书的一个实施例,在用户态,接收并解析客户端的原始报文,构建转发报文进一步包括,
根据解析后的原始报文信息以及转发五元组信息,构建所述转发报文。
在本实施例中,七层代理服务器在用户态将客户端发送的原始报文进行解析,获得原始报文中的数据内容,进行缓存、SSL卸载、安全审计等附加功能,构造与客户端发送的原始报文相对应的转发报文,将所述转发报文发送给内核态进行封装。
其中,用户态例如可以包括运行于操作系统之上的应用层的应用程序,内核态例如可以包括操作系统层的内核操作。
所述转发五元组信息在本实施例中包括七层代理服务器的IP地址和端口号(作为转发报文的源IP地址和端口号),目标源站服务器的IP地址和端口号(作为转发报文的目标IP地址和端口号)以及通信协议。
作为本说明书的一个实施例,在用户态,接收并解析客户端的原始报文,构建转发报文中进一步包括,
通过所述用户态与内核态的交互接口,更新所述内核态中的透传匹配表。
在本实施例中,在内核态中通过操作系统的hook节点,构造一个能够在操作系统的内核对转发报文的TCP包头的选项字段写入客户端信息的模块,也就是本实施例中的内核态客户端信息写入单元。用户态中根据源站服务器预先设定的条件,在原始报文中获取原始报文信息,例如客户端访问的源站服务器域名或者URL等信息,当符合预先设定的条件,则通过交互接口由用户态获取的转发报文的至少部分信息(全部或者部分转发五元组信息)、客户端信息发送给内核态的透传匹配表,用以更新所述透传匹配表,还可以通过交互接口发送匹配规则等信息,用以通知内核态客户端信息写入单元采用何种匹配规则来将转发报文与透传匹配表中的记录进行匹配。其中,更新所述透传匹配表是指在透传匹配表中增加新的一条记录,或者在透传匹配表中原有记录的基础之上进行修改。
作为本说明书的一个实施例,所述用户态与内核态的交互接口至少包括以下其中之一或者组合:系统调用接口、共享内存和系统文件IO接口,或操作系统提供的其他接口,例如用户态与内核态传递转发报文的网络通信接口(Socket接口)。
作为本说明书的一个实施例,在所述内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息中进一步包括,
根据所述转发报文的至少部分信息,在透传匹配表中获取客户端信息;
在匹配成功的转发报文中写入所述客户端的客户端信息。
在本实施例中,所述透传匹配表包括,转发报文的至少部分信息以及客户端信息,其中,例如可以根据转发报文的目的源站服务器的IP地址和端口号,七层代理服务器的IP地址和端口号以及通信协议构成的转发报文的转发五元组信息,在内核态的透传匹配表中进行匹配,所述透传匹配表中记录了要在哪些转发报文的TCP包头的选项字段中加入客户端信息,例如,当转发报文的转发五元组信息与透传匹配表中记录的转发五元组信息匹配时,则可以获取透传匹配表中对应的客户端信息,利用内核态客户端信息写入单元在相应转发报文的TCP包头的option字段添加所述客户端信息;所述透传匹配表中还可以包括匹配规则,当匹配成功时,还可以获取匹配规则,从而采用不同的匹配规则来将内核态中的转发报文与透传匹配表中的记录进行比较,例如后文描述的精确匹配规则和模糊匹配规则。
作为本说明书的一个实施例,在根据所述转发报文的至少部分信息,在透传匹配表中获取客户端信息之前进一步包括,
在所述用户态,根据目标源站服务器的域名,获取匹配的规则;
在所述内核态,将转发报文按照所述匹配规则在所述透传匹配表中进行匹配,其中,所述匹配规则包括精确匹配或模糊匹配。
在本实施例中,七层代理服务器的内核态中的内核态客户端信息写入单元可以采用转发报文中转发五元组的全部信息在透传匹配表中进行匹配,也可以采用转发报文中转发五元组的部分信息在透传匹配表中进行匹配,还可以采用转发报文中目标源站服务器IP地址或端口号在透传匹配表中进行匹配,采用哪种匹配规则,可以根据客户端发出报文时确定,例如可以根据客户端请求资源的目标源站服务器的域名来确定匹配规则,或者还可以根据目标源站服务器的IP地址和/或端口号来确定匹配规则。所述匹配规则可以由源站服务器预先在七层代理服务器中设定,例如原始报文中所要访问的源站URL,当原始报文中的源站URL与设定值相符合时,则采用相应匹配规则。
作为本说明书的一个实施例,根据所述匹配规则在所述透传匹配表中进行匹配中进一步包括,
所述匹配规则为精确匹配时,利用所述转发报文的七层代理服务器的IP地址、端口号,目标源站服务器的IP地址、端口号以及通信协议,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。
在本实施例中,精确匹配可以采用转发报文的转发五元组信息来进行匹配,例如转发五元组的全部信息来进行匹配。
作为本说明书的一个实施例,根据所述匹配规则在所述透传匹配表中进行匹配中进一步包括,
所述匹配规则为模糊匹配时,至少利用所述转发报文的七层代理服务器的IP地址在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息;或者,
至少利用所述转发报文的目标源站服务器的IP地址在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息;或者,
利用所述转发报文的目标源站服务器的IP地址和端口号,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。
在本实施例中,在模糊匹配中可以采用转发报文的七层代理服务器的IP地址来进行匹配,还可以使用转发五元组中的一部分信息来进行匹配,例如,目标源站服务器的IP地址、端口号,还可以利用所述转发报文的七层代理服务器的IP地址,目标源站服务器的IP地址、端口号以及通信协议,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。在其他实施例中,可以采用转发报文的转发五元组信息中的信息组合来进行匹配,不限上述几种方式,还可以例如包括仅匹配七层代理服务器的IP地址,或者还可以匹配七层代理服务器的IP地址和通信协议等,转发五元组信息中一部分信息的排列组合情况。
作为本说明书的一个实施例,在所述用户态,根据目标源站服务器的域名,获取匹配的规则中进一步包括,
根据每个源站服务器的配置生成源站配置表,所述源站配置表包括由源站服务器配置的需要写入客户端信息的转发报文的特征;
将所述原始报文的信息在所述源站配置表中进行匹配;
将匹配成功的与所述原始报文对应生成的转发报文的转发五元组信息、客户端信息以及匹配规则传送到内核态的透传匹配表进行更新。
在本实施例中,七层代理服务器用户态的代理应用提供接口,用于与各个源站服务器通信,通过该接口,各个源站服务器均可以在代理应用上配置哪些转发报文要携带客户端信息,例如,当转发报文的目标源站服务器IP地址或者端口号为指定的IP地址或端口号时,则需要将该转发报文的转发五元组信息、客户端信息以及匹配规则通过用户态与内核态之间的交互接口发送到内核态中的透传匹配表进行更新,以供在内核态对转发报文封装时进行筛选和改造,按照匹配规则将与透传匹配表中至少部分转发五元组信息匹配的转发报文中写入客户端信息。
作为本说明书的一个实施例,在所述内核态,将至少部分转发报文写入所述客户端的客户端信息中进一步包括,
在所述至少部分转发报文的TCP报文头的选项中写入所述客户端信息。
在本实施例中,由于在七层代理服务器的内核态中的内核态客户端信息写入单元根据匹配规则在透传匹配表中匹配转发报文,根据目标源站服务器配置信息对转发报文写入客户端信息,有的转发报文写入了客户端信息,有的转发报文未被写入客户端信息,这样可以灵活的根据源站服务器的需求配置转发报文中是否包括客户端信息,对于不需要统计的转发报文,可以不进行额外处理,从而节省了七层代理服务器的计算资源和内存消耗。
作为本说明书的一个实施例,在所述内核态,将至少部分转发报文写入所述客户端的客户端信息后进一步包括,
对写入客户端信息的转发报文进行校验字段的更新。
在本实施例中,在对转发报文的TCP包头的option字段写入客户端信息后,会导致原转发报文的IP校验字段和TCP校验字段错误,需要对该校验字段进行更新,也就是说,采用现有技术中的校验字段生成算法,结合转发报文的内容生成新的校验字段,并将新生成的校验字段替换原转发报文的校验字段。
通过上述本说明书实施例的方法,在七层代理服务器的内核态中,通过加入内核态客户端信息写入单元对至少部分转发报文写入客户端信息,使得在七层代理环境中可以将客户端信息透传给源站服务器;并且还可能灵活的配置对转发报文的处理,避免浪费七层代理服务器的资源。源站服务器可以根据客户端信息进行统计、监控、安全防护等处理,统计访问量、监控访问行为并回溯客户端、防护恶意访问的客户端和攻击行为。
如图3所示为本说明书实施例一种七层代理下客户端信息透传的数据流图,在本图中描述了七层代理下的系统中客户端、七层代理服务器和目标源站服务器的数据流转,在本实施例中七层代理服务器中包括了用户态和内核态,一个客户端与七层代理服务器和目标源站服务器构成的一个会话中包括多个数据报文,客户端的报文通过网络发送给七层代理服务器的网络接口,通过七层代理服务器的内核态将该报文传送给用户态的代理应用,代理应用获得客户端发送原始报文的信息,对报文进行各种预先规定的解析、处理,构建为转发报文后发送给内核态,内核态中的内核态客户端信息写入单元根据匹配规则和透传匹配表进行匹配,确定哪些转发报文要写入客户端信息,并在需要写入客户端信息的转发报文的TCP包头的选项字段写入客户端信息,并发送给目标源站服务器,具体过程包括:
步骤301,客户端向七层代理服务器发送原始报文。
在本步骤中,客户端发出的原始报文五元组包括,客户端IP地址和端口号(IP_A,Port_A),七层代理服务器IP地址和端口号(IP_B1,Port_B1),以及通信协议。其中,该原始报文的源IP地址和端口号分别为客户端IP地址和端口号(IP_A,Port_A),目标IP地址和端口号分别为七层代理服务器IP地址和端口号(IP_B1,Port_B1)。
客户端发送的原始报文通过网络达到七层代理服务器的网络接口,该七层代理服务器的内核态将该原始报文传送给用户态的代理应用。
步骤302,代理应用根据原始报文构建转发报文。
在本步骤中,代理应用可以对接收到的原始报文进行统计、处理等操作,还可以获得原始报文的信息,例如包括目标源站服务器的域名、URL、IP地址和端口号,客户端信息等信息。根据原始报文的信息和转发五元组信息构建转发报文,将转发报文通过Socket接口发送给内核态进行将转发报文发送给目标源站服务器的处理。其中,代理应用还可以通过Socket与目标源站服务器进行连接通信,从而获得目标源站服务器的IP地址和端口号,所述转发五元组信息包括,七层代理服务器IP地址和端口号(IP_B2,Port_B2),目标源站服务器IP地址和端口号(IP_C,Port_C),以及通信协议。其中,该转发报文的源IP地址和端口号分别为七层代理服务器IP地址和端口号(IP_B2,Port_B2),目标IP地址和端口号分别为目标源站服务器IP地址和端口号(IP_C,Port_C)。
并且,如图中虚线所示,通过代理应用提供的接口,源站服务器还可以预先设定各自的匹配规则以及配置信息,所述代理应用还可以生成各个源站服务器的源站配置表,其中记录了各个源站服务器的配置信息,即,针对哪些转发报文进行客户端信息写入,例如通过解析原始报文后,获得的原始报文信息中目标源站服务器IP地址为指定的某个IP地址(即源站服务器IP地址),或者目标源站服务器的端口号为指定的某个端口号(即源站服务器端口号),或者原始报文信息中要访问的URL属于目标源站服务器指定的某个域名,则需要将该转发报文对应的客户端信息发送给目标源站服务器,以及针对符合要求的转发报文采用什么样的匹配规则。
代理应用根据原始报文的信息,例如根据原始报文信息中的目标源站服务器的域名,在源站配置表中查询是否存在相应记录,如果存在相应记录,表明目标源站需要七层代理服务器的转发报文中携带有客户端信息,所述代理应用将与该原始报文相应的转发报文的转发五元组信息和客户端信息通过交互接口发送给内核态的透传匹配表进行更新。
其中,所述代理应用根据解析报文得到的客户端访问的目标源站服务器的域名确定要与哪个源站服务器进行Socket连接,并且根据目标源站服务器的域名还可以确定由目标源站预先设定的匹配规则,其中包括模糊匹配和精确匹配,代理应用还可以将匹配规则通过交互接口发送给内核态客户端信息写入单元。
步骤303,代理应用将转发报文的转发五元组信息以及客户端信息发送给内核态的透传匹配表进行更新。
在本步骤中,代理应用通过用户态与内核态的交互接口,例如共享内存、系统调用等方式形成的交互接口,将转发报文的转发五元组信息以及客户端信息发送给内核态的透传匹配表。
作为另一个实施例,还可以将匹配规则通过交互接口发送给内核态的透传匹配表进行更新。
将透传匹配表进行更新后,当七层代理服务器的代理应用接收到该客户端的同一会话的其他报文时,就不再进行源站配置表的匹配,直接在内核态进行透传匹配表的匹配,然后根据匹配结果将客户端信息加入到报文中发送给目标源站服务器,或者不对转发报文进行额外处理,直接发送给目标源站服务器。
步骤304,内核态客户端信息写入单元根据匹配规则将转发报文在透传匹配表中进行匹配。
在本步骤中,可以根据时间或者访问频度对透传匹配表中记录的数据进行老化处理,例如当透传匹配表中数据存在的时间超过预定门限值时(此时透传匹配表中的每条数据还需要具有一时间戳的数据字段,用于记录该条记录写入的时间),可以将该数据进行删除,或者,还可以当所述透传匹配表中数据的访问频度低于某个门限值时(此时透传匹配表中的每条记录还需要具有一记录访问次数的字段),可以将该数据进行删除。
可以参考图4所示为本说明书实施例根据匹配规则进行转发报文匹配的流程图,在本图中描述了内核态客户端信息写入单元过滤所有接收到的转发报文,将转发报文在透传匹配表中进行匹配,如果没有匹配成功,则不对转发报文进行额外操作,具体包括,
步骤401,判断匹配规则。
在本步骤中,如果匹配规则为精确匹配,则进入步骤405,如果匹配规则为模糊匹配,则进入步骤402。
步骤402,当模糊匹配为第一匹配规则时,利用所述转发报文的目标源站服务器的IP地址、端口号(IP_C,Port_C),在所述透传匹配表中进行匹配,获取与该转发报文对应的客户端信息。
步骤403,当模糊匹配为第二匹配规则时,利用所述转发报文的目标源站服务器的IP地址 (IP_C),在所述透传匹配表中进行匹配,获取与该转发报文对应的客户端信息。
步骤404,当模糊匹配为第三匹配规则时,利用所述转发报文的七层代理服务器的IP地址(IP_B2),目标源站服务器的IP地址、端口号(IP_C,Port_C),在所述透传匹配表中进行匹配,获取与该转发报文对应的客户端信息。
所述模糊匹配的匹配规则还可以有其他组合方式,例如利用所述转发报文的七层代理服务器的IP地址(IP_B2)在所述透传匹配表中进行匹配等方式,在此不再赘述。
步骤405,匹配规则为精确匹配时,利用所述转发报文的七层代理服务器的IP地址、端口号(IP_B2、Port_B2),目标源站服务器的IP地址、端口号(IP_C,Port_C)以及通信协议,在所述透传匹配表中进行匹配,获取与该转发报文对应的客户端信息。
步骤305,内核态客户端信息写入单元在所述转发报文写入客户端信息。
在本步骤中,当转发报文的信息与所述透传匹配表中的转发报文信息匹配时,内核态客户端信息写入单元将客户端信息写入转发报文的TCP包头的选项字段中,并更新该转发报文的校验字段。
步骤306,七层代理服务器的内核态通过网络接口将转发报文发送给目标源站服务器。
在本步骤中,所述转发报文包括写入客户端信息的转发报文,也包括未写入客户端信息的转发报文,所述七层代理服务器的内核态通过网络接口将所有转发报文发送给相应的目标源站服务器。
如图5所示为本说明书实施例一种七层代理下客户端信息透传的装置的结构示意图,在本图中描述了七层代理服务器的结构,其中各单元可以使用软件方式实现,也可以使用写入特定处理逻辑的通用芯片实现,该装置具体包括用户态转发报文构建单元501、内核态客户端信息写入单元502和处于内核态中的发送单元503:
用户态转发报文构建单元501,用于在用户态,接收并解析客户端的报文,构建转发报文;
内核态客户端信息写入单元502,用于在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;
发送单元503,用于根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。
如图6所示为本说明书实施例提供的一种计算机设备,本说明书实施例中实现七层代理下客户端信息透传的方法可以运行于本实施例中的计算机设备,执行本说明书的上述方法。所述计算机设备602可以包括一个或多个处理器604,诸如一个或多个中央处理单元(CPU),每个处理单元可以实现一个或多个硬件线程。计算机设备602还可以包括任何存储器606,其用于存储诸如代码、设置、数据等之类的任何种类的信息。非限制性的,比如,存储器606可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备602的固定或可移除部件。在一种情况下,当处理器604执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备602可以执行相关联指令的任一操作。计算机设备602还包括用于与任何存储器交互的一个或多个驱动机构608,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备602还可以包括输入/输出模块610(I/O),其用于接收各种输入(经由输入设备612)和用于提供各种输出(经由输出设备614)。一个具体输出机构可以包括呈现设备616和相关联的图形用户接口(GUI)618。在其他实施例中,还可以不包括输入/输出模块610(I/O)、输入设备612以及输出设备614,仅作为网络中的一台计算机设备。计算机设备602还可以包括一个或多个网络接口620,其用于经由一个或多个通信链路622与其他设备交换数据。一个或多个通信总线624将上文所描述的部件耦合在一起。
通信链路622可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路622可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本说明书实施例还提供一种计算机可读指令,其中当处理器执行所述指令时,其中的程序使得处理器执行如前所述的方法。
应理解,在本说明书的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施例的实施过程构成任何限定。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本说明书中字符“/”,一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以意识到,结合本说明书中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本说明书所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本说明书实施例方案的目的。
另外,在本说明书各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中应用了具体实施例对本说明书的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本说明书的方法及其核心思想;同时,对于本领域的一般技术人员,依据本说明书的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本说明书的限制。
Claims (16)
1.一种七层代理下客户端信息透传的方法,其特征在于,应用于七层代理服务器,包括,
在用户态,接收并解析客户端的原始报文,构建转发报文;
在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;
根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。
2.根据权利要求1所述的七层代理下客户端信息透传的方法,其特征在于,在用户态,接收并解析客户端的原始报文,构建转发报文中进一步包括,
根据解析后的原始报文的信息以及转发报文的转发五元组信息,构建所述转发报文。
3.根据权利要求2所述的七层代理下客户端信息透传的方法,其特征在于,所述转发五元组信息包括,所述七层代理服务器的IP地址、端口号,目标源站服务器的IP地址、端口号,通信协议。
4.根据权利要求2所述的七层代理下客户端信息透传的方法,其特征在于,在用户态,接收并解析客户端的原始报文,构建转发报文中进一步包括,
通过所述用户态与内核态的交互接口,更新所述内核态中的透传匹配表。
5.根据权利要求4所述的七层代理下客户端信息透传的方法,其特征在于,所述用户态与内核态的交互接口至少包括以下其中之一或者组合:系统调用接口、共享内存和系统文件IO接口。
6.根据权利要求1所述的七层代理下客户端信息透传的方法,其特征在于,在所述内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息中进一步包括,
根据所述转发报文的至少部分信息,在透传匹配表中获取客户端信息;
在匹配成功的转发报文中写入所述客户端的客户端信息。
7.根据权利要求6所述的七层代理下客户端信息透传的方法,其特征在于,所述透传匹配表包括,转发报文的至少部分信息以及客户端信息。
8.根据权利要求7所述的七层代理下客户端信息透传的方法,其特征在于,在根据所述转发报文的至少部分信息,在透传匹配表中获取客户端信息之前进一步包括,
在所述用户态,根据目标源站服务器的域名,获取匹配规则;
在所述内核态,将转发报文按照所述匹配规则在所述透传匹配表中进行匹配,其中,所述匹配规则包括精确匹配或模糊匹配。
9.根据权利要求8所述的七层代理下客户端信息透传的方法,其特征在于,根据所述匹配规则在所述透传匹配表中进行匹配中进一步包括,
所述匹配规则为精确匹配时,利用所述转发报文的七层代理服务器的IP地址、端口号,目标源站服务器的IP地址、端口号以及通信协议,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。
10.根据权利要求8所述的七层代理下客户端信息透传的方法,其特征在于,根据所述匹配规则在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息中进一步包括,
所述匹配规则为模糊匹配时,至少利用所述转发报文的七层代理服务器的IP地址在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息;或者,
至少利用所述转发报文的目标源站服务器的IP地址,在所述透传匹配表中进行匹配,获取与所述转发报文对应的客户端信息。
11.根据权利要求8所述的七层代理下客户端信息透传的方法,其特征在于,在所述用户态,根据目标源站服务器的域名,获取匹配的规则中还包括,
根据每个源站服务器的配置生成源站配置表,其中包括由源站服务器配置的需要写入客户端信息的转发报文的特征;
将所述原始报文的信息在所述源站配置表中进行匹配;
将匹配成功的与所述原始报文对应生成的转发报文的转发五元组信息、客户端信息以及匹配规则传送到内核态的透传匹配表进行更新。
12.根据权利要求1所述的七层代理下客户端信息透传的方法,其特征在于,在所述内核态,将至少部分转发报文写入所述客户端的客户端信息中进一步包括,
所述客户端信息包括所述客户端的IP地址和/或端口号。
13.根据权利要求12所述的七层代理下客户端信息透传的方法,其特征在于,在所述内核态,将至少部分转发报文写入所述客户端的客户端信息中进一步包括,
在所述至少部分转发报文的TCP报文头的选项中写入所述客户端信息。
14.一种七层代理下客户端信息透传的装置,其特征在于包括,
用户态转发报文构建单元,用于在用户态,接收并解析客户端的报文,构建转发报文;
内核态客户端信息写入单元,用于在内核态,将与透传匹配表匹配的转发报文写入所述客户端的客户端信息;
发送单元,用于根据所述转发报文的转发五元组,将所述内核态中的转发报文进行发送。
15.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述权利要求1-13中任一项的方法。
16.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述权利要求1-13任一项的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311655315.5A CN117354368A (zh) | 2023-12-05 | 2023-12-05 | 七层代理下客户端信息透传方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311655315.5A CN117354368A (zh) | 2023-12-05 | 2023-12-05 | 七层代理下客户端信息透传方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117354368A true CN117354368A (zh) | 2024-01-05 |
Family
ID=89367041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311655315.5A Pending CN117354368A (zh) | 2023-12-05 | 2023-12-05 | 七层代理下客户端信息透传方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117354368A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120144189A1 (en) * | 2009-08-11 | 2012-06-07 | Zhong Zhen | Wlan authentication method, wlan authentication server, and terminal |
US20130094363A1 (en) * | 2010-06-04 | 2013-04-18 | Huawei Technologies Co., Ltd. | Method, network device, and network system for processing data service |
CN103201989A (zh) * | 2012-08-09 | 2013-07-10 | 华为技术有限公司 | 控制数据传输的方法、装置和系统 |
CN106230898A (zh) * | 2016-07-21 | 2016-12-14 | 网宿科技股份有限公司 | 网络系统、代理服务器及其应用的数据处理方法及系统 |
CN116938564A (zh) * | 2016-12-22 | 2023-10-24 | Nicira股份有限公司 | 在主机上收集和处理上下文属性 |
-
2023
- 2023-12-05 CN CN202311655315.5A patent/CN117354368A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120144189A1 (en) * | 2009-08-11 | 2012-06-07 | Zhong Zhen | Wlan authentication method, wlan authentication server, and terminal |
US20130094363A1 (en) * | 2010-06-04 | 2013-04-18 | Huawei Technologies Co., Ltd. | Method, network device, and network system for processing data service |
CN103201989A (zh) * | 2012-08-09 | 2013-07-10 | 华为技术有限公司 | 控制数据传输的方法、装置和系统 |
CN106230898A (zh) * | 2016-07-21 | 2016-12-14 | 网宿科技股份有限公司 | 网络系统、代理服务器及其应用的数据处理方法及系统 |
CN116938564A (zh) * | 2016-12-22 | 2023-10-24 | Nicira股份有限公司 | 在主机上收集和处理上下文属性 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220030095A1 (en) | Methods and apparatus for sharing and arbitration of host stack information with user space communication stacks | |
JP4307448B2 (ja) | 分散オブジェクトを単一表現として管理するシステムおよび方法 | |
US7483384B2 (en) | System and method for monitoring network traffic | |
US8856884B2 (en) | Method, apparatus, signals, and medium for managing transfer of data in a data network | |
US7386628B1 (en) | Methods and systems for processing network data packets | |
US20150156183A1 (en) | System and method for filtering network communications | |
US8291486B2 (en) | Gateway device having socket library for monitoring, communication method of gateway device having socket library for monitoring, and communication program of gateway device having socket library for monitoring | |
CN112104754B (zh) | 网络代理方法、系统、装置、设备及存储介质 | |
US8195806B2 (en) | Managing remote host visibility in a proxy server environment | |
CN113228576B (zh) | 一种处理网络中的数据的方法及装置 | |
US7409432B1 (en) | Efficient process for handover between subnet managers | |
US20150071085A1 (en) | Network gateway for real-time inspection of data frames and identification of abnormal network behavior | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN112395014A (zh) | 网关服务实现方法、装置、设备及存储介质 | |
US8416754B2 (en) | Network location based processing of data communication connection requests | |
CN112968919A (zh) | 一种数据处理方法、装置、设备和存储介质 | |
CN117354368A (zh) | 七层代理下客户端信息透传方法、装置、设备及存储介质 | |
CN113905109B (zh) | 零信任网络数据传输方法、装置、设备及计算机存储介质 | |
US20030204586A1 (en) | Intelligent data replicator | |
CN101902449A (zh) | 网络设备之间持续http连接的仿真 | |
CN115516842A (zh) | 编排代理服务 | |
CN112910910A (zh) | Opcda协议报文处理方法、装置、设备以及存储介质 | |
CN113810515B (zh) | 客户端的真实ip地址的识别方法、系统和电子装置 | |
CN113273140A (zh) | 用于管理网络通信会话的系统和方法 | |
US11979457B2 (en) | Managing network services using multipath protocols |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |