一种报文处理的方法及装置转让专利

申请号 : CN201910817287.X

文献号 : CN110519282A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 单忠

申请人 : 新华三信息安全技术有限公司

摘要 :

本申请提供一种报文处理的方法及装置,涉及通信技术领域。本申请的方案包括:接收终端发送的第一报文,对第一报文进行IPsec封装,得到包括第一报文数据内容的第一IPsec报文。对第一IPsec报文进行UDP封装,得到第一UDP报文,第一UDP报文包括第一IP头、终端IP地址、终端端口号和第一IPsec报文;向NAT网关发送第一UDP报文,以使得NAT网关对第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙,第二防火墙用于解封装第二UDP报文,获得包括终端IP地址、终端端口号、第一报文数据内容的第二报文,并向服务器发送第二报文。从而服务器能够根据第一指定字段区分接收到的报文的来源。

权利要求 :

1.一种报文处理的方法,其特征在于,所述方法应用于第一防火墙,所述方法包括:接收终端发送的第一报文,其中,所述第一报文的源互联网协议IP地址为终端IP地址,所述第一报文的源端口号为终端端口号;

对所述第一报文进行互联网安全协议IPsec封装,得到包括第一报文数据内容的第一IPsec报文;

对所述第一IPsec报文进行用户数据报协议UDP封装,得到第一UDP报文,所述第一UDP报文包括第一IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文;

向网络地址转换NAT网关发送所述第一UDP报文,以使得所述NAT网关对所述第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙,所述第二UDP报文包括NAT转换后的第二IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文,所述第二防火墙用于解封装所述第二UDP报文,获得包括所述终端IP地址、所述终端端口号、第一报文数据内容的第二报文,并向服务器发送所述第二报文。

2.根据权利要求1所述的方法,其特征在于,在接收终端发送的第一报文之前,所述方法还包括:生成因特网密钥交换协议IKE报文,并对所述IKE报文进行UDP封装,得到第三UDP报文,所述第三UDP报文包括第一标志位和所述IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;

向第二防火墙发送所述第三UDP报文,以使得所述第二防火墙根据所述第一标志位向所述第一防火墙发送包括所述第一标志位和IKE回复报文的第四UDP报文。

3.根据权利要求1所述的方法,其特征在于,所述第一UDP报文还包括第二标志位,所述第二标志位用于标识携带的报文类型为IPsec报文。

4.根据权利要求1所述的方法,其特征在于,所述方法还包括:

接收NAT网关发送的第五UDP报文,所述第五UDP报文包括第三IP头、所述服务器IP地址、服务器端口号和第二IPsec报文,所述第二IPsec报文包括响应所述第一报文数据内容的响应报文数据内容,且所述第三IP头的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;

解封装所述第五UDP报文,获取所述响应报文,并向所述终端转发所述响应报文。

5.一种报文处理的方法,其特征在于,所述方法应用于服务器,所述方法包括:

接收第二防火墙发送的第二报文,所述第二报文中包括终端发送的第一报文的数据内容、终端IP地址和终端端口号;

向所述第二防火墙发送响应于所述第一报文的数据内容的响应报文,所述响应报文的目的IP地址为所述终端IP地址,目的端口号为所述终端端口号。

6.一种报文处理的方法,其特征在于,所述方法应用于第二防火墙,所述方法包括:接收网络地址转换NAT网关发送的第二用户数据报协议UDP报文,所述第二UDP报文包括第二互联网协议IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一互联网安全协议IPsec报文,所述第一报文的源IP地址为所述终端IP地址,所述第一报文的源端口号为所述终端端口号;

解封装所述第二UDP报文,得到包括所述第一报文数据内容、所述终端IP地址、所述终端端口号的第二报文,并向服务器转发所述第二报文,以使所述服务器返回响应于所述第一报文数据内容的响应报文。

7.根据权利要求6所述的方法,其特征在于,所述方法还包括:

接收所述服务器响应于所述第一报文数据内容的响应报文,对所述响应报文进行IPsec封装,得到包括所述响应报文数据内容的第二IPSec报文;所述响应报文的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;

对所述第二IPsec报文进行UDP封装,得到第五UDP报文,所述第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和所述第二IPsec报文,所述第三IP头的目的地址为所述终端IP地址、目的端口号为所述终端端口号;

向NAT网关发送所述第五UDP报文,以使得所述NAT网关将所述第五UDP报文传输至第一防火墙。

8.根据权利要求6所述的方法,其特征在于,在接收NAT网关发送的第二UDP报文之前,所述方法还包括:接收第一防火墙发送的第三UDP报文,所述第三UDP报文包括第一标志位和因特网密钥交换协议IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;

解封装所述第三UDP报文,生成所述IKE报文对应的IKE回复报文;

对所述IKE回复报文进行UDP封装,得到包括所述IKE回复报文和第一标志位的第四UDP报文,向所述第一防火墙发送所述第四UDP报文。

9.根据权利要求1-8任一所述的方法,其特征在于,UDP报文的格式包括IP头、UDP头、第一字段、第二字段和报文字段;

所述第一字段用于标识业务报文的发送端的IP地址和发送端口;

所述第二字段用于表示携带的报文类型;当所述第二字段为第一标志位时,所述第二字段表示携带的报文类型为IKE报文;当所述第二字段包括第二标志位时,所述第二字段表示携带的报文类型为IPsec报文。

10.一种报文处理的装置,其特征在于,所述装置应用于第一防火墙,所述装置包括:接收模块,用于接收终端发送的第一报文,其中,所述第一报文的源互联网协议IP地址为终端IP地址,所述第一报文的源端口号为终端端口号;

封装模块,用于对所述第一报文进行互联网安全协议IPsec封装,得到包括第一报文数据内容的第一IPsec报文;

所述封装模块,还用于对所述第一IPsec报文进行用户数据报协议UDP封装,得到第一UDP报文,所述第一UDP报文包括第一IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文;

发送模块,用于向网络地址转换NAT网关发送所述第一UDP报文,以使得所述NAT网关对所述第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙,所述第二UDP报文包括NAT转换后的第二IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文,所述第二防火墙用于解封装所述第二UDP报文,获得包括所述终端IP地址、所述终端端口号、第一报文数据内容的第二报文,并向服务器发送所述第二报文。

