一种地址的转换方法、装置、设备及存储介质与流程

文档序号:20581437发布日期:2020-04-29 01:30阅读:111来源:国知局
一种地址的转换方法、装置、设备及存储介质与流程

本申请涉及通信技术领域,具体而言,涉及一种地址的转换方法、装置、设备及存储介质。



背景技术:

动态nat(networkaddresstranslation,网络地址转换)是指不建立内部的源ip(internetprotocol,互联网协议)地址和外部的全局地址的一对一的固定对应关系,而动态的建立源ip地址与nat地址池中的各全局地址的对应关系。比如,当第一网络中的主机需要通过动态nat而访问第二网络时,nat网关会在nat地址池中随机选择当前未使用的全局地址对主机的源ip地址进行转换。由于对全局地址的选择是随机,导致同一源ip地址每一次转换后的全局地址可能都是不同的。

而在某些场景中,比如第一网络中的主机通过nat网关访问第二网络中需要认证的平台时,则需要nat网关将用户的源ip地址每次都转换成同一个全局地址,以确保认证成功。因此,在这种场景下,动态nat方式显然无法适用。

为解决此问题,目前的方式是nat网关将主机的源ip地址与其对应的一个全局地址记录到映射关系表中,这样nat网关通过遍历映射关系表便可以实现将用户的源ip地址每次都转换成同一个全局地址。但这种方式的缺陷在于,nat网关需要不断维护该映射关系表,额外消耗设备内存及计算资源。同时,由于映射关系表存在容量上限,导致其记录的地址有局限,不灵活。



技术实现要素:

本申请实施例的目的在于提供一种地址的转换方法、装置、设备及存储介质,用以在不额外消耗设备内存及计算资源的基础上,实现灵活的地址固定转换。

第一方面,本申请实施例提供了一种地址的转换方法,应用于网络安全设备,所述方法包括:

获取第一网络中的网络设备发往第二网络的数据报文,并获取所述数据报文携带的所述网络设备的源ip地址;通过对所述源ip地址进行计算,确定出预设的地址池中与所述源ip地址对应的全局地址;其中,对于同一源ip地址,计算的方式相同;将所述数据报文中的所述源ip地址转换成所述全局地址,获得转换后的数据报文;将所述转换后的数据报文发送到所述第二网络中。

在本申请实施例中,针对同一个源ip地址,由于网络安全设备每一次都是采用相同的计算方式,故使得每次确定出的全局地址都是同一个,无需建立映射关系表,便可以实现灵活的将同一个源ip地址每次都转换成同一个全局地址。同时,也正由于无需建立映射关系表,故无需额外消耗设备内存及计算资源来进行表项维护。

结合第一方面,在第一种可能的实现方式中,通过对所述源ip地址进行计算,确定出预设的地址池中与所述源ip地址对应的全局地址,包括:

通过对所述源ip地址进行计算,确定出所述地址池中与所述源ip地址对应的地址偏移;获取所述地址池中位于所述地址偏移处的所述全局地址。

在本申请实施例中,通过计算出地址偏移,那么通过地址偏移能够快速地找到与之对应的全局地址。

结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,通过对所述源ip地址进行计算,确定出所述地址池中与所述源ip地址对应的地址偏移,包括:

利用所述地址池中的地址个数对所述源ip地址对应的整型数取余,确定出源ip地址的余数,其中,所述余数用于表示所述地址偏移。

在本申请实施例中,通过取余来将源ip地址缩小到地址池的范围内,能够准确的计算出源ip地址对应的地址偏移。

结合第一方面的第二种可能的实现方式,在第三种可能的实现方式中,利用所述地址池中的地址个数对所述源ip地址对应的整型数取余,确定出源ip地址的余数,包括:

利用所述地址个数对所述整型数取余,获得源ip地址的初始余数,其中,所述初始余数表示出的地址偏移位于所述地址池的范围以外;利用所述地址个数对所述初始余数取余,获得所述源ip地址的余数。

在本申请实施例中,当第一次取余获得的地址偏移位于地址池的范围以外时,还可以对第一次取余获得的地址偏移再次取余,以确保最终确定出地址偏移位于地址池的范围内,从而实现正确的计算出地址偏移。

结合第一方面,在第四种可能的实现方式中,在获取第一网络中的网络设备发往第二网络的数据报文,并获取所述数据报文携带的所述网络设备的源ip地址之后,所述方法还包括:

