适用于多种应用层协议的网络地址转换装置和方法
【专利摘要】本发明提供一种适用于多种应用层协议的网络地址转换装置和方法,通过识别报文所采用的目标应用层协议,在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对报文进行解码,获得报文的载荷,由于预先利用解码策略库存储各个应用层协议的解码策略,使得适用于多种应用层协议的网络地址转换装置能够适用各个应用层协议,从而解决了现有技术中功能单一的技术问题。
【专利说明】适用于多种应用层协议的网络地址转换装置和方法
【技术领域】
[0001]本发明涉及通信技术,尤其涉及一种适用于多种应用层协议的网络地址转换装置和方法。
【背景技术】
[0002]网络地址转换(Network Address Translation, NAT)是一种将报文中的私有IP地址和端口转化为公网IP地址和端口的转换技术。一般NAT仅用于实现对报文的报文头中的IP地址和端口进行转换,但对于一些应用层协议,如:多媒体协议H.323和会话发起协议(Session Initiation Protocol, SIP),以及文件传输协议(File Transfer Protocol,FTP)、简单邮件传送协议(Simple Mail Transfer Protocol, SMTP)等,由于在报文的载荷中带有地址和端口信息,因而需要采用NAT应用层网关(Application Level Gateway,ALG)对采用上述应用层协议的报文进行应用层的解析和网络地址转换。
[0003]由于现有的NAT ALG,分别针对不同应用层协议设置不同的网络地址转换装置,当增加了新的应用层协议时,需要开发针对新的应用层协议的新的网络地址转换装置,导致网络地址转换装置仅能够适用于一种应用层协议,功能单一。
【发明内容】
[0004]本发明提供一种适用于多种应用层协议的适用于多种应用层协议的网络地址转换装置和方法,用于解决现有网络地址转换装置仅能够适用于一种应用层协议,导致功能单一的技术问题。
[0005]本发明的第一个方面是提供一种适用于多种应用层协议的网络地址转换装置,包括:
[0006]解码模块,用于利用控制连接,接收用于建立两主机之间的数据连接的控制报文;识别所述控制报文所采用的目标应用层协议;在解码策略库所存储的各个应用层协议的解码策略中查询所述目标应用层协议的解码策略,根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷;所述控制连接是在所述两主机之间预先建立的;
[0007]转换模块,用于若所述控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号,生成所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系;利用关联表中的关联表项存储所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系;
[0008]调整模块,用于利用所述关联表项中的所述目标IP地址和所述目标端口号,对所述控制数据包的载荷中的所述私网IP地址和所述私网端口号进行网络地址转换;发送网络地址转换后的所述控制报文,以建立所述两主机之间的数据连接。[0009]本发明的另一个方面是提供一种适用于多种应用层协议的网络地址转换方法,包括:
[0010]利用控制连接,接收用于建立两主机之间的数据连接的控制报文;所述控制连接是在所述两主机之间预先建立的;
[0011 ] 识别所述控制报文所采用的目标应用层协议;
[0012]在解码策略库所存储的各个应用层协议的解码策略中查询所述目标应用层协议的解码策略,根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷;
[0013]若所述控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号,生成所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系;
[0014]利用关联表中的关联表项存储所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系;
[0015]利用所述关联表项中的所述目标IP地址和所述目标端口号,对所述控制数据包的载荷中的所述私网IP地址和所述私网端口号进行网络地址转换;
[0016]发送网络地址转换后的所述控制报文,以建立所述两主机之间的数据连接。
[0017]本发明提供的适用于多种应用层协议的网络地址转换装置和方法,通过识别报文所采用的目标应用层协议,在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对报文进行解码,获得报文的载荷,由于预先利用解码策略库存储各个应用层协议的解码策略,使得适用于多种应用层协议的网络地址转换装置能够适用各个应用层协议,从而解决了功能单一的技术问题。由于分别由解码模块和转换模块分别执行应用层协议的解码和网络地址转换,隔离了具体应用层协议的解码的部分和网络地址转换过程,另外,由于该适用于多种应用层协议的网络地址转换装置可以支持通过对解码策略库的修改,完成对新的应用层协议的扩展,使得网络地址转换与各应用层协议之间的耦合度也较低。
【专利附图】
【附图说明】
[0018]图1为本发明一实施例提供的适用于多种应用层协议的网络地址转换装置的结构示意图;
[0019]图2为本发明一实施例提供的适用于多种应用层协议的网络地址转换方法的流程不意图;
[0020]图3为本发明另一实施例提供的一种适用于多种应用层协议的网络地址转换方法的流程示意图;
[0021]图4为本发明另一实施例提供的另一种适用于多种应用层协议的网络地址转换方法的流程示意图。
【具体实施方式】
[0022]图1为本发明一实施例提供的适用于多种应用层协议的网络地址转换装置的结构示意图,本实施例中的适用于多种应用层协议的网络地址转换装置可安装于应用层网关中,如图1所示,适用于多种应用层协议的网络地址转换装置,包括:解码模块11、转换模块12和调整模块13。
[0023]解码模块11,用于利用控制连接,接收用于建立两主机之间的数据连接的控制报文;识别控制报文所采用的目标应用层协议;在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对控制报文进行解码,获得控制报文的载荷。
[0024]其中,控制连接是在两主机之间预先建立的。
[0025]转换模块12,与解码模块11连接,用于若控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号,生成所述控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系;利用关联表中的关联表项存储控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。
[0026]调整模块13,与转换模块12连接,用于利用关联表项中的目标IP地址和目标端口号,对控制数据包的载荷中的所述私网IP地址和所述私网端口号进行网络地址转换;发送网络地址转换后的所述控制报文,以建立所述两主机之间的数据连接。
[0027]本实施例中,通过识别报文所采用的目标应用层协议,在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对报文进行解码,获得报文的载荷,由于预先利用解码策略库存储各个应用层协议的解码策略,使得适用于多种应用层协议的网络地址转换装置能够适用各个应用层协议,从而解决了功能单一的技术问题。
[0028]本发明另一实施例提供的适用于多种应用层协议的网络地址转换装置,在上一实施例所提供的适用于多种应用层协议的网络地址转换装置的基础上,解码模块11,还可进一步用于建立所述两主机之间的数据连接之后,利用数据连接,接收用于在两台主机之间传输数据的数据报文,识别数据报文所采用的样本应用层协议,在解码策略库中查询样本应用层协议的解码策略,根据样本应用层协议的解码策略,对数据报文进行解码,获得数据报文的载荷。
[0029]转换模块12,还用于若数据报文的载荷中存在私网IP地址和私网端口号,根据所述数据报文的载荷中的私网IP地址和私网端口号,以及所述数据报文所采用的所述样本应用层协议,在所述关联表中进行匹配,获得匹配中的目标关联表项;利用所述目标关联表项中的所述目标IP地址和所述目标端口号,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换。
[0030]其中,目标关联表项中的目标应用层协议、目标关联表项中的私网IP地址和私网端口号和分别与样本应用层协议、数据报文的载荷中的私网IP地址和私网端口号相同。
[0031]调整模块13,还用于发送网络地址转换后的所述数据报文。
[0032]进一步,解码模块,还用于根据样本应用层协议的解码策略,对数据报文进行解码,获得数据报文的载荷之后,获得数据报文的报文头。
[0033]相应的,转换模块12,还用于在利用目标关联表项中的私网IP地址和私网端口号,对数据报文载荷中的私网IP地址和私网端口号进行网络地址转换后,建立数据报文的报文头中的公网IP地址和公网端口号,与目标关联表项之间的对应关系,利用数据流表项存储数据报文的报文头中的公网IP地址和公网端口号,与目标关联表项中的私网IP地址、私网端口号、目标IP地址、目标端口号和目标应用层协议之间的对应关系,以利用所述数据流表项,识别所述两主机之间传输的数据流。
[0034]进一步,转换模块12,还用于获得所述数据报文的报文头之后,对所述数据报文的报文头中的私网IP地址和私网端口号进行网络地址转换。
[0035]相应的,解码模块11,还用于根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷之后,获得所述控制报文的报文头。转换模块,还用于对所述控制报文的报文头中的私网IP地址和私网端口号进行网络地址转换。
[0036]更近一步,调整模块13,还用于在发送所述网络地址转换后的控制报文之前,根据所述目标应用层协议,对所述网络地址转换后的控制报文中的长度字段进行调整;在发送所述网络地址转换后的数据报文之前,根据所述数据报文所采用的应用层协议,对所述网络地址转换后的数据报文中的长度字段进行调整。
[0037]本实施例中,通过识别报文所采用的目标应用层协议,在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对报文进行解码,获得报文的载荷,由于预先利用解码策略库存储各个应用层协议的解码策略,使得适用于多种应用层协议的网络地址转换装置能够适用各个应用层协议,从而解决了功能单一的技术问题。并且,该装置层次分明,降低了应用层协议与该装置之间的耦合度,提高了应用层协议的可扩展性。
[0038]图2为本发明一实施例提供的适用于多种应用层协议的网络地址转换方法的流程示意图,本实施例中的适用于多种应用层协议的网络地址转换方法可由应用层网关实施,如图2所示,适用于多种应用层协议的网络地址转换方法,包括:
[0039]201、利用控制连接,接收用于建立两主机之间的数据连接的控制报文。
[0040]其中,控制连接是在两主机之间预先建立的。
[0041]202、识别控制报文所采用的目标应用层协议。
[0042]203、在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对控制报文进行解码,获得控制报文的载荷。
[0043]204、若控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号,生成控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。
[0044]需要说明的是,若所述控制报文的载荷中存在公网IP地址和公网端口号,利用关联表项记录该公网IP地址和公网端口号。
[0045]205、利用关联表中的关联表项存储控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。
[0046]206、利用关联表项中的目标IP地址和目标端口号,对控制数据包的载荷中的私网IP地址和私网端口号进行网络地址转换。
[0047]207、发送网络地址转换后的控制报文,以建立两主机之间的数据连接。
[0048]本实施例中,通过识别报文所采用的目标应用层协议,在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对报文进行解码,获得报文的载荷,由于预先利用解码策略库存储各个应用层协议的解码策略,使得适用于多种应用层协议的网络地址转换装置能够适用各个应用层协议,从而解决了功能单一的技术问题。
[0049]图3为本发明另一实施例提供的一种适用于多种应用层协议的网络地址转换方法的流程示意图,本实施例中的适用于多种应用层协议的网络地址转换方法可由应用层网关实施,如图3所示,包括:
[0050]301、利用控制连接,接收用于建立两主机之间的数据连接的控制报文。
[0051]其中,控制连接是在两主机之间预先建立的。
[0052]302、识别控制报文所采用的目标应用层协议。
[0053]303、在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对控制报文进行解码,获得控制报文的载荷,控制报文的报文头。
[0054]进一步,根据目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的报文头之后,对控制报文的报文头中的私网IP地址和私网端口号进行网络地址转换。
[0055]需要说明的是,可将获得的控制报文的载荷和控制报文的报文头缓存在缓存表中,以便304中,根据缓存表中是否存在控制报文的载荷和控制报文判断控制报文的载荷中存在私网IP地址和私网端口号。或者在获得控制报文的载荷和控制报文的报文头之后,若判断出控制报文的载荷中存在私网IP地址和私网端口号,将该私网IP地址和私网端口号缓存在缓存表中,以便304中,根据缓存表中是否存在该私网IP地址和私网端口号,判断控制报文的载荷中存在私网IP地址和私网端口号。
[0056]304、若控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号,生成控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。
[0057]305、利用关联表中的关联表项存储控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。
[0058]306、利用关联表项中的目标IP地址和目标端口号,对控制数据包的载荷中的私网IP地址和私网端口号进行网络地址转换。
[0059]进一步,根据所述目标应用层协议,对网络地址转换后的控制报文中的长度字段进行调整。
[0060]307、发送网络地址转换后的控制报文,以建立两主机之间的数据连接。
[0061]308、利用数据连接,接收用于在两台主机之间传输数据的数据报文。
[0062]309、识别数据报文所采用的样本应用层协议。
[0063]310、在解码策略库中查询样本应用层协议的解码策略。
[0064]311、根据样本应用层协议的解码策略,对数据报文进行解码,获得数据报文的载荷,数据报文的报文头。
[0065]进一步,获得数据报文的报文头之后,对数据报文的报文头中的私网IP地址和私网端口号进行网络地址转换。[0066]312、若数据报文的载荷中存在私网IP地址和私网端口号,根据数据报文的载荷中的私网IP地址和私网端口号,以及所述数据报文所采用的所述样本应用层协议,在所述关联表中进行匹配,获得匹配中的目标关联表项。
[0067]其中,目标关联表项中的目标应用层协议、所述目标关联表项中的私网IP地址和私网端口号和分别与所述样本应用层协议、所述数据报文的载荷中的私网IP地址和私网端口号相同。
[0068]313、利用所述目标关联表项中的所述目标IP地址和所述目标端口号,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换。
[0069]进一步,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换后,建立所述数据报文的报文头中的公网IP地址和公网端口号,与所述目标关联表项之间的对应关系,利用数据流表项存储所述数据报文的报文头中的公网IP地址和公网端口号,与所述目标关联表项中的私网IP地址、私网端口号、目标IP地址、目标端口号和目标应用层协议之间的对应关系,以利用所述数据流表项,识别所述两主机之间传输的数据流。
[0070]314、根据所述数据报文所采用的应用层协议,对所述网络地址转换后的数据报文中的长度字段进行调整。
[0071]315、发送网络地址转换后的所述数据报文。
[0072]本实施例中,通过识别报文所采用的目标应用层协议,在解码策略库所存储的各个应用层协议的解码策略中查询目标应用层协议的解码策略,根据目标应用层协议的解码策略,对报文进行解码,获得报文的载荷,由于预先利用解码策略库存储各个应用层协议的解码策略,使得适用于多种应用层协议的网络地址转换装置能够适用各个应用层协议,从而解决了功能单一的技术问题。
[0073]为了清楚说明本实施例,本实施例还提供了另一种适用于多种应用层协议的网络地址转换方法,作为一种可实现方式,其中,接收的三条报文分别采用了 sip、h.323和FTP协议,图4为本发明另一实施例提供的另一种适用于多种应用层协议的网络地址转换方法的流程示意图,如图4所示,包括:
[0074]401、识别各报文所采用的目标应用层协议。
[0075]其中,报文为控制报文或数据报文。
[0076]识别出三条报文分别采用了 sip、h.323和FTP协议,即目标应用层协议分别为sip、h.323和FTP协议,从而根据目标应用层协议,对各报文进行解码。
[0077]402a、根据sip应用层协议的解码策略进行解码。
[0078]402b、根据h.323应用层协议的解码策略进行解码。
[0079]402c、根据FTP应用层协议的解码策略进行解码。
[0080]其中,402a、402b和402c可并行执行。
[0081 ] 403、获得各报文的载荷和各报文的报文头。
[0082]404、对各报文的载荷中的私网IP地址和私网端口号进行网络地址转换。
[0083]若该报文为控制报文,且控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号,生成控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。利用关联表中的关联表项存储控制报文的载荷中的私网IP地址和私网端口号,与目标IP地址、目标端口号和目标应用层协议之间的对应关系。利用关联表项中的目标IP地址和目标端口号,对控制数据包的载荷中的私网IP地址和私网端口号进行网络地址转换。
[0084]若该报文为数据报文,且数据报文的载荷中存在私网IP地址和私网端口号,根据数据报文的载荷中的私网IP地址和私网端口号,以及所述数据报文所采用的所述样本应用层协议,在所述关联表中进行匹配,获得匹配中的目标关联表项。利用所述目标关联表项中的所述目标IP地址和所述目标端口号,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换。
[0085]405a、根据sip应用层协议进行包调整。
[0086]405b、根据h.323应用层协议进行包调整。
[0087]405c、根据FTP应用层协议进行包调整。
[0088]其中,405a、405b和405c可并行执行,分别根据报文所采用的目标应用层协议,对报文中的长度字段进行调整。
[0089]406、发送调整后的报文。
[0090]本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:R0M、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
[0091]最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
【权利要求】
1.一种适用于多种应用层协议的网络地址转换装置,其特征在于,包括: 解码模块,用于利用控制连接,接收用于建立两主机之间的数据连接的控制报文;识别所述控制报文所采用的目标应用层协议;在解码策略库所存储的各个应用层协议的解码策略中查询所述目标应用层协议的解码策略,根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷;所述控制连接是在所述两主机之间预先建立的; 转换模块,与解码模块连接,用于接收解码模块获得的所述控制报文的载荷,若所述控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号;生成所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系;利用关联表中的关联表项存储所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系; 调整模块,与转换模块连接,用于利用所述转换模块所存储的所述关联表项中的所述目标IP地址和所述目标端口号,对所述控制数据包的载荷中的所述私网IP地址和所述私网端口号进行网络地址转换;发送网络地址转换后的所述控制报文,以建立所述两主机之间的数据连接。
2.根据权利要求1所述的适用于多种应用层协议的网络地址转换装置,其特征在于, 所述解码模块,还用于建 立所述两主机之间的数据连接之后,利用所述数据连接,接收用于在所述两台主机之间传输数据的数据报文;识别所述数据报文所采用的样本应用层协议;在解码策略库中查询所述样本应用层协议的解码策略;根据所述样本应用层协议的解码策略,对所述数据报文进行解码,获得所述数据报文的载荷; 所述转换模块,还用于若所述数据报文的载荷中存在私网IP地址和私网端口号,根据所述数据报文的载荷中的私网IP地址和私网端口号,以及所述数据报文所采用的所述样本应用层协议,在所述关联表中进行匹配,获得匹配中的目标关联表项;所述目标关联表项中的目标应用层协议、所述目标关联表项中的私网IP地址和私网端口号和分别与所述样本应用层协议、所述数据报文的载荷中的私网IP地址和私网端口号相同;利用所述目标关联表项中的所述目标IP地址和所述目标端口号,对所述数据报文的载荷中的私网IP地址和私网端口号进行网络地址转换; 所述调整模块,还用于发送所述网络地址转换后的所述数据报文。
3.根据权利要求2所述的适用于多种应用层协议的网络地址转换装置,其特征在于, 所述解码模块,还用于根据所述样本应用层协议的解码策略,对所述数据报文进行解码,获得所述数据报文的载荷之后,获得所述数据报文的报文头; 相应的,所述转换模块,还用于在利用所述目标关联表项中的所述私网IP地址和所述私网端口号,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换后,建立所述数据报文的报文头中的公网IP地址和公网端口号,与所述目标关联表项之间的对应关系,利用数据流表项存储所述数据报文的报文头中的公网IP地址和公网端口号,与所述目标关联表项中的私网IP地址、私网端口号、目标IP地址、目标端口号和目标应用层协议之间的对应关系,以利用所述数据流表项,识别所述两主机之间传输的数据流。
4.根据权利要求3所述的适用于多种应用层协议的网络地址转换装置,其特征在于,所述转换模块,还用于获得所述数据报文的报文头之后,对所述数据报文的报文头中的私网IP地址和私网端口号进行网络地址转换; 相应的,所述解码模块,还用于根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷之后,获得所述控制报文的报文头; 所述转换模块,还用于对所述控制报文的报文头中的私网IP地址和私网端口号进行网络地址转换。
5.根据权利要求2-4任一项所述的适用于多种应用层协议的网络地址转换装置,其特征在于, 所述调整模块,还用于在发送所述网络地址转换后的控制报文之前,根据所述目标应用层协议,对所述网络地址转换后的控制报文中的长度字段进行调整;在发送所述网络地址转换后的数据报文之前,根据所述数据报文所采用的应用层协议,对所述网络地址转换后的数据报文中的长度字段进行调整。
6.一种适用于多种应用层协议的网络地址转换方法,其特征在于,包括: 利用控制连接,接收用于建立两主机之间的数据连接的控制报文;所述控制连接是在所述两主机之间预先建立的; 识别所述控制报文所采用的目标应用层协议; 在解码策略库所存储的各个应用层协议的解码策略中查询所述目标应用层协议的解码策略,根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷; 若所述控制报文的载荷中存在私网IP地址和私网端口号,从空闲的公网IP地址和空闲的公网端口号中确定目标IP地址和目标端口号; 生成所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系; 利用关联表中的关联表项存储所述控制报文的载荷中的私网IP地址和私网端口号,与所述目标IP地址、所述目标端口号和所述目标应用层协议之间的对应关系; 利用所述关联表项中的所述目标IP地址和所述目标端口号,对所述控制数据包的载荷中的所述私网IP地址和所述私网端口号进行网络地址转换; 发送网络地址转换后的所述控制报文,以建立所述两主机之间的数据连接。
7.根据权利要求6所述的适用于多种应用层协议的网络地址转换方法,其特征在于,所述发送网络地址转换后的所述控制报文,以建立所述两主机之间的数据连接之后,还包括: 利用所述数据连接,接收用于在所述两台主机之间传输数据的数据报文; 识别所述数据报文所采用的样本应用层协议; 在解码策略库中查询所述样本 应用层协议的解码策略; 根据所述样本应用层协议的解码策略,对所述数据报文进行解码,获得所述数据报文的载荷; 若所述数据报文的载荷中存在私网IP地址和私网端口号,根据所述数据报文的载荷中的私网IP地址和私网端口号,以及所述数据报文所采用的所述样本应用层协议,在所述关联表中进行匹配,获得匹配中的目标关联表项;所述目标关联表项中的目标应用层协议、所述目标关联表项中的私网IP地址和私网端口号和分别与所述样本应用层协议、所述数据报文的载荷中的私网IP地址和私网端口号相同; 利用所述目标关联表项中的所述目标IP地址和所述目标端口号,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换; 发送所述网络地址转换后的所述数据报文。
8.根据权利要求7所述的适用于多种应用层协议的网络地址转换方法,其特征在于,所述根据所述样本应用层协议的解码策略,对所述数据报文进行解码,获得所述数据报文的载荷之后,还包括: 根据所述样本应用层协议的解码策略,对所述数据报文进行解码,获得所述数据报文的报文头; 相应的,所述利用所述目标关联表项中的所述私网IP地址和所述私网端口号,对所述数据报文载荷中的私网IP地址和私网端口号进行网络地址转换后,还包括: 建立所述数据报文的报文头中的公网IP地址和公网端口号,与所述目标关联表项之间的对应关系,利用数据流表项存储所述数据报文的报文头中的公网IP地址和公网端口号,与所述目标关 联表项中的私网IP地址、私网端口号、目标IP地址、目标端口号和目标应用层协议之间的对应关系,以利用所述数据流表项,识别所述两主机之间传输的数据流。
9.根据权利要求8所述的适用于多种应用层协议的网络地址转换方法,其特征在于,所述根据所述样本应用层协议的解码策略,对所述数据报文进行解码,获得所述数据报文的报文头之后,还包括: 对所述数据报文的报文头中的私网IP地址和私网端口号进行网络地址转换; 相应的,所述根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的载荷之后,还包括: 根据所述目标应用层协议的解码策略,对所述控制报文进行解码,获得所述控制报文的报文头,对所述控制报文的报文头中的私网IP地址和私网端口号进行网络地址转换。
10.根据权利要求7-9任一项所述的适用于多种应用层协议的网络地址转换方法,其特征在于,所述发送所述网络地址转换后的控制报文之前,还包括: 根据所述目标应用层协议,对所述网络地址转换后的控制报文中的长度字段进行调整; 相应的,所述发送所述网络地址转换后的数据报文之前,还包括: 根据所述数据报文所采用的应用层协议,对所述网络地址转换后的数据报文中的长度字段进行调整。
【文档编号】H04L29/12GK103561130SQ201310546119
【公开日】2014年2月5日 申请日期:2013年11月6日 优先权日:2013年11月6日
【发明者】高鹏举 申请人:北京神州绿盟信息安全科技股份有限公司, 北京神州绿盟科技有限公司