11.根据权利要求10所述的装置,其特征在于,所述装置还包括:生成模块;

所述生成模块,用于生成因特网密钥交换协议IKE报文,并对所述IKE报文进行UDP封装,得到第三UDP报文,所述第三UDP报文包括第一标志位和所述IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;

所述发送模块,还用于向第二防火墙发送所述第三UDP报文,以使得所述第二防火墙根据所述第一标志位向所述第一防火墙发送包括所述第一标志位和IKE回复报文的第四UDP报文。

12.根据权利要求10所述的装置,其特征在于,所述装置还包括:解封装模块;

所述接收模块,还用于接收NAT网关发送的第五UDP报文,所述第五UDP报文包括第三IP头、所述服务器IP地址、服务器端口号和第二IPsec报文,所述第二IPsec报文包括响应所述第一报文数据内容的响应报文数据内容,且所述第三IP头的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;

所述解封装模块,用于解封装所述第五UDP报文,获取所述响应报文,并向所述终端转发所述响应报文。

13.一种报文处理的装置,其特征在于,所述装置应用于服务器,所述装置包括:

接收模块,用于接收第二防火墙发送的第二报文,所述第二报文中包括终端发送的第一报文的数据内容、终端IP地址和终端端口号;

发送模块,用于向所述第二防火墙发送响应于所述第一报文的数据内容的响应报文,所述响应报文的目的IP地址为所述终端IP地址,目的端口号为所述终端端口号。

14.一种报文处理的装置,其特征在于,所述装置应用于第二防火墙,所述装置包括:接收模块,用于接收网络地址转换NAT网关发送的第二用户数据报协议UDP报文,所述第二UDP报文包括第二互联网协议IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一互联网安全协议IPsec报文,所述第一报文的源IP地址为所述终端IP地址,所述第一报文的源端口号为所述终端端口号;

解封装模块,用于解封装所述第二UDP报文,得到包括所述第一报文数据内容、所述终端IP地址、所述终端端口号的第二报文,并向服务器转发所述第二报文,以使所述服务器返回响应于所述第一报文数据内容的响应报文。

15.根据权利要求14所述的装置,其特征在于,所述装置还包括封装模块;

所述接收模块,还用于接收第一防火墙发送的第三UDP报文,所述第三UDP报文包括第一标志位和因特网密钥交换协议IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;

所述解封装模块,还用于解封装所述第三UDP报文,生成所述IKE报文对应的IKE回复报文;

所述封装模块,还用于对所述IKE回复报文进行UDP封装,得到包括所述IKE回复报文和所述第一标志位的第四UDP报文,向所述第一防火墙发送所述第四UDP报文。

16.一种防火墙,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求1-4任一所述的方法步骤,或实现权利要求6-9任一所述的方法步骤。

17.一种服务器,其特征在于,包括处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现权利要求5所述的方法步骤。

说明书 :

一种报文处理的方法及装置

技术领域

[0001] 本申请涉及通信技术领域,特别是涉及一种报文处理的方法及装置。

背景技术

[0002] 网络地址转换(Network Address Translation,NAT)用于将内部网络的私有IP地址和私有端口号转换为公有IP地址和公有端口号,而互联网安全协议(Internet Protocol Security,IPsec)用于保护报文免受非法修改,因此NAT与IPsec无法结合使用。
[0003] 为了解决NAT与IPsec无法结合使用的问题,目前可以通过用户数据报协议(User Datagram Protocol,UDP)对报文进行封装,即在对报文进行IPsec封装后,再进行UDP封装,UDP封装后得到的UDP报文中包括IP头,NAT网关可根据UDP报文中的IP头进行NAT,不会对IPsec报文进行改动,从而使得NAT网关可以对经IPsec保护的报文进行NAT转换。
[0004] 然而,若连接于同一NAT网关的两个终端通过NAT网关访问同一服务器,NAT网关会将两个终端私有IP地址转换为同一公网IP地址,导致服务器无法区分接收到的报文来自哪一终端。

发明内容