判断所述源ip地址需要转换成固定的全局地址还是随机的全局地址,其中,在确定所述源ip地址需要转换成固定的全局地址时,执行所述通过对所述源ip地址进行计算,确定出预设的地址池中与所述源ip地址对应的全局地址的步骤。

在本申请实施例中,通过判断当前的转换方式,可以实现在转换成固定的全局地址以及转换成随机的全局地址之间的灵活切换转换方式。

结合第一方面的第四种可能的实现方式,在第五种可能的实现方式中,在判断所述源ip地址需要转换成固定的全局地址还是随机的全局地址之后,所述方法还包括:

通过对所述源ip地址以及当前的常量参数进行计算,确定出预设的地址池中与所述源ip地址以及所述当前的常量参数均对应的全局地址,其中,所述当前的常量参数与历史中计算全局地址所使用的常量参数不同;将所述数据报文中的所述源ip地址转换成所述全局地址,获得转换后的数据报文;将所述转换后的数据报文发送到所述第二网络中。

在本申请实施例中,由于每一次参与计算的常量参数都不同,使得每次确定出的全局地址也对应不同,故实现了才采用同一种计算的方式的基础上实现动态的地址转换。

结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,在通过对所述源ip地址以及当前的常量参数进行固定映射的计算之前,所述方法还包括:

将历史中最近一次计算全局地址所使用的常量参数自加预设值,获得所述当前的常量参数。

在本申请实施例中,通过自加预设值的方式,可以快速便捷的更新常量参数,使得每一次参与计算的常量参数都不同。

结合第一方面的第五种可能的实现方式,在第七可能的实现方式中,在通过对所述源ip地址以及当前的常量参数进行固定映射的计算之前,所述方法还包括:

随机生成所述当前的常量参数。

在本申请实施例中,通过随机生成这种方式简单便捷的方式,可以简单便捷的实现每次都获得不同的常量参数。

第二方面,本申请实施例提供了一种地址的转换装置,应用于网络安全设备,所述装置包括:

数据收发模块,用于获取第一网络中的网络设备发往第二网络的数据报文,并获取所述数据报文携带的所述网络设备的源ip地址;

数据处理模块,用于通过对所述源ip地址进行计算,确定出预设的地址池中与所述源ip地址对应的全局地址;其中,对于同一源ip地址,计算的方式相同;将所述数据报文中的所述源ip地址转换成所述全局地址,获得转换后的数据报文;

所述数据收发模块,还用于将所述转换后的数据报文发送到所述第二网络中。

结合第二方面,在第一种可能的实现方式中,所述数据处理模块,用于通过对所述源ip地址进行计算,确定出所述地址池中与所述源ip地址对应的地址偏移;获取所述地址池中位于所述地址偏移处的所述全局地址。

结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述数据处理模块,用于利用所述地址池中的地址个数对所述源ip地址对应的整型数取余,确定出源ip地址的余数,其中,所述余数用于表示所述地址偏移。

结合第二方面的第二种可能的实现方式,在第三种可能的实现方式中,所述数据处理模块,用于利用所述地址个数对所述整型数取余,获得源ip地址的初始余数,其中,所述初始余数表示出的地址偏移位于所述地址池的范围以外;利用所述地址个数对所述初始余数取余,获得所述源ip地址的余数。

结合第二方面,在第四种可能的实现方式中,在所述数据收发模块获取第一网络中的网络设备发往第二网络的数据报文,并获取所述数据报文携带的所述网络设备的源ip地址之后,所述数据处理模块,还用于判断所述源ip地址需要转换成固定的全局地址还是随机的全局地址,其中,在确定所述源ip地址需要转换成固定的全局地址时,所述数据处理模块用于执行所述通过对所述源ip地址进行计算,确定出预设的地址池中与所述源ip地址对应的全局地址的步骤。

结合第二方面的第四种可能的实现方式,在第五种可能的实现方式中,在所述数据处理模块判断所述源ip地址需要转换成固定的全局地址还是随机的全局地址之后,所述数据处理模块,还用于在确定所述源ip地址需要转换成随机的全局地址时,通过对所述源ip地址以及当前的常量参数进行计算,确定出预设的地址池中与所述源ip地址以及所述当前的常量参数均对应的全局地址,其中,所述当前的常量参数与历史中计算全局地址所使用的常量参数不同;将所述数据报文中的所述源ip地址转换成所述全局地址,获得转换后的数据报文;将所述转换后的数据报文发送到所述第二网络中。

