System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及访问控制,尤其涉及一种基于nat的访问控制方法、nat设备以及计算机可读存储介质。
技术介绍
1、目前,在nat(network address translation;网络地址转换)环境中,由于nat前后的网络地址不同,为保证客户端和oracle rac(real application clusters;实时应用集群)的集群节点ip之间网络可达,那么上述响应报文在经过nat设备后,则需要将响应第2包中承载的节点ip地址改为客户端所属网络的ip地址,同时需要修正响应第1包中的记录响应第2包承载的重定向数据长度,但在修改响应第1包中的节点ip地址长度时,并不知道要改成多少,因为当前还未收到第2包,并不知道修改前的节点ip是什么;同理,端口修改造成的报文长度变化也无法预先得知;且如果只修改响应第2包,不修正响应第1包,那么客户端会因为响应第1包中的长度错误而无法正确解析响应第2包获取节点ip和端口,也就无法与节点ip建立连接,导致nat场景下,oracle rac访问失败,导致nat设备无法支持nat场景下oracle rac集群服务的正常访问,即客户端无法与集群节点ip建立连接,网络不可达。
技术实现思路
1、针对现有技术中存在的上述技术问题,本申请提供了一种基于nat的访问控制方法、nat设备以及计算机可读存储介质,其为oracle rac集群服务扩展了nat使用场景,让oracle rac集群服务的负载均衡能力在nat场景下得以充分发挥。
2、本申请实施例
3、步骤s101:将第一请求报文发送至数据库集群,以经由所述数据库集群确定空闲集群节点;其中,所述第一请求报文为基于客户端发送的第二请求报文生成的。
4、步骤s102:获取所述数据库集群的空闲集群节点基于所述第一请求报文生成的响应数据;其中,所述响应数据包括第一数据包和第二数据包,所述第一数据包包含数据长度,所述第二数据包包含重定向数据。
5、步骤s103:对所述第一数据包和第二数据包分别进行调整操作,并将调整后的所述第一数据包和第二数据包依序发给所述客户端。
6、步骤s104:存储所述数据库集群的空闲集群节点的第一标识信息和客户端的第二标识信息的映射关系。
7、步骤s105:在接收到所述客户端发送的连接请求的情况下,基于所述映射关系确定将所述连接请求转发至所述数据库集群的空闲集群节点。
8、在一些实施例中,对所述第一数据包进行以下调整操作步骤s201至步骤s202。
9、步骤s201:将所述第一数据包中的数据长度修改为目标长度。
10、步骤s202:将修改后的所述第一数据包发送至所述客户端。
11、在一些实施例中,对所述第二数据包进行以下调整操作步骤s301至步骤s302。
12、步骤s301:基于所述目标长度对所述第二数据包中的重定向数据进行数据填充,以生成填充后的所述第二数据包。
13、步骤s302:将填充后的所述第二数据包发送至所述客户端。
14、在一些实施例中,在步骤s105的所述基于所述映射关系确定将所述连接请求转发至所述数据库集群的空闲集群节点之后,所述方法还包括步骤s401至步骤s402。
15、步骤s401:接收所述数据库集群基于所述连接请求反馈的数据库数据。
16、步骤s402:基于所述映射关系对所述数据库数据进行修改,并将修改后的所述数据库数据发送至所述客户端。
17、在一些实施例中,在步骤s101的所述将第一请求报文发送至数据库集群之前,所述方法还包括:
18、接收所述客户端发送的第二请求报文;
19、对所述第二请求报文进行地址转换,使所述第二请求报文中的第二标识信息改为所述数据库集群的第一标识信息,以生成发送至所述数据库集群的第一请求报文。
20、在一些实施例中,所述方法还包括:
21、确定对应所述nat设备的ip地址长度和端口长度;其中,所述ip地址长度为与所述nat设备连接的数据库集群和客户端之间的地址长度极限差值,所述端口长度为与所述nat设备连接的数据库集群和客户端之间的端口长度极限差值;
22、基于所述ip地址长度和端口长度确定所述目标长度。
23、在一些实施例中,步骤s301的所述基于所述目标长度对所述第二数据包中的重定向数据进行数据填充,具体包括:
24、利用空白字符将所述第二数据包中的重定向数据长度填充至所述目标长度。
25、在一些实施例中,所述第一标识信息和第二标识信息分别包括端口信息和地址信息。步骤s105的所述基于所述映射关系确定将所述连接请求转发至所述数据库集群的空闲集群节点,具体包括:
26、基于所述映射关系将所述连接请求中的目的地址修改为所述第一标识信息中的地址信息;
27、基于所述映射关系将所述连接请求中的目的端口修改为所述第一标识信息中的端口信息。
28、本申请实施例还提供了一种nat设备,nat设备包括发送模块、获取模块、调整模块、存储模块以及确定模块。发送模块配置为将第一请求报文发送至数据库集群,以经由所述数据库集群确定空闲集群节点;其中,所述第一请求报文为基于客户端发送的第二请求报文生成的。获取模块配置为获取所述数据库集群的空闲集群节点基于所述第一请求报文生成的响应数据;其中,所述响应数据包括第一数据包和第二数据包,所述第一数据包包含数据长度,所述第二数据包包含重定向数据。调整模块配置为对所述第一数据包和第二数据包分别进行调整操作,并将调整后的所述第一数据包和第二数据包依序发给所述客户端。存储模块配置为存储所述数据库集群的空闲集群节点的第一标识信息和客户端的第二标识信息的映射关系。确定模块配置为在接收到所述客户端发送的连接请求的情况下,基于所述映射关系确定将所述连接请求转发至所述数据库集群的空闲集群节点。
29、本申请实施例还提供了一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的基于nat的访问控制方法的步骤。
30、与现有技术相比,本申请实施例的有益效果在于:本申请通过将第一请求报文发送至数据库集群,以经由数据库集群确定空闲集群节点,并且nat设备能够对第一数据包和第二数据包分别进行调整操作,还能够存储数据库集群的第一标识信息和客户端的第二标识信息的映射关系,实现了数据库集群能够通过根据负载均衡算法确定的空闲集群节点与客户端之间进行数据交互,为oracle rac集群服务扩展了nat使用场景,让oracle rac集群服务的负载均衡能力在nat场景下得以充分发挥。
本文档来自技高网...【技术保护点】
1.一种基于NAT的访问控制方法,其特征在于,应用于NAT设备,所述方法包括:
2.根据权利要求1所述的基于NAT的访问控制方法,其特征在于,对所述第一数据包进行以下调整操作:
3.根据权利要求2所述的基于NAT的访问控制方法,其特征在于,对所述第二数据包进行以下调整操作:
4.根据权利要求1所述的基于NAT的访问控制方法,其特征在于,在所述基于所述映射关系确定将所述连接请求转发至所述数据库集群的空闲集群节点之后,所述方法还包括:
5.根据权利要求1所述的基于NAT的访问控制方法,其特征在于,在所述将第一请求报文发送至数据库集群之前,所述方法还包括:
6.根据权利要求2所述的基于NAT的访问控制方法,其特征在于,所述方法还包括:
7.根据权利要求3所述的基于NAT的访问控制方法,其特征在于,所述基于所述目标长度对所述第二数据包中的重定向数据进行数据填充,具体包括:
8.根据权利要求1所述的基于NAT的访问控制方法,其特征在于,所述第一标识信息和第二标识信息分别包括端口信息和地址信息,
10.一种计算机可读存储介质,存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的基于NAT的访问控制方法的步骤。
...【技术特征摘要】
1.一种基于nat的访问控制方法,其特征在于,应用于nat设备,所述方法包括:
2.根据权利要求1所述的基于nat的访问控制方法,其特征在于,对所述第一数据包进行以下调整操作:
3.根据权利要求2所述的基于nat的访问控制方法,其特征在于,对所述第二数据包进行以下调整操作:
4.根据权利要求1所述的基于nat的访问控制方法,其特征在于,在所述基于所述映射关系确定将所述连接请求转发至所述数据库集群的空闲集群节点之后,所述方法还包括:
5.根据权利要求1所述的基于nat的访问控制方法,其特征在于,在所述将第一请求报文发送至数据库集群之前,所述方法还包...
【专利技术属性】
技术研发人员:王越,温卓然,郎卫鹏,
申请(专利权)人:北京天融信网络安全技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。