[0005] 有鉴于此,本申请实施例提供一种报文处理的方法及装置,以使得服务器可以区分接收到的报文的来源。具体技术方案如下:
[0006] 第一方面,本申请提供一种报文处理的方法,所述方法应用于第一防火墙,所述方法包括:
[0007] 接收终端发送的第一报文,其中,所述第一报文的源互联网协议IP地址为终端IP地址,所述第一报文的源端口号为终端端口号;
[0008] 对所述第一报文进行互联网安全协议IPsec封装,得到包括第一报文数据内容的第一IPsec报文;
[0009] 对所述第一IPsec报文进行用户数据报协议UDP封装,得到第一UDP报文,所述第一UDP报文包括第一IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文;
[0010] 向网络地址转换NAT网关发送所述第一UDP报文,以使得所述NAT网关对所述第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙,所述第二UDP报文包括NAT转换后的第二IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文,所述第二防火墙用于解封装所述第二UDP报文,获得包括所述终端IP地址、所述终端端口号、第一报文数据内容的第二报文,并向服务器发送所述第二报文。
[0011] 在一种可能的实现方式中,在接收终端发送的第一报文之前,所述方法还包括:
[0012] 生成因特网密钥交换协议IKE报文,并对所述IKE报文进行UDP封装,得到第三UDP报文,所述第三UDP报文包括第一标志位和所述IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;
[0013] 向第二防火墙发送所述第三UDP报文,以使得所述第二防火墙根据所述第一标志位向所述第一防火墙发送包括所述第一标志位和IKE回复报文的第四UDP报文。
[0014] 在一种可能的实现方式中,所述第一UDP报文还包括第二标志位,所述第二标志位用于标识携带的报文类型为IPsec报文。
[0015] 在一种可能的实现方式中,所述方法还包括:
[0016] 接收NAT网关发送的第五UDP报文,所述第五UDP报文包括第三IP头、所述服务器IP地址、服务器端口号和第二IPsec报文,所述第二IPsec报文包括响应所述第一报文数据内容的响应报文数据内容,且所述第三IP头的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;
[0017] 解封装所述第五UDP报文,获取所述响应报文,并向所述终端转发所述响应报文。
[0018] 第二方面,本申请提供一种报文处理的方法,所述方法应用于服务器,所述方法包括:
[0019] 接收第二防火墙发送的第二报文,所述第二报文中包括终端发送的第一报文的数据内容、终端IP地址和终端端口号;
[0020] 向所述第二防火墙发送响应于所述第一报文的数据内容的响应报文,所述响应报文的目的IP地址为所述终端IP地址,目的端口号为所述终端端口号。
[0021] 第三方面,本申请提供一种报文处理的方法,所述方法应用于第二防火墙,所述方法包括:
[0022] 接收网络地址转换NAT网关发送的第二用户数据报协议UDP报文,所述第二UDP报文包括第二互联网协议IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一互联网安全协议IPsec报文,所述第一报文的源IP地址为所述终端IP地址,所述第一报文的源端口号为所述终端端口号;
[0023] 解封装所述第二UDP报文,得到包括所述第一报文数据内容、所述终端IP地址、所述终端端口号的第二报文,并向服务器转发所述第二报文,以使所述服务器返回响应于所述第一报文数据内容的响应报文。
[0024] 在一种可能的实现方式中,该方法还包括:
[0025] 接收所述服务器响应于所述第一报文数据内容的响应报文,对所述响应报文进行IPsec封装,得到包括所述响应报文数据内容的第二IPSec报文;所述响应报文的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;
[0026] 对所述第二IPsec报文进行UDP封装,得到第五UDP报文,所述第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和所述第二IPsec报文,所述第三IP头的目的地址为所述终端IP地址、目的端口号为所述终端端口号;
[0027] 向NAT网关发送所述第五UDP报文,以使得所述NAT网关将所述第五UDP报文传输至第一防火墙。
[0028] 在一种可能的实现方式中,在接收NAT网关发送的第二UDP报文之前,所述方法还包括:
[0029] 接收第一防火墙发送的第三UDP报文,所述第三UDP报文包括第一标志位和因特网密钥交换协议IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;
[0030] 解封装所述第三UDP报文,生成IKE报文对应的IKE回复报文;
[0031] 对所述IKE回复报文进行UDP封装,得到包括所述IKE回复报文和第一标志位的第四UDP报文,向所述第一防火墙发送所述第四UDP报文。
[0032] 在一种可能的实现方式中,UDP报文的格式包括IP头、UDP头、第一字段、第二字段和报文字段;
[0033] 所述第一字段用于标识业务报文的发送端的IP地址和发送端口;
[0034] 所述第二字段用于表示携带的报文类型;当所述第二字段为第一标志位时,所述第二字段表示携带的报文类型为IKE报文;当所述第二字段包括第二标志位时,所述第二字段表示携带的报文类型为IPsec报文。
[0035] 第四方面,本申请提供一种报文处理的装置,所述装置应用于第一防火墙,所述装置包括:
[0036] 接收模块,用于接收终端发送的第一报文,其中,所述第一报文的源互联网协议IP地址为终端IP地址,所述第一报文的源端口号为终端端口号;
[0037] 封装模块,用于对所述第一报文进行互联网安全协议IPsec封装,得到包括第一报文数据内容的第一IPsec报文;
[0038] 所述封装模块,还用于对所述第一IPsec报文进行用户数据报协议UDP封装,得到第一UDP报文,所述第一UDP报文包括第一IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文;
[0039] 发送模块,用于向网络地址转换NAT网关发送所述第一UDP报文,以使得所述NAT网关对所述第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙,所述第二UDP报文包括NAT转换后的第二IP头、所述终端IP地址、所述终端端口号和所述第一IPsec报文,所述第二防火墙用于解封装所述第二UDP报文,获得包括所述终端IP地址、所述终端端口号、第一报文数据内容的第二报文,并向服务器发送所述第二报文。
[0040] 在一种可能的实现方式中,所述装置还包括:生成模块;
[0041] 所述生成模块,用于生成因特网密钥交换协议IKE报文,并对所述IKE报文进行UDP封装,得到第三UDP报文,所述第三UDP报文包括第一标志位和所述IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;
[0042] 所述发送模块,用于向第二防火墙发送所述第三UDP报文,以使得所述第二防火墙根据所述第一标志位向所述第一防火墙发送包括所述第一标志位和IKE回复报文的第四UDP报文。
[0043] 在一种可能的实现方式中,所述第一UDP报文还包括第二标志位,所述第二标志位用于标识携带的报文类型为IPsec报文。
[0044] 在一种可能的实现方式中,所述装置还包括:解封装模块;
[0045] 所述接收模块,用于接收NAT网关发送的第五UDP报文,所述第五UDP报文包括第三IP头、所述服务器IP地址、服务器端口号和第二IPsec报文,所述第二IPsec报文包括响应所述第一报文数据内容的响应报文数据内容,且所述第三IP头的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;
[0046] 所述解封装模块,用于解封装所述第五UDP报文,获取所述响应报文,并向所述终端转发所述响应报文。
[0047] 第五方面,本申请提供一种报文处理的装置,所述装置应用于服务器,所述装置包括:
[0048] 接收模块,用于接收第二防火墙发送的第二报文,所述第二报文中包括终端发送的第一报文的数据内容、终端IP地址和终端端口号;
[0049] 发送模块,用于向所述第二防火墙发送响应于所述第一报文的数据内容的响应报文,所述响应报文的目的IP地址为所述终端IP地址,目的端口号为所述终端端口号。
[0050] 第六方面,本申请提供一种报文处理的装置,所述装置应用于第二防火墙,所述装置包括:
[0051] 接收模块,用于接收网络地址转换NAT网关发送的第二用户数据报协议UDP报文,所述第二UDP报文包括第二互联网协议IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一互联网安全协议IPsec报文,所述第一报文的源IP地址为所述终端IP地址,所述第一报文的源端口号为所述终端端口号;
[0052] 解封装模块,用于解封装所述第二UDP报文,得到包括所述第一报文数据内容、所述终端IP地址、所述终端端口号的第二报文,并向服务器转发所述第二报文,以使所述服务器返回响应于所述第一报文数据内容的响应报文。
[0053] 在一种实现方式中,所述装置还包括封装模块和发送模块;
[0054] 所述接收模块,还用于接收所述服务器响应于所述第一报文数据内容的响应报文,对所述响应报文进行IPsec封装,得到包括所述响应报文数据内容的第二IPSec报文;所述响应报文的目的IP地址为所述终端IP地址、目的端口号为所述终端端口号;
[0055] 所述封装模块,用于对所述第二IPsec报文进行UDP封装,得到第五UDP报文,所述第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和所述第二IPsec报文,所述第三IP头的目的地址为所述终端IP地址、目的端口号为所述终端端口号;
[0056] 所述发送模块,用于向NAT网关发送所述第五UDP报文,以使得所述NAT网关将所述第五UDP报文传输至第一防火墙。
[0057] 在一种可能的实现方式中,所述接收模块,还用于接收第一防火墙发送的第三UDP报文,所述第三UDP报文包括第一标志位和因特网密钥交换协议IKE报文,所述第一标志位用于标识携带的报文类型为IKE报文;
[0058] 所述解封装模块,还用于解封装所述第三UDP报文,生成所述IKE报文对应的IKE回复报文;
[0059] 所述封装模块,还用于对所述IKE回复报文进行UDP封装,得到包括所述IKE回复报文和所述第一标志位的第四UDP报文,向所述第一防火墙发送所述第四UDP报文。
[0060] 在一种可能的实现方式中,UDP报文的格式包括IP头、UDP头、第一字段、第二字段和报文字段;
[0061] 所述第一字段用于标识业务报文的发送端的IP地址和发送端口;
[0062] 所述第二字段用于表示携带的报文类型;当所述第二字段为第一标志位时,所述第二字段表示携带的报文类型为IKE报文;当所述第二字段包括第二标志位时,所述第二字段表示携带的报文类型为IPsec报文。
[0063] 第七方面,本申请实施例提供一种防火墙,该防火墙包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第一方面中所述的报文处理的方法,或者用于实现第三方面所述的报文处理的方法。
[0064] 第八方面,本申请提供一种服务器,该服务器包括:处理器和机器可读存储介质,所述机器可读存储介质存储有能够被所述处理器执行的机器可执行指令,所述处理器被所述机器可执行指令促使:实现第二方面中所述的报文处理的方法。
[0065] 第九方面,本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面中所述的报文处理的方法,或者用于实现第二方面所述的报文处理的方法,或者用于实现第三方面所述的报文处理的方法。
[0066] 第十方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面中所述的报文处理的方法,或者执行上述第二方面所述的报文处理的方法,或者执行上述第三方面所述的报文处理的方法。
[0067] 由上述方案可见,采用本申请实施例提供的报文处理的方法及装置,第一防火墙接收终端发送的第一报文,然后对第一报文进行IPsec封装,得到包括第一报文数据内容的第一IPsec报文,并对第一IPsec报文进行UDP封装,得到第一UDP报文,第一UDP报文包括第一IP头、终端IP地址、终端端口号和第一IPsec报文。然后第一防火墙向NAT网关发送所述第一UDP报文,以使得NAT网关对第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙。第二UDP报文包括NAT转换后的第二IP头、终端IP地址、终端端口号和第一IPsec报文。
[0068] 第二防火墙用于解封装第二UDP报文,获得包括终端IP地址、终端端口号、第一报文数据内容的第二报文,并向服务器发送第二报文。由于可见,服务器接收到的第二报文包括终端IP地址、终端端口号和第一报文数据内容第一IPsec报文。而采用现有技术的方案,对于IPsec的传输模式,由于对终端的报文进行IPsec封装时未封装终端IP头和终端端口号,服务器接收到的报文携带的外层IP头中的源IP地址为NAT转换后的公网IP地址,源端口号为公网端口号,所以服务器无法根据公网IP地址和公网端口号确定接收到的报文的来源。可见,由上文描述可知,本申请实施例中,由于第一UDP报文中除第一IP头之外还包括终端IP地址和终端端口号,即使NAT网关经将第一IP头转换为第二IP头,且在传输模式时对第二UDP报文包括的第一IPsec报文进行解封装后无法得到终端IP地址和终端端口号,但是由于第二UDP报文中仍包括终端IP地址和终端端口号,使得服务器可以接收到包括终端IP地址和终端端口号的第二报文,从而根据终端IP地址和终端端口号确定第二报文中第一报文数据内容的来源,解决了服务器无法确定接收到的报文的来源的问题。
[0069] 当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