结合第二方面的第五种可能的实现方式,在第六种可能的实现方式中,在所述数据处理模块通过对所述源ip地址以及当前的常量参数进行固定映射的计算之前,所述数据处理模块,还用于将历史中最近一次计算全局地址所使用的常量参数自加预设值,获得所述当前的常量参数。

结合第二方面的第五种可能的实现方式,在第七可能的实现方式中,在所述数据处理模块通过对所述源ip地址以及当前的常量参数进行固定映射的计算之前,所述数据处理模块,还用于随机生成所述当前的常量参数。

第三方面,本申请实施例提供了一种网络安全设备,所述设备包括:存储器、通信接口、与所述存储器和所述通信接口连接的处理器;

所述存储器,用于存储的程序;

所述通信接口,用于获取第一网络中的网络设备发往第二网络的数据报文;

所述处理器,用于运行所述程序,以对所述数据报文执行如第一方面或第一方面的任一种实现方式所述的地址的转换方法,以将转换后的数据报文发到所述第二网络中。

第四方面,本申请实施例提供了一种具有计算机可执行的非易失程序代码的计算机可读存储介质,所述程序代码使所述计算机执行如第一方面或第一方面的任一种实现方式所述的地址的转换方法

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1为本申请实施例提供的一种地址的转换方法的第一流程图;

图2为本申请实施例提供的一种地址的转换方法的第二流程图;

图3为本申请实施例提供的一种网络安全设备的结构框图;

图4为本申请实施例提供的一种地址的转换装置的结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

请参阅图1,为本申请实施例提供了一种地址的转换方法,该地址的转换方法可以由网络安全设备例如nat网关或数据保护网关等设备执行,该地址的转换方法可以包括:

步骤s100:获取第一网络中的网络设备发往第二网络的数据报文,并获取数据报文携带的网络设备的源ip地址。

步骤s200:通过对源ip地址进行计算,确定出预设的地址池中与源ip地址对应的全局地址;其中,对于同一源ip地址,计算的方式相同。

步骤s300:将数据报文中的源ip地址转换成全局地址,获得转换后的数据报文。

步骤s400:将转换后的数据报文发送到第二网络中。

下面将结合示例对上述流程进行详细说明。

步骤s100:获取第一网络中的网络设备发往第二网络的数据报文,并获取数据报文携带的网络设备的源ip地址。

本实施例中,网络安全设备可以部署在第一网络中、也可以部署在第二网络中或者还可以部署在第一网络与第二网络之间,其中,第一网络和第二网络可以是两个具有访问关系的子网;例如第一网络是一个局域网,而第二网络则是该局域网需要访问的互联网;又例如第一网络和第二网络可以是两个不同对象各自的局域网,比如第一网络是企业a的企业网,而第二网络则是企业b的企业网。

当第一网络中的网络设备比如终端或者服务器需要访问第二网络,该网络设备可以向第二网络发送数据报文。而基于网络安全设备的上述部署情况,网络安全设备可以获取到该网络设备发送的数据报文。并且,通过对该数据报文进行解封装,网络安全设备还可以获取到该数据报文中携带的该网络设备的源ip地址。

此外,在获取到数据报文后,网络安全设备还可以判断该数据报文的源ip地址需要转换成固定的全局地址还是随机的全局地址。

本实施例中,作为判断的一种示例方式,网络安全设备可以判断自身当前处于固定的全局地址转换模式还是处于随机的全局地址转换模式。其中,若确定当前处于固定的全局地址转换模式,则说明该源ip地址需要转换成固定的全局地址,反之,则说明该源ip地址需要转换成随机的全局地址。

而作为判断的另一种示例方式,网络安全设备还可以通过解析获取到该数据报文携带的目的ip地址,并通过该目的ip地址确定出该目的ip地址对应的目的设备。这样,网络安全设备可以进一步判断目的设备适配的地址是固定的全局地址还是随机的全局地址。其中,若确定目的设备适配的地址是固定的全局地址,则说明该源ip地址需要转换成固定的全局地址,反之,则说明该源ip地址需要转换成随机的全局地址。

进一步的,若通过判断确定该源ip地址需要转换成固定的全局地址,那么,网络安全设备可以继续执行步骤s200。另外,若通过判断确定该源ip地址需要转换成随机的全局地址,那么网络安全设备对应执行的流程将在后续说明。

步骤s200:通过对源ip地址进行计算,确定出预设的地址池中与源ip地址对应的全局地址;其中,对于同一源ip地址,计算的方式相同。

