System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及云网络信息,具体涉及一种云网络客户端源地址的解析系统及方法。
技术介绍
1、相关技术中云网络存在云网关对客户端向服务端的访问请求进行full nat并转发,而客户端ip在经过云网关的转发之后,服务端只能看到对应网关上的snat pool的地址,无法知道真实的客户端ip地址(源地址),但是在一些业务场景中服务端需要知道访问该服务的真实的客户端ip地址。
2、当前现有技术的方案有两种,第一种,业务为七层http协议时,通过七层负载均衡(例如nginx),使用x-forward-for的方式携带客户端ip,但是这种方案的要求业务必须为http业务类型,且xff方案依赖于七层负载均衡器,中间件需要在服务端配置才能传递xff头,开发成本高;第二种,在业务为ipv4tcp协议时,可以采用toa,且需要对应云网络网关做二次开发支持toa封装,以及也需要在linux的服务端加载toa模块获取信息,开发成本高。
3、以上现有方案在特定场景下是能够获取客户端真实ip地址,但是仅适用于特定协议(http或tcp),在较低的开发成本下,获取客户端真实ip地址时无法适配所有其他协议业务场景的需求。
技术实现思路
1、有鉴于此,本专利技术提供了一种云网络客户端源地址的解析系统及方法,以解决如何在保证低开发成本下,获取客户端真实ip地址时能有效适配多种协议业务场景的需求。
2、第一方面,本专利技术提供了一种云网络客户端源地址的解析系统,所述系统包括客户端、云网关
3、其中,所述客户端,用于生成访问服务端的访问请求并发送至云网关端;
4、所述云网关端,用于接收所述客户端发送的访问请求,并基于所述访问请求做full nat处理,判断连接跟踪会话列表中是否存在与之匹配的目标连接跟踪会话;其中,所述连接跟踪会话列表用于存储客户端历史访问服务端时已生成的多个连接跟踪会话;若不存在,则根据所述访问请求生成连接跟踪会话,并根据所述连接跟踪会话生成ovs流表信息,根据所述ovs流表信息对访问请求中的源mac地址进行修改并转发至所述服务端;其中,所述连接跟踪会话包括客户端的ip地址,根据所述连接跟踪会话生成ovs流表信息具体包括:按照预设的地址标识数据转换规则,将所述连接跟踪会话中的客户端的ip地址进行数据转换,得到转换后的mac地址,匹配并存储至ovs流表中的修改源mac地址字段,生成用于修改源mac地址的ovs流表信息;若存在,则使用已生成的连接跟踪会话和ovs流表信息,并根据所述ovs流表信息对访问请求中的源mac地址进行修改并转发至所述服务端;
5、所述服务端,用于接收并解析修改后的访问请求,按照预设解析规则对访问请求中的源mac地址进行逆运算得到所述客户端的ip地址。
6、本专利技术实施例提供的云网络客户端源地址解析系统,通过在云网关端基于客户端访问请求创建连接跟踪会话,按照预设的地址标识数据转换规则将客户端ip地址转换为mac地址生成用于修改源mac地址的ovs流表,通过ovs流表修改请求中的源mac地址转发到服务端,再由服务端按照预设解析规则进行逆运算还原客户端ip地址的技术方案,避免了相关技术中针对http协议需配置nginx负载均衡传递xff头信息,以及tcp协议需要网关和服务端进行二次开发的技术缺陷。仅需在云网关端基于ovs基础设施进行流表信息生成,无需对网关进行大量定制开发,服务端也仅需按预设规则逆运算解析源地址,开发成本大大降低。同时,由于服务器解析过程不依赖于具体的数据传输协议,可以直接对数据包中的数据进行解析,因此在保证低开发成本的同时,还实现了协议无关性,显著提高了系统的协议适配能力。
7、第二方面,本专利技术提供了一种云网络客户端源地址的解析方法,应用于云网络客户端源地址的解析系统的云网关端,包括:
8、接收所述客户端发送的访问请求,并基于所述访问请求做full nat处理,判断连接跟踪会话列表中是否存在与之匹配的目标连接跟踪会话;其中,所述连接跟踪会话列表用于存储客户端历史访问服务端时已生成的多个连接跟踪会话;
9、若不存在,则根据所述访问请求生成连接跟踪会话,并根据所述连接跟踪会话生成ovs流表信息,根据所述ovs流表信息对访问请求中的源mac地址进行修改并转发至所述服务端;其中,所述连接跟踪会话包括客户端的ip地址,根据所述连接跟踪会话生成ovs流表信息具体包括:按照预设的地址标识数据转换规则,将所述连接跟踪会话中的客户端的ip地址进行数据转换,得到转换后的mac地址,匹配并存储至ovs流表中的修改源mac地址字段,生成用于修改源mac地址的ovs流表信息;
10、若存在,则使用已生成的连接跟踪会话和ovs流表信息,并根据所述ovs流表信息对访问请求中的源mac地址进行修改并转发至所述服务端。
11、本专利技术实施例通过判断连接跟踪会话列表中是否存在匹配的目标连接跟踪会话,智能地避免了重复创建连接会话的过程。当无匹配会话时,系统根据访问请求生成新的连接跟踪会话并据此生成ovs流表信息,确保了流表信息的准确性与时效性;而当存在匹配会话时,则直接利用已有会话和已有ovs流表信息,大幅缩短了处理时间。此外,方法将生成的ovs流表对请求的源mac地址进行修改并转发至服务端,不仅简化了网关的开发流程,降低了二次开发的复杂性,还摆脱了对特定通信协议的依赖,极大地降低了开发成本。更重要的是,由于流表信息的生成不局限于特定协议类型,相比相关技术的xff或toa方案,本专利技术展现出更强的协议兼容性,能够广泛支持多种业务场景,从而在低开发成本的前提下,有效提升了地址解析的协议适配性。
12、在一种可选的实施方式中,所述连接跟踪会话中还包括协议、源ip地址、目的ip地址、源端口信息和目的端口信息,所述根据所述连接跟踪会话生成ovs流表信息具体包括:
13、将所述连接跟踪会话中的访问协议信息与所述ovs流表中的网络协议字段匹配,并将访问协议信息存储至网络协议字段中;
14、将所述连接跟踪会话中的源ip地址与所述ovs流表中的源网络地址字段匹配,并将所述源ip地址存储至源网络地址字段中;
15、将所述连接跟踪会话中的目的ip地址与所述ovs流表中的目的网络地址字段匹配,并将所述目的ip地址存储至目的网络地址字段中;
16、将所述连接跟踪会话中的源端口信息与所述ovs流表中的源端口字段匹配,并将所述源端口信息存储至源端口字段中;
17、将所述连接跟踪会话中的目标端口信息与所述ovs流表中的目标端口字段匹配,并将所述目标端口信息存储至目标端口字段中。
18、本专利技术实施例中连接跟踪会话中还包括访问协议、源ip地址、目的ip地址、源端口和目的端口信息,将连接跟踪会话中的各项信息与ovs流表中的相应字段进行匹配和存储,通过预设的地址标识数据转换规则提供了统一的数据处理方式,降低了数据解析模块的开发成本,而且保证了源地址数据的安全本文档来自技高网...
【技术保护点】
1.一种云网络客户端源地址的解析系统,其特征在于,所述系统包括客户端、云网关端以及服务端;
2.一种云网络客户端源地址的解析方法,其特征在于,应用于云网络客户端源地址的解析系统的云网关端,包括:
3.根据权利要求2所述的方法,其特征在于,所述连接跟踪会话中还包括协议、源IP地址、目的IP地址、源端口信息和目的端口信息,所述根据所述连接跟踪会话生成OVS流表信息具体包括:
4.根据权利要求2所述的方法,其特征在于,所述按照预设的地址标识数据转换规则,将所述连接跟踪会话中的客户端的IP地址进行数据转换,具体包括:
5.一种云网络客户端源地址的解析方法,其特征在于,应用于云网络客户端源地址的解析系统的服务端,包括:
6.根据权利要求5所述的方法,其特征在于,所述接收并解析修改后的访问请求,按照预设解析规则对访问请求中的源MAC地址进行逆运算得到所述客户端的IP地址,具体包括:
7.一种计算机设备,其特征在于,包括:
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计
9.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求2-4或权利要求5-6中任一项所述的云网络客户端源地址的解析方法。
...【技术特征摘要】
1.一种云网络客户端源地址的解析系统,其特征在于,所述系统包括客户端、云网关端以及服务端;
2.一种云网络客户端源地址的解析方法,其特征在于,应用于云网络客户端源地址的解析系统的云网关端,包括:
3.根据权利要求2所述的方法,其特征在于,所述连接跟踪会话中还包括协议、源ip地址、目的ip地址、源端口信息和目的端口信息,所述根据所述连接跟踪会话生成ovs流表信息具体包括:
4.根据权利要求2所述的方法,其特征在于,所述按照预设的地址标识数据转换规则,将所述连接跟踪会话中的客户端的ip地址进行数据转换,具体包括:
5.一种云网络客户端源地址的解析方法,其特征在于,应用于云网络客户端...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。