1.本技术涉及网络通信领域,具体而言,涉及一种报文转发方法及装置。
背景技术:
2.互联网协议第6版(internet protocol version 6,ipv6)是互联网工程任务组(the internet engineering task force,ietf)设计的用于替代互联网协议第4版(internet protocol version 4,ipv4)的下一代网际互连协议(internet protocol,ip)协议。其中,ipv4存在网络地址资源不足的问题,而ipv6不仅能解决网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
3.随着ipv6的不断发展,其用户规模也在不断的扩大,因此,如何实现ipv4与ipv6之间的互通问题显得尤为重要。在ipv4与ipv6之间的互通问题中,当前现网中的源转换和目的转换采用的是前缀转换和静态转换技术。其中,前缀转换存在暴露内网ip地址的问题,而静态转换虽然可以避免暴露内网ip地址的问题,但当ipv6网络侧用户发起连接访问ipv4侧网络资源时,无法满足将一个内网ip地址映射成多个公网ip地址给客户提供服务的需求;当ipv4网络侧用户发起连接访问ipv6侧网络资源时,无法满足所有内网ip地址通过一个或多个公网ip地址访问互联网资源的需求。
技术实现要素:
4.本技术实施例的目的在于提供一种报文转发方法及装置,用以解决如何实现在不暴露内网ip地址的基础上,实现将一个内网ip地址映射成多个公网ip地址为ipv6侧客户端提供服务,或者实现所有的内网ip地址通过一个或多个公网ip地址访问ipv6侧网络资源的技术问题。
5.第一方面,本技术实施例提供一种报文转发方法,包括:接收用户端发送的第一互联网协议报文;若通过协议判断所述第一互联网协议报文为与第一互联网协议对应的报文,则将所述第一互联网协议报文进入第一互联网协议栈,并根据所述第一互联网协议报文的第一五元组信息建立与所述第一互联网协议对应的连接;根据预先配置的地址转换策略确定转换后的第二五元组信息;其中,所述地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池,地址池包括ipv6因特网地址;根据所述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文;将所述第二互联网协议报文通过软中断的方式进入第二互联网协议栈,并建立与所述第二互联网协议对应的连接,实现将所述第一互联网协议报文从所述第一互联网协议一侧转发至所述第二互联网协议一侧;其中,所述第一互联网协议与所述第二互联网协议中,一个为ipv6协议,另一个为ipv4协议。在上述方案中,在接收到第一互联网协议对应的第一互联网协议报文之后,可以根据地址转换策略确定转换后的与第二互联网协议对应的第二五元组信息。在转换的过程中可以结合端口复用技术、地址池技术以及动态转换技术,通过动态确定地址的方式从包括多个地址的地址池中确定转换后的
地址,因此可以在不暴露内网ip地址的基础上,实现将一个内网ip地址映射成多个公网ip地址为ipv6侧客户端提供服务,或者实现所有的内网ip地址通过一个或多个公网ip地址访问ipv6侧网络资源。
6.在可选的实施方式中,所述第一互联网协议为ipv6协议,所述第二互联网协议为ipv4协议;所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。在上述方案中,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中确定唯一的ip地址。
7.在可选的实施方式中,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址之后,所述方法还包括:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。在上述方案中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
8.在可选的实施方式中,所述根据预先配置的地址转换策略确定转换后的第二五元组信息,还包括:将转换后的ipv4目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。在上述方案中,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
9.在可选的实施方式中,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为一个;所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:若所述地址转换参数的值表征不需要进行动态的ip地址转换,则将所述转换后的ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址。在上述方案中,若端口转换参数的值表征不需要进行动态的端口地址转换,则电子设备可以直接将互联网协议源地址池中的ip地址确定为第二五元组信息中的源ip地址。
10.在可选的实施方式中,在所述将所述转换后的ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址之后,所述方法还包括:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口在所述第二互联网协议栈中是否被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。在上述方案中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
11.在可选的实施方式中,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为多个;所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。在上述方案中,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中
确定唯一的ip地址。
12.在可选的实施方式中,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址之后,所述方法还包括:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。在上述方案中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
13.在可选的实施方式中,所述根据预先配置的地址转换策略确定转换后的第二五元组信息,还包括:将转换后的ipv6目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。在上述方案中,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
14.在可选的实施方式中,所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:根据预先配置的转换策略、所述地址转换参数的值以及所述端口转换参数的值动态的确定所述第二五元组信息;其中,一条源转换策略以及一条目的转换策略组成一条转换策略。在上述方案中,通过将源转换策略和目的转换策略结合为一条转换策略,进行协议与地址转换时,采用对应的转换算法从根据转换策略确定的地址池中选择后续协议栈的源ip地址和目的地址。因此,可以降低策略配置的复杂度。
15.第二方面,本技术实施例提供一种报文转发装置,包括:接收模块,用于接收用户端发送的第一互联网协议报文;第一建立模块,用于若通过协议判断所述第一互联网协议报文为与第一互联网协议对应的报文,则将所述第一互联网协议报文进入第一互联网协议栈,并根据所述第一互联网协议报文的第一五元组信息建立与所述第一互联网协议对应的连接;确定模块,用于根据预先配置的地址转换策略确定转换后的第二五元组信息;其中,所述地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池,地址池包括ipv6因特网地址;构造模块,用于根据所述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文;第二建立模块,用于将所述第二互联网协议报文通过软中断的方式进入第二互联网协议栈,以建立与所述第二互联网协议对应的连接,实现将所述第一互联网协议报文从所述第一互联网协议一侧转发至所述第二互联网协议一侧;其中,所述第一互联网协议与所述第二互联网协议中,一个为ipv6协议,另一个为ipv4协议。在上述方案中,在接收到第一互联网协议对应的第一互联网协议报文之后,可以根据地址转换策略确定转换后的与第二互联网协议对应的第二五元组信息。在转换的过程中可以结合端口复用技术、地址池技术以及动态转换技术,通过动态确定地址的方式从包括多个地址的地址池中确定转换后的地址,因此可以在不暴露内网ip地址的基础上,实现将一个内网ip地址映射成多个公网ip地址为ipv6侧客户端提供服务,或者实现所有的内网ip地址通过一个或多个公网ip地址访问ipv6侧网络资源。
16.在可选的实施方式中,所述第一互联网协议为ipv6协议,所述第二互联网协议为ipv4协议;所述确定模块具体用于:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以
及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。在上述方案中,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中确定唯一的ip地址。
17.在可选的实施方式中,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址之后,所述确定模块还用于:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。在上述方案中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
18.在可选的实施方式中,所述确定模块还用于:将转换后的ipv4目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。在上述方案中,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
19.在可选的实施方式中,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为一个;所述确定模块具体用于:若所述地址转换参数的值表征不需要进行动态的ip地址转换,则将转换后的所述ipv6源地址池中的ip地址确定为所述第二五元组信息中的目的ip地址。在上述方案中,若端口转换参数的值表征不需要进行动态的端口地址转换,则电子设备可以直接将互联网协议源地址池中的ip地址确定为第二五元组信息中的源ip地址。
20.在可选的实施方式中,在所述将所述转换后的ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址之后之后,所述确定模块还用于:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口在所述第二互联网协议栈中是否被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。在上述方案中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
21.在可选的实施方式中,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为多个;所述确定模块具体用于:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。在上述方案中,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中确定唯一的ip地址。
22.在可选的实施方式中,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第之后,所述确定模块还用于:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。在上述方案中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立
的连接的唯一性。
23.在可选的实施方式中,所述确定模块具体用于:将转换后的ipv6目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。在上述方案中,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
24.在可选的实施方式中,所述确定模块具体用于:根据预先配置的转换策略、所述地址转换参数的值以及所述端口转换参数的值动态的确定所述第二五元组信息;其中,一条源转换策略以及一条目的转换策略组成一条转换策略。在上述方案中,通过将源转换策略和目的转换策略结合为一条转换策略,进行协议与地址转换时,采用对应的转换算法从根据转换策略确定的地址池中选择后续协议栈的源ip地址和目的地址。因此,可以降低策略配置的复杂度。
25.第三方面,本技术实施例提供一种电子设备,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的报文转发方法。
26.第四方面,本技术实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如第一方面所述的报文转发方法。
27.为使本技术的上述目的、特征和优点能更明显易懂,下文特举本技术实施例,并配合所附附图,作详细说明如下。
附图说明
28.为了更清楚地说明本技术实施例的技术方案,下面将对本技术实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
29.图1为本技术实施例提供的一种报文转发方法的流程图;
30.图2为本技术实施例提供的一种报文转发装置的结构框图;
31.图3为本技术实施例提供的一种电子设备的结构框图。
具体实施方式
32.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行描述。
33.请参照图1,图1为本技术实施例提供的一种报文转发方法的流程图,该报文转发方法可以应用在电子设备中。其中,该报文转发方法可以包括如下内容:
34.步骤s101:接收用户端发送的第一互联网协议报文。
35.步骤s102:若通过协议判断第一互联网协议报文为与第一互联网协议对应的报文,则将第一互联网协议报文进入第一互联网协议栈,并根据第一互联网协议报文的第一五元组信息建立与第一互联网协议对应的连接。
36.步骤s103:根据预先配置的地址转换策略确定转换后的第二五元组信息。
37.步骤s104:根据第二五元组信息构造与第二互联网协议对应的第二互联网协议报
文。
38.步骤s105:将第二互联网协议报文通过软中断的方式进入第二互联网协议栈,并建立与第二互联网协议对应的连接,实现将第一互联网协议报文从第一互联网协议一侧转发至第二互联网协议一侧。
39.具体的,根据应用场景的不同,步骤s101中的第一互联网协议报文可以为ipv4报文或者ipv6报文。可以理解的是,存在以下两种应用场景:第一种,ipv6网络侧的用户发起连接访问ipv4侧内网服务器资源,此时,第一互联网协议为ipv6,而第二互联网协议为ipv4;第二种,ipv4网络侧的用户发起连接访问ipv4侧公网服务器资源,此时,第一互联网协议为ipv4,而第二互联网协议为ipv6。
40.以第一种应用场景为例,如果电子设备在步骤s101中接收到的第一互联网协议报文为ipv6报文,由于该ipv6报文为ipv6对应的报文,因此可以将该ipv6报文送入ipv6协议栈中,并根据该ipv6报文携带的第一五元组信息建立ipv6连接。其中,第一五元组信息可以包括源ip地址、源端口、目的ip地址、目的端口以及协议。
41.再以第二种应用场景为例,如果电子设备在步骤s101中接收到的第一互联网协议报文为ipv4报文,由于该ipv4报文为ipv4对应的报文,因此可以将该ipv4报文送入ipv4协议栈中,并根据该ipv4报文携带的第一五元组信息建立ipv4连接。同样的,第一五元组信息可以包括源ip地址、源端口、目的ip地址、目的端口以及协议。
42.在执行本技术实施例提供的报文转发方法之前,可以根据需求预先配置好地址转换策略。其中,地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池。
43.需要说明的是,地址转换参数用于指示在本次报文转发的过程中是否需要进行动态的ip地址转换,而端口转换参数用于指示在本地报文转发的过程中是否需要进行动态的端口地址转换。上述四种地址池中均包括ipv6因特网地址,而不是前缀地址。
44.其中,动态的ip地址转换是指:多个ip地址形成地址池,动态的从地址池中确定一个ip地址作为转换后的ip地址;类似的,动态的端口地址转换是指:存在多个端口,动态的从多个端口中确定一个端口作为转换后的端口。
45.作为一种实施方式,地址池可以以地址对象的方式管理多个ip地址,其中,地址对象可以包括主机对象、范围对象、子网对象等。在报文转发方法中,可以通过引用上述地址对象来进行报文的匹配和地址的转换。
46.举例来说,当地址转换参数sticky的值被配置为yes时,可以表征不需要进行动态的ip地址转换;当地址转换参数sticky的值被配置为no时,可以表征需要进行动态的ip地址转换。再如,当端口转换参数pat的值被配置为no时,可以表征不需要进行动态的端口地址转换;当端口转换参数pat的值被配置为yes时,可以表征需要进行动态的端口地址转换。
47.可以理解的是,上述地址转换参数以及端口转换参数具体配置的值仅为本技术实施例提供的示例,本领域技术人员可以根据实际情况对地址转换参数以及端口转换参数可以配置的值进行调整,本技术实施例对此不作具体的限定。
48.根据上述预先配置好的地址转换参数的值以及端口转换参数的值,电子设备可以确定转换后的第二五元组信息。其中,第二五元组信息可以包括转换后的源ip地址、转换后的源端口、转换后的目的ip地址、转换后的目的端口以及协议。
49.其中,电子设备根据地址转换参数的值以及端口转换参数的值确定转换后的第二五元组信息的具体实施方式将在后续实施例中进行详细的说明,此处暂不介绍。
50.最后,电子设备可以根据上述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文,然后将上述第二互联网协议报文以软中断的方式进入第二互联网协议栈中,并建立与第二互联网协议对应的连接,从而实现将互联网协议报文从第一互联网协议一侧转发至第二互联网协议一侧。
51.可以理解的是,在建立了与第二互联网协议对应的连接之后,可以将第一互联网协议对应的连接与第二互联网协议对应的连接进行连接互绑。后续报文可以查找连接表,获取另一个互联网协议的五元组信息,从而可以直接构造另一个互联网协议报文通过软中断进入另一个互联网协议栈,完成报文的交互。
52.同样以上述第一种应用场景为例,如果电子设备在步骤s101中接收到的第一互联网协议报文为ipv6报文,根据地址转换参数的值以及端口转换参数的值将该ipv6报文携带的第一五元组信息转换为与ipv4对应的第二五元组信息,并根据与ipv4对应的第二五元组信息构造ipv4报文,并将ipv4报文通过软中断的方式进入ipv4协议栈,以建立ipv4连接。这样,实现了ipv6报文从ipv6网络侧转发至了ipv4侧。
53.再以第二种应用场景为例,如果电子设备在步骤s101中接收到的第一互联网协议报文为ipv4报文,根据地址转换参数的值以及端口转换参数的值将该ipv4报文携带的第一五元组信息转换为与ipv6对应的第二五元组信息,并根据与ipv6对应的第二五元组信息构造ipv6报文,并将ipv6报文通过软中断的方式进入ipv6协议栈,以建立ipv6连接。这样,实现了ipv4报文从ipv4网络侧转发至了ipv6侧。
54.可以理解的是,在上述实施方式中,由于可能存在转换前后的第一源端口与第二源端口相同的情况,因此还可以结合端口复用技术实现多个连接通过一个端口实现的技术方案。
55.在上述方案中,在接收到第一互联网协议对应的第一互联网协议报文之后,可以根据地址转换策略确定转换后的与第二互联网协议对应的第二五元组信息。在转换的过程中可以结合端口复用技术、地址池技术以及动态转换技术,通过动态确定地址的方式从包括多个地址的地址池中确定转换后的地址,因此可以在不暴露内网ip地址的基础上,实现将一个内网ip地址映射成多个公网ip地址为ipv6侧客户端提供服务,或者实现所有的内网ip地址通过一个或多个公网ip地址访问ipv6侧网络资源。
56.进一步的,下面介绍电子设备根据地址转换策略确定转换后的第二五元组信息的具体实施方式。根据地址转换策略中的地址转换参数的值以及端口转换参数的值不同,可以分为以下几种情况:
57.第一种情况,地址转换参数表征需要进行动态的ip地址转换,且端口转换参数的值表征需要进行动态的端口地址转换。
58.此时,在该种情况中,上述步骤s103具体可以包括如下内容:
59.第一步,若地址转换参数的值表征需要进行动态的ip地址转换,则根据第一五元组信息中的第一源ip地址计算得到哈希值。
60.第二步,根据哈希值以及转换后的ipv4源地址池确定第二五元组信息中的第二源ip地址。
61.第三步,若端口转换参数的值表征需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用。
62.第四步,若第一源端口在第二互联网协议栈中被占用,则选择另一端口作为第二五元组信息中的第二源端口。
63.第五步,将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
64.具体的,首先,若地址转换参数的值表征需要进行动态的ip地址转换,电子设备可以随机计算得到一个哈希值,利用该哈希值经过对地址转换策略中配置的转换后的源地址池中的地址个数进行取余运算,得到转换后的地址池的索引进而确定第二五元组信息中的第二源ip地址。
65.因此,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中确定唯一的ip地址。
66.接下来,为了保证基于第二五元组建立的连接是一条新的连接,由于存在计算得到的哈希值重复导致确定的源ip地址重复的情况,因此可以在动态的ip地址转换的基础上,进一步的进行动态的端口地址转换。可以理解的是,只要转换后的源ip地址或者源端口地址中的其中一个不相同,则可以建立一条新的连接。
67.若端口转换参数的值表征需要进行动态的端口地址转换,电子设备可以进一步的判断第一五元组中的第一源端口在第二互联网协议栈中是否被占用。其中,第一源端口在第二互联网协议栈中被占用表示之前建立的连接中已经有基于该端口建立的连接,因此为了保证本次建立的连接是一条新的连接,可以在第一源端口在第二互联网协议栈中被占用时重新选择一个端口作为第二五元组信息中的第二源端口。
68.作为一种实施方式,电子设备可以从剩余的端口中随机选择一个端口,并直接将该端口作为第二源端口;作为另一种实施方式,电子设备从剩余的端口中随机选择一个端口之后,可以进一步的判断该端口是否在第二互联网协议栈中被占用,如果该端口在第二互联网协议栈中没有被占用则可以将该端口确定为第二源端口,而如果该端口在第二互联网协议栈中被占用则可以再重新选择一个端口,直至选择的端口在第二互联网协议栈中没有被占用时将该端口确定为第二源端口。
69.可以理解的是,为了提高报文转发的效率,可以预先设置一个重复选择的次数,当超过该次数仍没有确定第二源端口时,可以直接对该互联网协议报文进行丢包处理。举例来说,当第一源端口在第二互联网协议栈中被占用时,尝试10次从剩余的端口中随机选择一个端口,如果仍未获得在第二互联网协议栈中未被占用的端口,则丢包。
70.而在第一源端口在第二互联网协议栈中没有被占用时,虽然端口转换参数的值表征需要进行动态的端口地址转换,仍然可以将第一源端口确定为第二源端口。
71.因此,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
72.最后,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
73.需要说明的是,上述将第一源ip地址转换为第二源ip地址、将第一源端口转换为第二源端口以及将第一五元组信息中的ip地址转换为第二五元组信息中的目的ip地址的
这三个过程之间没有先后顺序。也就是说,上述三个过程既可以同时执行,也可以先执行其中的一个过程再执行其他的两个过程等,本技术实施例对此不作具体的限定。
74.第二种情况,地址转换参数表征需要进行动态的ip地址转换,且端口转换参数的值表征不需要进行动态的端口地址转换。
75.此时,在该种情况中,上述步骤s103具体可以包括如下内容:
76.第一步,若地址转换参数的值表征需要进行动态的ip地址转换,则根据第一五元组信息中的第一源ip地址计算得到哈希值。
77.第二步,根据哈希值以及转换后的ipv4源地址池确定第二五元组信息中的第二源ip地址。
78.第三步,若端口转换参数的值表征不需要进行动态的端口地址转换,则将转换后的互联网协议源地址池中的ip地址确定为第二五元组信息中的目的ip地址。
79.第三步,将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
80.具体的,首先,上述实施例中已经对地址转换参数的值表征需要进行动态的ip地址转换时,将第一五元组信息中的第一源ip地址转换为第二五元组信息中的第二源ip地址的具体实施方式进行了详细介绍,此处不再赘述。
81.接下来,作为一种实施方式,若端口转换参数的值表征不需要进行动态的端口地址转换,则电子设备可以直接将转换后的互联网协议源地址池中的ip地址确定为第二五元组信息中的目的ip地址。
82.作为另一种实施方式,为了保证基于第二五元组建立的连接是一条新的连接,若端口转换参数的值表征不需要进行动态的端口地址转换,电子设备可以进一步的判断第一五元组中的第一源端口在第二互联网协议栈中是否被占用。如果该第一源端口在第二互联网协议栈中没有被占用,则可以直接将该第一源端口确定为第二五元组中的第二源端口;如果该第一源端口在第二互联网协议栈中被占用,则可以直接对互联网协议报文进行丢包处理。
83.最后,上述实施例中已经对将第一五元组信息中的目的ip地址转换为第二五元组信息中的目的ip地址的具体实施方式进行了详细介绍,此处不再赘述。
84.第三种情况,地址转换参数表征不需要进行动态的ip地址转换,且端口转换参数的值表征需要进行动态的端口地址转换。
85.此时,在该种情况中,上述步骤s103具体可以包括如下内容:
86.第一步,若地址转换参数的值表征不需要进行动态的ip地址转换,则将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
87.第二步,若端口转换参数的值表征需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用。
88.第三步,若第一源端口在第二互联网协议栈中被占用,则选择另一端口作为第二五元组信息中的第二源端口。
89.第四步,将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
90.具体的,首先,若地址转换参数的值表征不需要进行动态的ip地址转换,电子设备
可以直接将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
91.作为一种实施方式,如果转换后的互联网协议目的地址池中仅包括一个ip地址,则可以直接将该ip地址确定为第二五元组信息中的目的ip地址;作为另一种实施方式,如果转换后的互联网协议目的地址池中包括一个ip地址,可以计算得到相同的哈希值来确保每次选择的ip地址相同。
92.接下来,上述实施例中已经对端口转换参数的值表征需要进行动态的端口地址转换时,将第一五元组信息中的源端口地址转换为第二五元组信息中的将第一五元组信息中的目的ip地址转换为第二五元组信息中的目的ip地址的具体实施方式地址的具体实施方式,以及将第一五元组信息中的目的ip地址转换为第二五元组信息中的目的ip地址的具体实施方式进行了详细介绍,此处不再赘述。
93.第四种情况,地址转换参数表征不需要进行动态的ip地址转换,且端口转换参数的值表征不需要进行动态的端口地址转换。
94.此时,在该种情况中,上述步骤s103具体可以包括如下内容:
95.第一步,若地址转换参数的值表征不需要进行动态的ip地址转换,则将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
96.第二步,若端口转换参数的值表征不需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用。
97.第三步,若第一源端口在第二互联网协议栈中被占用,则对互联网协议报文进行丢包处理。
98.第四步,将转换后的互联网协议目的地址池中的ip地址确定为第二五元组信息中的目的ip地址。
99.进一步的,在不同的应用场景中,可以配置不同的地址转换参数的值以及端口转换参数的值。因此,基于上述实施例中介绍的根据地址转换参数的值以及端口转换参数的值确定转换后的第二五元组信息的具体实施方式,本技术实施例对以下几种应用场景中,确定转换后的第二五元组信息进行介绍。
100.第一种应用场景,ipv6网络侧的用户发起连接访问ipv4侧内网服务器资源,且ipv4侧内网服务器需要通过多个不同运营商提供的多个ipv6公网ip地址为用户提供服务。
101.在该种应用场景中,由于ipv6网络侧用户的数量为多个,因此转换前的第一源ip地址的数量为多个;转换后的第二源ip地址的数量也为多个。因此,源ip地址的转换过程是一个多对多的过程,可以将地址转换参数的值配置为表征需要进行动态的ip地址转换。
102.在此基础上,为了保证基于第二五元组建立的连接的唯一性,因此可以将端口转换参数的值也配置为表征需要进行动态的端口地址转换。
103.同样的,由于运营商提供了多个ipv6公网ip地址,因此转换前的目的ip地址的数量为多个,转换后的目的ip地址的数量为一个,因此可以直接将ipv4目的地址池中的ip地址确定为转换后的目的ip地址。
104.也就是说,在该种应用场景中,可以采用上述第一种情况中的具体实施方式,实现ipv6用户通过多个公网ip地址访问ipv4侧内网服务器资源。
105.此时,上述步骤s103具体可以包括如下内容:
106.第一步,若地址转换参数的值表征需要进行动态的ip地址转换,则根据第一五元组信息中的第一源ip地址计算得到哈希值。
107.第二步,根据哈希值以及转换后的ipv4源地址池确定第二五元组信息中的第二源ip地址。
108.第三步,若端口转换参数的值表征需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用;
109.第四步,若第一源端口在第二互联网协议栈中被占用,则选择另一端口作为第二五元组信息中的第二源端口。
110.第五步,将转换后的ipv4目的地址池中的第一个ip地址确定为第二五元组信息中的目的ip地址。
111.第二种应用场景,ipv6网络侧的用户发起连接访问ipv4侧内网服务器资源,且ipv4侧内网服务器需要通过运营商提供的一个ipv6公网ip地址为用户提供服务。
112.在该种应用场景中,由于ipv6网络侧用户的数量为多个,因此转换前的第一源ip地址的数量为多个;转换后的第二源ip地址的数量也为多个。因此,源ip地址的转换过程是一个多对多的过程,可以将地址转换参数的值配置为表征需要进行动态的ip地址转换。
113.在此基础上,为了保证基于第二五元组建立的连接的唯一性,因此可以将端口转换参数的值也配置为表征需要进行动态的端口地址转换。
114.同样的,由于运营商提供了一个ipv6公网ip地址,转换前的目的ip地址的数量为一个,转换后的目的ip地址的数量为一个,因此可以直接将ipv4目的地址池中的ip地址确定为转换后的目的ip地址。
115.也就是说,在该种应用场景中,同样可以采用上述第一种情况中的具体实施方式,实现ipv6用户通过一个公网ip地址访问ipv4侧内网服务器资源。此时,上述步骤s103具体可以包括如下内容:
116.第一步,若地址转换参数的值表征需要进行动态的ip地址转换,则根据第一五元组信息中的第一源ip地址计算得到哈希值。
117.第二步,根据哈希值以及转换后的ipv4源地址池确定第二五元组信息中的第二源ip地址。
118.第三步,若端口转换参数的值表征需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用;
119.第四步,若第一源端口在第二互联网协议栈中被占用,则选择另一端口作为第二五元组信息中的第二源端口。
120.第五步,将转换后的ipv4目的地址池中的第一个ip地址确定为第二五元组信息中的目的ip地址。
121.第三种应用场景,ipv4网络侧的用户发起连接访问ipv4侧公网服务器资源,且运营商给用户只分配了一个ipv6公网ip地址。
122.在该种应用场景中,转换前的第一源ip地址的数量为多个;由于运营商提供了一个ipv6公网ip地址,因此,转换后的第二源ip地址的数量为一个。因此,源ip地址的转换过程是一个多对一的过程,可以将地址转换参数的值配置为表征不需要进行动态的ip地址转换。
123.在此基础上,为了保证基于第二五元组建立的连接的唯一性,因此可以将端口转换参数的值也配置为表征需要进行动态的端口地址转换。
124.同样的,由于运营商提供了一个ipv6公网ip地址,转换前的目的ip地址的数量为一个,转换后的目的ip地址的数量为一个,因此可以直接将ipv4目的地址池中的ip地址确定为转换后的目的ip地址。
125.也就是说,在该种应用场景中,可以采用上述第二种情况中的具体实施方式,实现所有ipv4用户通过一个公网ip地址访问ipv6侧网络资源。此时,上述步骤s103具体可以包括如下内容:
126.第一步,若地址转换参数的值表征不需要进行动态的ip地址转换,则将转换后的ipv6源地址池中的ip地址确定为第二五元组信息中的目的ip地址。
127.第二步,若端口转换参数的值表征需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用;
128.第三步,若第一源端口在第二互联网协议栈中被占用,则选择另一端口作为第二五元组信息中的第二源端口。
129.第四步,将转换后的ipv6目的地址池中的第一个ip地址确定为第二五元组信息中的目的ip地址。
130.第四种应用场景,ipv4网络侧的用户发起连接访问ipv4侧公网服务器资源,且运营商给用户分配了多个ipv6公网ip地址。
131.在该种应用场景中,转换前的第一源ip地址的数量为多个;由于运营商提供了多个ipv6公网ip地址,因此,转换后的第二源ip地址的数量为多个。因此,源ip地址的转换过程是一个多对多的过程,可以将地址转换参数的值配置为表征需要进行动态的ip地址转换。
132.在此基础上,为了保证基于第二五元组建立的连接的唯一性,因此可以将端口转换参数的值也配置为表征需要进行动态的端口地址转换。
133.同样的,转换前的目的ip地址的数量为一个,转换后的目的ip地址的数量为一个,因此可以直接将ipv4目的地址池中的ip地址确定为转换后的目的ip地址。
134.也就是说,在该种应用场景中,可以采用上述第一种情况中的具体实施方式,实现所有ipv4用户通过多个公网ip地址访问ipv6侧网络资源。此时,上述步骤s103具体可以包括如下内容:
135.第一步,若地址转换参数的值表征需要进行动态的ip地址转换,则根据第一五元组信息中的第一源ip地址计算得到哈希值。
136.第二步,根据哈希值以及转换后的ipv4源地址池确定第二五元组信息中的第二源ip地址。
137.第三步,若端口转换参数的值表征需要进行动态的端口地址转换,则判断第一五元组信息中的第一源端口在第二互联网协议栈中是否被占用;
138.第四步,若第一源端口在第二互联网协议栈中被占用,则选择另一端口作为第二五元组信息中的第二源端口。
139.第五步,将转换后的ipv6目的地址池中的第一个ip地址确定为第二五元组信息中的目的ip地址。
140.进一步的,在执行本技术实施例提供报文转发方法之前,还可以预先配置对应的转换策略。其中,一条转换策略可以由一条源转换策略以及一条目的转换策略组成。
141.请参照表1,表1示出了一种nat64转换策略。在表1中,有四种nat64策略类型,分别为:源转换和目的前缀转换、源前缀转换和目的前缀转换、源转换和目的转换以及源前缀转换和目的转换。
142.以源转换和目的转换这一条转换策略为例,该条转换策略包括源转换策略:源转换(将转换前的源主机、源范围、源子网,转换为转换后的源主机、源范围、源子网),以及目的转换策略:目的转换(将转换前的目的主机、目的范围、目的子网,转换为转换后的目的主机、目的范围、目的子网)。
143.表1nat64转换策略
[0144][0145]
其中,在上述四种转换策略中,源转换和目的转换以及源前缀转换和目的转换这两条转换策略可以实现不暴露内网ip地址;而源转换和目的前缀转换以及源前缀转换和目的前缀转换这两条转换策略,目的ip地址在转换中,剥离前缀便会存在暴露内网ip地址的风险。
[0146]
可以理解的是,在上述nat64相关的报文转发方法中,均以表1中的源转换和目的转换这一条转换策略为例进行叙述,本领域技术人员在上述实施例中介绍的实施方式的基础上,可以基于其他几条转换策略实现报文转发方法。
[0147]
举例来说,若ipv6网络侧的用户发起连接访问ipv4侧内网服务器资源时,要求不能暴露内网ip地址,可以预先配置转换策略:源转换和目的转换或者源前缀转换和目的转换。在不限制源地址和目的地址的情况下,只需要根据转换策略配置转换后的源地址池和目的地址池,即可实现ipv6报文从地址池中选择转换后的ipv4源ip地址和ipv4目的地址,即可实现ipv6用户访问ipv4侧内网服务器资源。
[0148]
请参照表2,表1示出了一种nat46转换策略。在表2中,有四种nat46策略类型,分别为:源转换和目的前缀转换、源前缀转换和目的前缀转换、源转换和目的转换以及源前缀转换和目的转换。
[0149]
以源转换和目的转换这一条转换策略为例,该条转换策略包括源转换策略:源转
换(将转换前的源主机、源范围、源子网,转换为转换后的源主机、源范围、源子网),以及目的转换策略:目的转换(将转换前的目的主机、目的范围、目的子网,转换为转换后的目的主机、目的范围、目的子网)。
[0150]
表2nat46转换策略
[0151][0152]
其中,在上述四种转换策略中,源转换和目的转换以及源前缀转换和目的转换这两条转换策略可以实现不暴露内网ip地址;而源转换和目的前缀转换以及源前缀转换和目的前缀转换这两条转换策略,目的ip地址在转换中,剥离前缀便会存在暴露内网ip地址的风险。
[0153]
可以理解的是,在上述nat46相关的报文转发方法中,均以表2中的源转换和目的转换这一条转换策略为例进行叙述,本领域技术人员在上述实施例中介绍的实施方式的基础上,可以基于其他几条转换策略实现报文转发方法。
[0154]
举例来说,若ipv4网络侧的用户发起连接访问ipv4侧公网服务器资源时,要求不能暴露内网ip地址,可以预先配置转换策略:源转换和目的转换或者源前缀转换和目的转换。在不限制源地址和目的地址的情况下,只需要根据转换策略配置转换后的源地址池和目的地址池,即可实现ipv4报文从地址池中选择转换后的ipv6源ip地址和ipv6目的地址,即可实现ipv4用户访问ipv6侧网络资源。
[0155]
在上述方案中,通过将源转换策略和目的转换策略结合为一条转换策略,进行协议与地址转换时,采用对应的转换算法从根据转换策略确定的地址池中选择后续协议栈的源ip地址和目的地址。因此,可以降低策略配置的复杂度。
[0156]
进一步的,在上述步骤s104之后,本技术实施例提供的报文转发方法还可以包括如下内容:
[0157]
进行连接互绑。
[0158]
回包和后续包通过查找连接后去下一个协议栈的五元组信息,进行地址协议转换后进入下一个协议栈完成ipv6和ipv4的交互过程。
[0159]
具体的,作为一种实施方式,可以通过连接互绑的方式,直接通过查找连接的方式
实现ipv6和ipv4的交互过程;作为另一种实施方式,也可以不进行连接互绑,通过查找五元组的方式实现ipv6和ipv4的交互过程。
[0160]
请参照图2,图2为本技术实施例提供的一种报文转发装置的结构框图,该报文转发装置200可以包括:接收模块201,用于接收用户端发送的第一互联网协议报文;第一建立模块202,用于若通过协议判断所述第一互联网协议报文为与第一互联网协议对应的报文,则将所述第一互联网协议报文进入第一互联网协议栈,并根据所述第一互联网协议报文的第一五元组信息建立与所述第一互联网协议对应的连接;确定模块203,用于根据预先配置的地址转换策略确定转换后的第二五元组信息;其中,所述地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池,地址池包括ipv6因特网地址;构造模块204,用于根据所述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文;第二建立模块205,用于将所述第二互联网协议报文通过软中断的方式进入第二互联网协议栈,并建立与所述第二互联网协议对应的连接,实现将所述第一互联网协议报文从所述第一互联网协议一侧转发至所述第二互联网协议一侧;其中,所述第一互联网协议与所述第二互联网协议中,一个为ipv6协议,另一个为ipv4协议。
[0161]
在本技术实施例中,在接收到第一互联网协议对应的第一互联网协议报文之后,可以根据地址转换策略确定转换后的与第二互联网协议对应的第二五元组信息。在转换的过程中可以结合端口复用技术、地址池技术以及动态转换技术,通过动态确定地址的方式从包括多个地址的地址池中确定转换后的地址,因此可以在不暴露内网ip地址的基础上,实现将一个内网ip地址映射成多个公网ip地址为ipv6侧客户端提供服务,或者实现所有的内网ip地址通过一个或多个公网ip地址访问ipv6侧网络资源。
[0162]
进一步的,所述第一互联网协议为ipv6协议,所述第二互联网协议为ipv4协议;所述确定模块203具体用于:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。
[0163]
在本技术实施例中,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中确定唯一的ip地址。
[0164]
进一步的,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址之后,所述确定模块203还用于:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。
[0165]
在本技术实施例中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
[0166]
进一步的,所述确定模块203还用于:将转换后的ipv4目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。
[0167]
在本技术实施例中,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
[0168]
进一步的,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,
ipv6源地址池中的ip地址的数量为一个;所述确定模块203具体用于:若所述地址转换参数的值表征不需要进行动态的ip地址转换,则将转换后的所述ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址。
[0169]
在本技术实施例中,若端口转换参数的值表征不需要进行动态的端口地址转换,则电子设备可以直接将互联网协议源地址池中的ip地址确定为第二五元组信息中的源ip地址。
[0170]
进一步的,在所述将所述转换后的ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址之后之后,所述确定模块203还用于:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口在所述第二互联网协议栈中是否被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。
[0171]
在本技术实施例中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
[0172]
进一步的,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为多个;所述确定模块203具体用于:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。
[0173]
在本技术实施例中,若地址转换参数的值表征需要进行动态的ip地址转换,可以通过计算哈希值从多个ip地址中确定唯一的ip地址。
[0174]
进一步的,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第之后,所述确定模块203还用于:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。
[0175]
在本技术实施例中,在第一源端口在第二互联网协议栈中被占用时,可以通过动态的确定第二源端口的方式,保证基于第二五元组建立的连接的唯一性。
[0176]
进一步的,所述确定模块203具体用于:将转换后的ipv6目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。
[0177]
在本技术实施例中,由于转换后的目的ip地址的唯一性,可以直接从互联网协议目的地址池中确定第二五元组信息中的目的ip地址。
[0178]
进一步的,所述确定模块203具体用于:根据预先配置的转换策略、所述地址转换参数的值以及所述端口转换参数的值动态的确定所述第二五元组信息;其中,一条源转换策略以及一条目的转换策略组成一条转换策略。
[0179]
在本技术实施例中,通过将源转换策略和目的转换策略结合为一条转换策略,进行协议与地址转换时,采用对应的转换算法从根据转换策略确定的地址池中选择后续协议栈的源ip地址和目的地址。因此,可以降低策略配置的复杂度。
[0180]
请参照图3,图3为本技术实施例提供的一种电子设备的结构框图,该电子设备300包括:至少一个处理器301,至少一个通信接口302,至少一个存储器303和至少一个通信总
线304。其中,通信总线304用于实现这些组件直接的连接通信,通信接口302用于与其他节点设备进行信令或数据的通信,存储器303存储有处理器301可执行的机器可读指令。当电子设备300运行时,处理器301与存储器303之间通过通信总线304通信,机器可读指令被处理器301调用时执行上述报文转发方法。
[0181]
例如,本技术实施例的处理器301通过通信总线304从存储器303读取计算机程序并执行该计算机程序可以实现如下方法:步骤s101:接收用户端发送的第一互联网协议报文。步骤s102:若通过协议判断第一互联网协议报文为与第一互联网协议对应的报文,则将第一互联网协议报文进入第一互联网协议栈,并根据第一互联网协议报文的第一五元组信息建立与第一互联网协议对应的连接。步骤s103:根据预先配置的地址转换策略确定转换后的第二五元组信息。步骤s104:根据第二五元组信息构造与第二互联网协议对应的第二互联网协议报文。步骤s105:将第二互联网协议报文通过软中断的方式进入第二互联网协议栈,以建立与第二互联网协议对应的连接,实现将第一互联网协议报文从第一互联网协议一侧转发至第二互联网协议一侧。
[0182]
处理器301可以是一种集成电路芯片,具有信号处理能力。上述处理器301可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signal processing,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。其可以实现或者执行本技术实施例中公开的各种方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
[0183]
存储器303可以包括但不限于随机存取存储器(random access memory,ram),只读存储器(read only memory,rom),可编程只读存储器(programmable read-only memory,prom),可擦除只读存储器(erasable programmable read-only memory,eprom),电可擦除只读存储器(electric erasable programmable read-only memory,eeprom)等。
[0184]
可以理解,图3所示的结构仅为示意,电子设备300还可包括比图3中所示更多或者更少的组件,或者具有与图3所示不同的配置。图3中所示的各组件可以采用硬件、软件或其组合实现。于本技术实施例中,电子设备300可以是,但不限于台式机、笔记本电脑、智能手机、智能穿戴设备、车载设备等实体设备,还可以是虚拟机等虚拟设备。另外,电子设备300也不一定是单台设备,还可以是多台设备的组合,例如服务器集群,等等。
[0185]
本技术实施例还提供一种计算机程序产品,包括存储在计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述实施例中报文转发方法的步骤,例如包括:接收用户端发送的第一互联网协议报文;若通过协议判断所述第一互联网协议报文为与第一互联网协议对应的报文,则将所述第一互联网协议报文进入第一互联网协议栈,并根据所述第一互联网协议报文的第一五元组信息建立与所述第一互联网协议对应的连接;根据预先配置的地址转换策略确定转换后的第二五元组信息;其中,所述地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池,地址池包括ipv6因特网地址;根据所述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文;将所述第二互联网协议报文通过软中断的方式进入第二互联网协议栈,以建立与所
述第二互联网协议对应的连接,实现将所述第一互联网协议报文从所述第一互联网协议一侧转发至所述第二互联网协议一侧;其中,所述第一互联网协议与所述第二互联网协议中,一个为ipv6协议,另一个为ipv4协议。
[0186]
在本技术所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0187]
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0188]
再者,在本技术各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0189]
需要说明的是,功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0190]
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0191]
以上所述仅为本技术的实施例而已,并不用于限制本技术的保护范围,对于本领域的技术人员来说,本技术可以有各种更改和变化。凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
技术特征:
1.一种报文转发方法,其特征在于,包括:接收用户端发送的第一互联网协议报文;若通过协议判断所述第一互联网协议报文为与第一互联网协议对应的报文,则将所述第一互联网协议报文进入第一互联网协议栈,并根据所述第一互联网协议报文的第一五元组信息建立与所述第一互联网协议对应的连接;根据预先配置的地址转换策略确定转换后的第二五元组信息;其中,所述地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池,地址池包括ipv6因特网地址;根据所述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文;将所述第二互联网协议报文通过软中断的方式进入第二互联网协议栈,并建立与所述第二互联网协议对应的连接,实现将所述第一互联网协议报文从所述第一互联网协议一侧转发至所述第二互联网协议一侧;其中,所述第一互联网协议与所述第二互联网协议中,一个为ipv6协议,另一个为ipv4协议。2.根据权利要求1所述的报文转发方法,其特征在于,所述第一互联网协议为ipv6协议,所述第二互联网协议为ipv4协议;所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。3.根据权利要求2所述的报文转发方法,其特征在于,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址之后,所述方法还包括:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。4.根据权利要求2所述的报文转发方法,其特征在于,所述根据预先配置的地址转换策略确定转换后的第二五元组信息,还包括:将转换后的ipv4目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。5.根据权利要求1所述的报文转发方法,其特征在于,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为一个;所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:若所述地址转换参数的值表征不需要进行动态的ip地址转换,则将所述转换后的ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址。6.根据权利要求5所述的报文转发方法,其特征在于,在所述将所述转换后的ipv6源地址池中的ip地址确定为所述第二五元组信息中的源ip地址之后,所述方法还包括:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组
信息中的第一源端口在所述第二互联网协议栈中是否被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。7.根据权利要求1所述的报文转发方法,其特征在于,所述第一互联网协议为ipv4协议,所述第二互联网协议为ipv6协议,ipv6源地址池中的ip地址的数量为多个;所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:若所述地址转换参数的值表征需要进行动态的ip地址转换,则根据所述第一五元组信息中的第一源ip地址计算得到哈希值;根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址。8.根据权利要求7所述的报文转发方法,其特征在于,在所述根据所述哈希值以及转换后的ipv4源地址池确定所述第二五元组信息中的第二源ip地址之后,所述方法还包括:若所述端口转换参数的值表征需要进行动态的端口地址转换,则判断所述第一五元组信息中的第一源端口是否在所述第二互联网协议栈中被占用;若所述第一源端口在所述第二互联网协议栈中被占用,则选择另一端口作为所述第二五元组信息中的第二源端口。9.根据权利要求5-8任一项所述的报文转发方法,其特征在于,所述根据预先配置的地址转换策略确定转换后的第二五元组信息,还包括:将转换后的ipv6目的地址池中的第一个ip地址确定为所述第二五元组信息中的目的ip地址。10.根据权利要求1-8任一项所述的报文转发方法,其特征在于,所述根据预先配置的地址转换策略确定转换后的第二五元组信息,包括:根据预先配置的转换策略、所述地址转换参数的值以及所述端口转换参数的值动态的确定所述第二五元组信息;其中,一条源转换策略以及一条目的转换策略组成一条转换策略。11.一种报文转发装置,其特征在于,包括:接收模块,用于接收用户端发送的第一互联网协议报文;第一建立模块,用于若通过协议判断所述第一互联网协议报文为与第一互联网协议对应的报文,则将所述第一互联网协议报文进入第一互联网协议栈,并根据所述第一互联网协议报文的第一五元组信息建立与所述第一互联网协议对应的连接;确定模块,用于根据预先配置的地址转换策略确定转换后的第二五元组信息;其中,所述地址转换策略包括地址转换参数的值、端口转换参数的值、转换前的源地址池、转换前的目的地址池、转换后的源地址池以及转换后的目的地址池,地址池包括ipv6因特网地址;构造模块,用于根据所述第二五元组信息构造与第二互联网协议对应的第二互联网协议报文;第二建立模块,用于将所述第二互联网协议报文通过软中断的方式进入第二互联网协议栈,并建立与所述第二互联网协议对应的连接,实现将所述第一互联网协议报文从所述第一互联网协议一侧转发至所述第二互联网协议一侧;其中,所述第一互联网协议与所述第二互联网协议中,一个为ipv6协议,另一个为ipv4
协议。12.一种电子设备,其特征在于,包括:处理器、存储器和总线;所述处理器和所述存储器通过所述总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1-10任一项所述的报文转发方法。13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储计算机指令,所述计算机指令被计算机运行时,使所述计算机执行如权利要求1-10任一项所述的报文转发方法。
技术总结
本申请提供一种报文转发方法及装置,应用于网络通信领域,其中,在报文转发方法中,在接收到第一互联网协议对应的第一互联网协议报文之后,可以根据地址转换策略确定转换后的与第二互联网协议对应的第二五元组信息。在转换的过程中可以结合端口复用技术、地址池技术以及动态转换技术,通过动态确定地址的方式从包括多个地址的地址池中确定转换后的地址,因此可以在不暴露内网IP地址的基础上,实现将一个内网IP地址映射成多个公网IP地址为IPv6侧客户端提供服务,或者实现所有的内网IP地址通过一个或多个公网IP地址访问IPv6侧网络资源。一个或多个公网IP地址访问IPv6侧网络资源。一个或多个公网IP地址访问IPv6侧网络资源。
技术研发人员:崔益豪 鲍晓玲 孙峰 王开路 范雪俭
受保护的技术使用者:北京天融信科技有限公司 北京天融信软件有限公司
技术研发日:2021.12.03
技术公布日:2022/3/8