当网络设备需要以固定的全局地址访问第二网络,即网络设备每次都以同一个全局地址访问第二网络,那么网络安全设备在本次获取到网络设备的源ip地址后,网络安全设备可以计算本次获取到的源ip地址,以获得本次的全局地址。其中,由于对于同一源ip地址,网络安全设备计算的方式相同,故本次的全局地址与历史中获得的全局地址相同,从而实现通过计算的方式将源ip地址转换成固定的全局地址。

具体来说,网络安全设备中预设有一个地址池,该地址池中包含适配第二网络的各种全局地址,网络安全设备通过对本次获得的源ip地址进行计算,可以确定出地址池中与本次获得的源ip地址对应的地址偏移。进而,网络安全设备根据该地址偏移,便可以在地址池中该地址偏移处获取与本次获得的源ip地址对应的全局地址。显然,对于同一个源ip地址的来说,由于每次参与计算都是对同一个源ip地址,且采用相同计算可以确保每次计算的过程都相同,故使得每次计算都可以确定出同一个地址偏移,进而使得每次转换都可以获得同一个全局地址。

本实施例中,作为进行计算的示例性方式,网络安全设备可以先将源ip地址转换成该源ip地址对应的整型数,然后再利用地址池中的地址个数对该源ip地址对应的整型数进行取余计算,从而确定出该源ip地址的余数,而该源ip地址的余数则可以用于表示源ip地址对应的地址偏移。

需要指出的是,取余结果的大小通常取决于地址池中的地址个数。因此,在地址池中的地址个数的较少时,初次利用地址池中的地址个数对该源ip地址对应的整型数进行取余计算,所获得结果往往是一个初始余数,且该初始余数通常所表示的地址偏移通常位于地址池的范围以外。因此,还可以利用地址池中的地址个数继续对上次取余获得的余数进行取余计算,直至获得所表示的地址偏移位于地址池的范围以内的最终余数。例如,地址池中的地址个数为100个,利用100对源ip地址对应的整型数aaa进行取余计算,获得余数bbb。若该余数bbb所表示的地址偏移位于地址池范围外,那么继续利用100对余数bbb进行取余计算,获得余数ccc。若该余数ccc所表示的地址偏移还位于地址池范围外,那么继续利用100对余数ccc进行取余计算,获得余数ddd。若该余数ddd所表示的地址偏移已经位于地址池范围内,则结束取余计算,该余数ddd则作为最终的结果。

当然,在地址池中的地址个数的较多的情况,初次取余计算出的余数所表示的地址偏移则可以位于地址池的范围以外,因此无需再次取余,该初次取余计算出的余数即为最终的余数。

还需要说明的是,利用地址池中的地址个数进行取余仅为本实施例的一种示例方式,其并不作为本实施例的限定。比如,网络安全设备还可以预设一个常量参数,然后利用该预设的常量参数对源ip地址对应的整型数进行取余。

步骤s300:将数据报文中的源ip地址转换成全局地址,获得转换后的数据报文。

网络安全设备在确定出源ip地址对应的全局地址后,网络安全设备便可以在数据报文中源ip地址所在的头部中,将该源ip地址替换成源ip地址对应的全局地址,然后再将携带该全局地址的数据报文封装,从而获得转换后的数据报文。

步骤s400:将转换后的数据报文发到第二网络中。

相应的,网络安全设备再将该转换后的数据报文发送到第二网络中,以实现该网络设备对第二网络的访问。

请参阅图2,若通过判断确定该源ip地址需要转换成随机的全局地址,那么网络安全设备执行流程可以包括:

步骤s201:通过对源ip地址以及当前的常量参数进行计算,确定出预设的地址池中与源ip地址以及当前的常量参数均对应的全局地址,其中,当前的常量参数与历史中计算全局地址所使用的常量参数不同。

步骤s301:将数据报文中的源ip地址转换成全局地址,获得转换后的数据报文。

步骤s401:将转换后的数据报文发送到第二网络中。

下面将结合示例对上述流程进行详细说明。

步骤s201:通过对源ip地址以及当前的常量参数进行计算,确定出预设的地址池中与源ip地址以及当前的常量参数均对应的全局地址,其中,当前的常量参数与历史中计算全局地址所使用的常量参数不同。