[0070] 为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0071] 图1为本申请实施例提供的一种网络架构示意图;
[0072] 图2为本申请实施例提供的一种报文处理的方法的流程图;
[0073] 图3-1为本申请实施例提供的一种报文格式的示例性示意图;
[0074] 图3-2为本申请实施例提供的第一UDP报文格式的示例性示意图;
[0075] 图3-3为本申请实施例提供的第三UDP报文格式的示例性示意图;
[0076] 图4为本申请实施例提供的另一种报文处理的方法的流程图;
[0077] 图5为本申请实施例提供的另一种报文处理的方法的流程图;
[0078] 图6为本申请实施例提供的另一种报文处理的方法的流程图;
[0079] 图7为本申请实施例提供的另一种报文处理的方法的流程图;
[0080] 图8为本申请实施例提供的另一种报文处理的方法的流程图;
[0081] 图9为本申请实施例提供的一种报文处理的装置的结构示意图;
[0082] 图10为本申请实施例提供的另一种报文处理的装置的结构示意图;
[0083] 图11为本申请实施例提供的另一种报文处理的装置的结构示意图;
[0084] 图12为本申请实施例提供的一种防火墙的结构示意图;
[0085] 图13为本申请实施例提供的一种服务器的结构示意图。

具体实施方式

[0086] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0087] 本申请实施例提供的报文处理的方法可以应用于如图1所示的网络架构中,该网络架构中包括多个内部主机、防火墙A、NAT网关、防火墙B以及外部主机C。其中,防火墙A连接内部主机,防火墙B连接外部主机。
[0088] 其中,图1中示例性地示出了两个内部主机,分别为内部主机A和内部主机B,在实际实现中,网络架构中的设备数量不限于此。
[0089] 图1中的内部主机A和内部主机B可以为终端,外部主机C可以为服务器。
[0090] 其中,本申请实施例中的终端可以为无线路由器、手机、笔记本等具有无线通信功能的电子设备,服务器可以为应用服务器,例如购物网站的服务器、浏览器的服务器等。
[0091] 基于图1所示的网络架构,本申请实施例提供一种报文处理的方法,该方法应用于第一防火墙,第一防火墙具体可以为图1中的防火墙A,如图2所示,该方法包括:
[0092] S201、接收终端发送的第一报文。
[0093] 其中,第一报文的源IP地址为终端IP地址,第一报文的源端口号为终端端口号。
[0094] 其中,终端为图1中的内部主机A或内部主机B。例如,若终端为内部主机A,则第一报文的源IP地址为内部主机A的IP地址,源端口号为内部主机A的端口号。
[0095] S202、对第一报文进行IPsec封装,得到包括第一报文数据内容的第一IPsec报文。
[0096] 其中,IPsec协议具有两种模式,分别为传输模式和隧道模式。
[0097] 在传输模式下,在对第一报文进行IPsec封装时,只对第一报文的数据部分进行IPsec封装,不对第一报文的IP头进行IPsec封装,在这种情况下,第一IPsec报文包括第一报文的数据内容。
[0098] 在隧道模式下,对第一报文的IP头和数据部分进行IPsec封装,在这种情况下,第一IPsec报文包括第一报文。
[0099] S203、对第一IPsec报文进行UDP封装,得到第一UDP报文。
[0100] 其中,第一UDP报文包括第一IP头、终端IP地址、终端端口号和第一IPsec报文。第一IP头中的源IP地址为终端IP地址,源端口号为终端端口号,目的IP地址为服务器的IP地址,目的端口号为服务器的端口号。
[0101] 可选地,第一UDP报文还携带第二标志位,第二标志位用于标识携带的报文类型为IPsec报文。
[0102] 在一种实施方式中,采用如图3-1所示的UDP报文的格式封装UDP报文,该UDP报文的格式包括IP头、UDP头、第一字段、第二字段和报文类型。
[0103] 其中,第一字段中包括标识业务报文的发送端的IP地址和端口号,发送端是指发送报文的源头设备,在本申请实施例中发送端可以为终端或服务器。结合图1所示的组网架构,若业务报文的发送端为内部主机A,那么,第一字段中包括内部主机A的IP地址和端口号,若业务报文的发送端为外部主机C,那么第一字段中包括外部主机C的IP地址和端口号。
[0104] 第二字段中包括上述第二标志位。作为示例,第一字段可以为SESSION字段。第二字段可以为MARK字段,第二标志位可以为1。即,若MARK字段中的标志位取值为1,代表UDP报文中携带的报文类型为IPsec报文。
[0105] 针对第一UDP报文,其报文格式如图3-2所示。第一UDP报文包括第一IP头、UDP头、第一字段、第二字段和IPsec报文。其中,第一字段包括终端IP地址和终端端口号,第二字段包括第二标志位1。
[0106] S204、向NAT网关发送第一UDP报文,以使得NAT网关对第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙。
[0107] 其中,第二UDP报文包括NAT转换后的第二IP头、终端IP地址、终端端口号和第一IPsec报文。第二IP头中的源IP地址为对终端IP地址进行NAT转换后得到的公网IP地址,源端口号为对终端IP地址进行NAT转换后得到的公网端口号,目的IP地址服务器的IP地址,目的端口号为服务器的端口号。
[0108] 第二防火墙用于解封装第二UDP报文,获得包括终端IP地址、终端端口号、第一报文数据内容的第二报文,并向服务器发送第二报文。
[0109] 其中,第一报文包括IP头和第一报文数据内容。
[0110] 由于第一防火墙对第一IPsec报文进行UDP封装时在第一UDP报文中加入了第一字段,NAT网关对第一UDP报文的第一IP头进行NAT转换后,得到第二UDP报文,第二UDP报文仍包括第一字段,所以第二防火墙对第二UDP报文解封装后得到的第二报文与第一报文不同。第二报文包括第一字段,还包括第一报文数据内容,且第二报文包括的IP头中的源IP地址为NAT转换后得到的公网IP地址,源端口号为NAT转换后得到的公网端口号。
[0111] 在本申请实施例中,服务器接收到第二报文后,可从第二报文中获取终端IP地址和终端端口号,从而获知第二报文的来源。
[0112] 可见,采用本申请实施例提供的报文处理的方法,第一防火墙接收终端发送的第一报文,然后对第一报文进行IPsec封装,得到包括第一报文数据内容的第一IPsec报文,并对第一IPsec报文进行UDP封装,得到第一UDP报文,第一UDP报文包括第一IP头、终端IP地址、终端端口号和第一IPsec报文。然后第一防火墙向NAT网关发送所述第一UDP报文,以使得NAT网关对第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙。第二UDP报文包括NAT转换后的第二IP头、终端IP地址、终端端口号和第一IPsec报文。
[0113] 第二防火墙用于解封装第二UDP报文,获得包括终端IP地址、终端端口号、第一报文数据内容的第二报文,并向服务器发送第二报文。可见,服务器接收到的第二报文包括终端IP地址、终端端口号和第一报文数据内容。而采用现有技术的方案,对于IPsec的传输模式,由于对终端的报文进行IPsec封装时未封装终端IP头和终端端口号,服务器接收到的报文携带的外层IP头中的源IP地址为NAT转换后的公网IP地址,源端口号为公网端口号,所以服务器无法根据公网IP地址和公网端口号确定接收到的报文的来源。
[0114] 由上文描述可知,本申请实施例中,由于第一UDP报文中除第一IP头之外还包括终端IP地址和终端端口号,即使NAT网关将第一IP头转换为第二IP头,且在传输模式时对第二UDP报文包括的第一IPsec报文进行解封装后无法得到终端IP地址和终端端口号,但是由于第二UDP报文中包括终端IP地址和终端端口号,使得服务器可以接收到包括终端IP地址和终端端口号的第二报文,从而根据终端IP地址和终端端口号确定第二报文中第一报文数据内容的来源,解决了服务器无法确定接收到的报文的来源的问题。
[0115] 在本申请另一实施例中,服务器接收到第二报文后,服务器可回复响应报文,相应地,第一防火墙可接收NAT网关发送的第五UDP报文。然后解封装第五UDP报文,获取响应报文,并向终端转发该响应报文。
[0116] 其中,第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和第二IPsec报文,第二IPsec报文包括响应第一报文数据内容的响应报文数据内容,第三IP头的目的IP地址为终端IP地址,目的端口号为终端端口号。另外,第三IP头中的源IP地址为服务器IP地址,源端口号为服务器端口号。
[0117] 在传输模式下,对响应报文进行IPsec封装时,只对响应报文的数据部分进行IPsec封装,不对响应报文的IP头进行IPsec封装,在这种情况下,第二IPsec报文包括响应报文的数据内容。
[0118] 在隧道模式下,对响应报文的IP头和数据部分进行IPsec封装,在这种情况下,第二IPsec报文包括响应报文。
[0119] 在一种实施方式中,第五UDP报文中还包括第二标志位,第二标志位用于标识携带的报文类型为IPsec报文。
[0120] 在本申请实施例的一种实现方式中,在执行图1的流程之前,第一防火墙和第二防火墙需进行IKE协商,如图4所示,具体包括以下步骤:
[0121] S401、第一防火墙生成IKE报文,并对IKE报文进行UDP封装,得到第三UDP报文。
[0122] 其中,第三UDP报文包括第一标志位和IKE报文,第一标志位用于标识携带的报文类型为IKE报文。
[0123] 在一个实施例中,第三UDP报文的格式可以如图3-3所示。
[0124] 其中,第一字段标识业务报文的发送端的IP地址和发送端口。发送端是指发送报文的源头设备,在本申请实施例中发送端可以为终端或服务器。因为IKE协商阶段并不发送业务报文,因此第一字段为空。作为示例,第一字段可以为SESSION字段。
[0125] 第二字段中包括上述第一标志位。第二字段可以为MARK字段,第一标志位可以为0。即,若MARK字段中的标志位取值为0,代表UDP报文中携带的报文类型为IKE报文/IKE回复报文。
[0126] S402、第一防火墙向第二防火墙发送第三UDP报文,以使得第二防火墙根据第一标志位向第一防火墙发送包括第一标志位和IKE回复报文的第四UDP报文。
[0127] 其中,第二防火墙接收到第三UDP报文后,可根据第一标志位确定接收到的报文为IKE协商阶段的报文,所以可向第一防火墙发送包括第一标志位和IKE回复报文的第四UDP报文。第一防火墙也可根据第四UDP报文中的第一标志位识别出第四UDP报文中包括IKE回复报文。
[0128] 在本申请实施例中,第一防火墙与第二防火墙在IKE协商过程交互的UDP报文均携带第一标志位。
[0129] 对应于图2所示的实施例,本申请实施例还提供一种报文处理的方法,以服务器的角度进行描述,服务器可以为图1中的外部主机,如图5所示,该方法包括:
[0130] S501、接收第二防火墙发送的第二报文。
[0131] 其中,第二报文中包括终端发送的第一报文的数据内容、终端IP地址和终端端口号。
[0132] S502、向第二防火墙发送响应于第一报文的数据内容的响应报文。
[0133] 其中,响应报文的目的IP地址为终端IP地址,目的端口号为终端端口号。
[0134] 采用本申请实施例提供的报文处理的方法,服务器可接收第二防火墙发送的第二报文,并向第二防火墙发送响应于第一报文的数据内容的响应报文。由于第二报文包括终端IP地址和终端端口号,使得服务器可以获知第一报文的数据内容的来源,从而根据该终端IP地址和终端端口号回复响应报文,解决了服务器无法确定报文来源的问题。
[0135] 对应于图2、图5所示的实施例,本申请实施例还提供另一种报文处理的方法,以第二防火墙的角度进行描述,第二防火墙即为图1中的防火墙B,如图6所示,具体包括以下步骤:
[0136] S601、接收NAT网关发送的第二UDP报文。
[0137] 其中,第二UDP报文包括第二IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一IPsec报文,第一报文的源IP地址为终端IP地址,第一报文的源端口号为终端端口号。
[0138] 第二IP头中的源IP地址为对终端IP地址进行NAT转换后得到的公网IP地址,源端口号为对终端IP地址进行NAT转换后得到的公网端口号,目的IP地址服务器的IP地址,目的端口号为服务器的端口号。
[0139] S602、解封装第二UDP报文,得到包括第一报文数据内容、终端IP地址、终端端口号的第二报文,并向服务器转发第二报文,以使服务器返回响应于第一报文数据内容的响应报文。
[0140] 在一个实施例中,在向服务器转发第二报文后,还包括步骤S603至S605。
[0141] S603、接收服务器响应于第一报文数据内容的响应报文,对响应报文进行IPsec封装,得到包括响应报文数据内容的第二IPsec报文。
[0142] 其中,响应报文的目的IP地址为终端IP地址、目的端口号为终端端口号。响应报文的格式与第一报文的格式相同。
[0143] S604、对第二IPsec报文进行UDP封装,得到第五UDP报文。
[0144] 其中,第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和第二IPsec报文。
[0145] 第三IP头中的源IP地址为服务器IP地址,源端口号为服务器端口号,目的地址为终端IP地址,目的端口号为终端端口号。
[0146] S605、向NAT网关发送第五UDP报文,以使得NAT网关将第五UDP报文传输至第一防火墙。
[0147] 一个实施例中,NAT网关接收到第五UDP报文,不对第五UDP报文进行NAT转换,可向第一防火墙转发第五UDP报文。第一防火墙接收到第五UDP报文后,对第五UDP报文进行解封装,获取响应报文,并向终端转发该响应报文。
[0148] 在另一个实施例中,NAT网关可以对第五UDP报文进行NAT转换,由于转换的是第三IP头中的源IP地址和源端口号,目的地址和目的端口号不变,所以第五UDP报文中的响应报文数据内容仍可准确传输至终端。
[0149] 采用本申请实施例提供的报文处理的方法,第二防火墙接收NAT网关发送的第二UDP报文,第二UDP报文包括第二IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一IPsec报文,进而对第二UDP解封装后,可得到包括第一报文数据内容、终端IP地址、终端端口号的第二报文,并向服务器转发第二报文,使得服务器可以从第二报文中确定第一报文数据内容的来源。
[0150] 然后第二防火墙可接收服务器响应于第一报文数据内容的响应报文,对响应报文进行IPsec封装以及UDP封装后,得到第五UDP报文,向NAT网关发送第五UDP报文,以使得NAT网关将第五UDP报文传输至第一防火墙。由于第三IP头的目的IP地址为终端IP地址,目的端口号为终端端口号,使得第一防火墙可以在对第五UDP解封装后,将响应报文发送至终端。所以,采用本申请实施例服务器可以区分接收到的报文的来源,并对接收到的报文进行正确地响应。
[0151] 对应于图4的实施例,在执行图6的流程之前,第一防火墙和第二防火墙需进行IKE协商,如图7所示,具体包括如下步骤:
[0152] S701、第二防火墙接收第一防火墙发送的第三UDP报文。
[0153] 其中,第三UDP报文包括第一标志位和IKE报文,第一标志位用于标识携带的报文类型为IKE报文。
[0154] S702、第二防火墙解封装第三UDP报文,生成IKE报文对应的IKE回复报文。
[0155] S703、第二防火墙对IKE回复报文进行UDP封装,得到包括第一标志位和IKE回复报文的第四UDP报文,向第一防火墙发送第四UDP报文。
[0156] 其中,第一防火墙接收到第四UDP报文后,可根据第一标志位确定接收到的报文为IKE协商阶段的报文,进而根据该第四UDP报文继续进行IKE协商过程。
[0157] 在本申请实施例中,第一防火墙与第二防火墙在IKE协商过程交互的UDP报文均携带第一标志位。
[0158] 以下以终端、第一防火墙、NAT设备、第二防火墙、服务器之间的交互流程对本申请实施例提供的报文处理的方法进行描述,如图8所示,包括如下步骤:
[0159] S801、终端向第一防火墙发送第一报文。相应地,第一防火墙接收第一报文。
[0160] 其中,第一报文的源IP地址为终端IP地址,第一报文的源端口号为终端端口号。
[0161] S802、第一防火墙对第一报文进行IPsec封装,得到包括第一报文数据内容的第一IPsec报文。
[0162] S803、第一防火墙对第一IPsec报文进行UDP封装,得到第一UDP报文。
[0163] 其中,第一UDP报文包括第一IP头、终端IP地址、终端端口号和第一IPsec报文。
[0164] S804、第一防火墙向NAT网关发送第一UDP报文。相应地,NAT网关接收第一UDP报文。
[0165] S805、NAT网关对第一UDP报文的第一IP头进行NAT转换,得到第二UDP报文。
[0166] 其中,第二UDP报文包括NAT转换后的第二IP头、终端IP地址、终端端口号和第一IPsec报文。
[0167] S806、NAT网关向第二防火墙发送第二UDP报文。相应地,第二防火墙接收第二UDP报文。
[0168] S807、第二防火墙解封装第二UDP报文,得到第二报文。
[0169] 其中,第二报文包括第一报文数据内容、终端IP地址、终端端口号。
[0170] S808、第二防火墙向服务器发送第二报文。相应地,服务器接收第二报文。
[0171] S809、服务器向第二防火墙发送用于响应第一报文数据内容的响应报文。相应地,第二防火墙接收响应报文。
[0172] 其中,响应报文的目的IP地址为终端IP地址、目的端口号为终端端口号。
[0173] S810、第二防火墙对响应报文进行IPsec封装,得到包括响应报文数据内容的第二IPSec报文。
[0174] S811、第二防火墙对第二IPsec报文进行UDP封装,得到第五UDP报文。
[0175] 其中,第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和第二IPsec报文。第三IP头中的源IP地址为服务器IP地址,源端口号为服务器端口号,目的IP地址为终端IP地址,目的端口号为终端端口号。
[0176] S812、第二防火墙向NAT网关发送第五UDP报文。相应地,NAT网关接收第五UDP报文。
[0177] S813、NAT网关向第一防火墙发送第五UDP报文。相应地,第一防火墙接收第五UDP报文。
[0178] S814、第一防火墙对第五UDP报文进行解封装,得到响应报文数据内容和目的IP地址、目的端口号,其中,目的IP地址为终端IP地址,目的端口号为终端端口号。
[0179] S815、第一防火墙向终端发送响应报文。相应地,终端接收响应报文。
[0180] 其中,上述实施例中涉及到的UDP报文的格式包括IP头、UDP头、第一字段、第二字段和报文字段。具体参阅图3-1至3-3的描述。
[0181] 其中,第一字段用于标识业务报文的发送端的IP地址和发送端口。发送端是指发送报文的源头设备,在本申请实施例中发送端可以为终端或服务器。例如,第一UDP报文中的第一字段用于标识终端IP地址和终端端口号。第五UDP报文中的第一字段用于标识服务器IP地址和服务器端口号。
[0182] 第二字段用于表示携带的报文类型;当第二字段为第一标志位时,第二字段表示携带的报文类型为IKE报文;当第二字段包括第二标志位时,第二字段表示携带的报文类型为IPsec报文。
[0183] 基于相同的技术构思,本申请实施例还提供一种报文处理的装置,该装置应用于第一防火墙,例如图1中的防火墙A,如图9所示,该装置包括:接收模块901、封装模块902和发送模块903。
[0184] 接收模块901,用于接收终端发送的第一报文,其中,第一报文的源互联网协议IP地址为终端IP地址,第一报文的源端口号为终端端口号;
[0185] 封装模块902,用于对第一报文进行互联网安全协议IPsec封装,得到包括第一报文数据内容的第一IPsec报文;
[0186] 封装模块902,还用于对第一IPsec报文进行用户数据报协议UDP封装,得到第一UDP报文,第一UDP报文包括第一IP头、终端IP地址、终端端口号和第一IPsec报文;
[0187] 发送模块903,用于向网络地址转换NAT网关发送第一UDP报文,以使得NAT网关对第一UDP报文的第一IP头进行NAT转换,并将NAT转换后的第二UDP报文传输至第二防火墙,第二UDP报文包括NAT转换后的第二IP头、终端IP地址、终端端口号和第一IPsec报文,第二防火墙用于解封装第二UDP报文,获得包括终端IP地址、终端端口号、第一报文数据内容的第二报文,并向服务器发送第二报文。
[0188] 可选地,该装置还包括:生成模块;
[0189] 生成模块,用于生成因特网密钥交换协议IKE报文,并对IKE报文进行UDP封装,得到第三UDP报文,第三UDP报文包括第一标志位和IKE报文,第一标志位用于标识携带的报文类型为IKE报文;
[0190] 发送模块903,还用于向第二防火墙发送第三UDP报文,以使得第二防火墙根据第一标志位向第一防火墙发送包括第一标志位和IKE回复报文的第四UDP报文。
[0191] 其中,第一UDP报文还包括第二标志位,第二标志位用于标识携带的报文类型为IPsec报文。
[0192] 可选地,该装置还包括:解封装模块;
[0193] 接收模块901,还用于接收NAT网关发送的第五UDP报文,第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和第二IPsec报文,第二IPsec报文包括响应第一报文数据内容的响应报文数据内容,且第三IP头的目的IP地址为终端IP地址、目的端口号为终端端口号;
[0194] 解封装模块,用于解封装第五UDP报文,获取响应报文,并向终端转发响应报文。
[0195] 基于相同的技术构思,本申请实施例还提供一种报文处理的装置,该装置应用于服务器,例如图1中的外部主机C,如图10所示,该装置包括:接收模块1001和发送模块1002。
[0196] 接收模块1001,用于接收第二防火墙发送的第二报文,第二报文中包括终端发送的第一报文的数据内容、终端IP地址和终端端口号;
[0197] 发送模块1002,用于向第二防火墙发送响应于第一报文的数据内容的响应报文,响应报文的目的IP地址为终端IP地址,目的端口号为终端端口号。
[0198] 基于相同的技术构思,本申请实施例还提供一种报文处理的装置,该装置应用于第二防火墙,例如图1中的防火墙B,如图11所示,该装置包括:接收模块1101、解封装模块1102,可选地,该装置还包括封装模块1103和发送模块1104。
[0199] 接收模块1101,用于接收网络地址转换NAT网关发送的第二用户数据报协议UDP报文,第二UDP报文包括第二互联网协议IP头、终端IP地址、终端端口号和包括第一报文数据内容的第一互联网安全协议IPsec报文,第一报文的源IP地址为终端IP地址,第一报文的源端口号为终端端口号;
[0200] 解封装模块1102,用于解封装第二UDP报文,得到包括第一报文数据内容、终端IP地址、终端端口号的第二报文,并向服务器转发第二报文;
[0201] 接收模块1101,还用于接收服务器响应于第一报文数据内容的响应报文,对响应报文进行IPsec封装,得到包括响应报文数据内容的第二IPSec报文;响应报文的目的IP地址为终端IP地址、目的端口号为终端端口号;
[0202] 封装模块1103,用于对第二IPsec报文进行UDP封装,得到第五UDP报文,第五UDP报文包括第三IP头、服务器IP地址、服务器端口号和第二IPsec报文,第三IP头的目的地址为终端IP地址、目的端口号为终端端口号;
[0203] 发送模块1104,用于向NAT网关发送第五UDP报文,以使得NAT网关将第五UDP报文传输至第一防火墙。
[0204] 可选地,接收模块1101,还用于接收第一防火墙发送的第三UDP报文,第三UDP报文包括第一标志位和因特网密钥交换协议IKE报文,第一标志位用于标识携带的报文类型为IKE报文;
[0205] 解封装模块1102,还用于解封装第三UDP报文,生成IKE报对应的IKE回复报文;
[0206] 封装模块1103,还用于对IKE回复报文进行UDP封装,得到包括IKE回复报文和第一标志位的第四UDP报文,向第一防火墙发送第四UDP报文。
[0207] 可选地,UDP报文的格式包括IP头、UDP头、第一字段、第二字段和报文字段;
[0208] 第一字段用于标识业务报文的发送端的IP地址和发送端口;
[0209] 第二字段用于表示携带的报文类型;当第二字段为第一标志位时,第二字段表示携带的报文类型为IKE报文;当第二字段包括第二标志位时,第二字段表示携带的报文类型为IPsec报文。
[0210] 本申请实施例还提供了一种防火墙,该防火墙可以为上述实施例中的第一防火墙或第二防火墙,如图12所示,包括处理器1201、通信接口1202、存储器1203和通信总线1204,其中,处理器1201,通信接口1202,存储器1203通过通信总线1204完成相互间的通信,[0211] 存储器1203,用于存放计算机程序;
[0212] 处理器1201,用于执行存储器1203上所存放的程序时,实现上述方法实施例中由第一防火墙执行的步骤,或用于实现上述方法实施例中第二防火墙执行的步骤。
[0213] 上述防火墙提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0214] 通信接口用于上述防火墙与其他设备之间的通信。
[0215] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0216] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0217] 本申请实施例还提供了一种服务器,如图13所示,包括处理器1301、通信接口1302、存储器1303和通信总线1304,其中,处理器1301,通信接口1302,存储器1303通过通信总线1304完成相互间的通信,
[0218] 存储器1303,用于存放计算机程序;
[0219] 处理器1301,用于执行存储器1303上所存放的程序时,实现上述方法实施例中由服务器执行的步骤。
[0220] 上述服务器提到的通信总线可以是外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry  Standard Architecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0221] 通信接口用于上述服务器与其他设备之间的通信。
[0222] 存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
[0223] 上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
[0224] 在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一报文处理的方法的步骤。
[0225] 在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一报文处理的方法。
[0226] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
[0227] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0228] 本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
[0229] 以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。