当确定该源ip地址需要转换成随机的全局地址,即说明该网络设备每次都以不同的全局地址访问第二网络,那么网络安全设备在本次获取到网络设备的源ip地址后,网络安全设备可以计算本次获取到的源ip地址与当前的常量参数,由于每一次参与计算的常量参数都不同,故确保本次计算可以获得与历史中获得的全局地址不相同的全局地址。

具体来说,在本次计算之前,网络安全设备可以随机生成参与本次计算的常量参数(参与本次计算的常量参数即为当前的常量参数),或者网络安全设备还可以将历史中最近一次计算全局地址所使用的常量参数自加预设值比如自加1,获得当前的常量参数。然后,网络安全设备可以将当前的常量参数与源ip地址组合,计算出该组合对应的整型数,并利用地址池中的地址个数对整型数取余,以确定出对应的余数。最后,网络安全设备再利用该余数所表示的地址偏移,获取地址池中位于该地址偏移处的全局地址。

可以理解到的是,针对同一源ip地址,由于每次参与计算的常量参数都不同,故可以使得每次计算出的整型数也与之不同,并使得每次确定出地址偏移也不同,进而实现在源ip地址相同的情况下,每次都以不同的地址偏移确定出不同的全局地址。

例如,若原ip地址为xxyyzz,而参与第一次计算的常量参数为aa,那么基于原ip地址为xxyyzz加上常量参数为aa,可以确定出第一次计算的整型数为ssdd。那么利用该整型数为ssdd取余并最终获得的全局地址可以是xxyyzz。若下一次继续该为xxyyzz的原ip地址进行转换,那么第二次计算的常量参数可以更新为bb,那么基于原ip地址为xxyyzz加上常量参数为bb,可以确定出第二次计算的整型数为ffvv。那么利用该整型数为ffvv取余并最终获得的全局地址可以是ooppqq,从而实现与第一次计算获得的全局地址不同。

此外,利用地址池中的地址个数对常量参数与源ip地址的组合对应的整型数进行取余的原理可以参考前述,在此就不再累述。

步骤s301:将源ip地址转换成全局地址,获得转换后的数据报文。

网络安全设备在确定出源ip地址对应的全局地址后,网络安全设备便可以在数据报文中源ip地址所在的头部中,将该源ip地址替换成源ip地址对应的全局地址,然后再将携带该全局地址的数据报文封装,从而获得转换后的数据报文。

步骤s401:将转换后的数据报文发到第二网络中。

相应的,网络安全设备再将该转换后的数据报文发送到第二网络中,以实现该网络设备对第二网络的访问。

请参阅图3,基于同一发明构思,本申请实施例中还提供一种网络安全设备10,该网络安全设备10可以包括连接到网络的通信接口11、用于执行程序指令的一个或多个处理器12、总线13、和不同形式的存储器14,例如,磁盘、rom、或ram,或其任意组合。示例性地,计算机平台还可以包括存储在rom、ram、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。

存储器14用于存储程序。

通信接口11,用于获取第一网络中的网络设备发往第二网络的数据报文。

处理器12用于调用并运行存储器14中的程序,以对该数据报文执行前述的所述的地址的转换方法,以将转换后的数据报文发到第二网络中。

请参阅图4,基于同一发明构思,本申请实施例中还提供一种地址的转换装置100,应用于网络安全设备10,该地址的转换装置100包括:

数据收发模块110,用于获取第一网络中的网络设备发往第二网络的数据报文,并获取所述数据报文携带的所述网络设备的源ip地址。

数据处理模块120,用于通过对所述源ip地址进行计算,确定出预设的地址池中与所述源ip地址对应的全局地址;其中,对于同一源ip地址,计算的方式相同;;将所述数据报文中的所述源ip地址转换成所述全局地址,获得转换后的数据报文。

所述数据收发模块110,还用于将所述转换后的数据报文发送到所述第二网络中。

需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

本申请一些实施例还提供了一种计算机可执行的非易失的程序代码的计算机可读储存介质,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上存储有程序代码,该程序代码被计算机运行时执行上述任一实施方式的地址的转换方法的步骤。

本申请实施例所提供的地址的转换方法的程序代码产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。

综上所述,本申请实施例提供了一种地址的转换方法、装置、设备及存储介质。针对同一个源ip地址,由于网络安全设备每一次都是采用相同的计算方式,故使得每次确定出的全局地址都是同一个,无需建立映射关系表,便可以实现灵活的将同一个源ip地址每次都转换成同一个全局地址。同时,也正由于无需建立映射关系表,故无需额外消耗设备内存及计算资源来进行表项维护。

在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1