以主机代理方式实现地址转换应用网关的方法

文档序号:7928941阅读:378来源:国知局
专利名称:以主机代理方式实现地址转换应用网关的方法
技术领域
本发明涉及网络地址转换(NAT)技术,特别涉及以主机代理的方式来实现地址转换的应用网关以进行网络地址转换的方法。
背景技术
网络地址转换(NAT)是一种有效解决Internet(因特网)地址短缺的方案。NAT对报文中地址和端口号等信息进行处理,从而达到一个IP地址供多个用户使用的目的。在完成私有网到公网的透明中继的同时,NAT还具有给内部网络提供“隐私”保护,为外部网络提供一定的服务以及内部服务器负载分担等功能。
但NAT功能的使用会导致许多对NAT敏感的应用协议无法正常工作。所谓对NAT敏感的协议是指这样的一类协议,该协议的某些报文(通常是控制报文)的有效负载中携带有IP地址和(或)端口号,如果不按照地址转换规则对这些IP地址和端口号进行转换处理,将会严重影响后继协议交互。必须针对每一个这样的协议进行特殊的处理。这些协议例如包括FTP(文件传输协议)、SNMP(简单网络管理协议)、DNS(域名服务)、SIP(会话启动协议)、H.323、RTSP(实时流协议)等。需要NAT提供这些特殊协议的地址转换应用网关(ALG)。
图1显示了现有技术的NAT方案。在图1所示的方案中,是在路由器中包含了NAT模块和NAT ALG模块。NAT ALG模块依赖于NAT模块,两者紧密结合,共同组成一个功能模块,嵌在IP层的发送报文的位置和接收报文的位置。NAT模块对IP层数据包进行处理,根据特殊协议的类型,由NAT模块调用NAT ALG模块相应的特殊协议报文处理过程。NAT模块处理完成之后立刻交给IP层继续转发。
但是,对某些NAT敏感的私有协议,由于其协议内容不公开,很难在路由器上实现该协议的地址转换应用网关。另外,也不可能对每种对NAT敏感的私有协议都在路由器上实现其地址转换应用网关。

发明内容
针对现有技术所存在的上述缺陷,同时为适应当前网络业务的日趋多样化以及客户私有协议的特殊性,维护路由器软件的稳定性,本发明的目的就是提供一种用主机代理方式实现应用协议的地址转换(以下简称代理NAT)的方法。该方法采取客户端/服务器(C/S)的模式,使用内部网主机代替地址转换路由器而作为地址转换应用网关,提供对应用协议的特殊处理服务。路由器和地址转换服务器之间通过请求/应答方式实现对特殊协议的NAT支持功能,从而实现对特殊协议的地址转换应用网关功能。
本发明的用主机代理方式实现应用协议的地址转换应用网关的方法包括如下步骤1)由能够对特定协议的应用协议报文进行处理的内部网主机向地址转换路由器注册应用协议;2)所述地址转换路由器将与已注册协议匹配的应用协议报文的有效负载转发给内部网主机,并根据内部网主机的请求对该应用协议报文有效负载中的地址进行转换,将转换结果发送给所述内部网主机;3)所述内部网主机根据所述地址转换路由器对该应用协议报文的地址转换结果,对所述应用协议报文有效负载中的地址进行相应的修改,并发回所述地址转换路由器;4)所述地址转换路由器根据所述内部网主机返回的应用协议报文的有效负载对该报文的首部进行相应调整,然后转发该报文。所述地址包括IP地址和端口号。所述特定协议可以是例如FTP、SNMP、DNS、SIP、H.323、RTSP等。
在本发明的一实施方案中,上述步骤1)包括1-1)所述内部网主机向地址转换路由器发送所述应用协议的注册请求;1-2)在注册成功后,所述地址转换路由器将注册应答消息发送给内部网主机。
在上述方法中,所述内部网主机发送所述应用协议的注册请求的内容包括通知所述地址转换路由器对该协议的地址转换需经所述内部网主机进行特殊处理;和通知所述地址转换路由器该应用协议报文的特征标识。在一个实施例中,可以通过包括协议的传输协议类型以及所用端口等信息来实现对所述地址转换路由器的通知。上述注册是通过用户API接口完成的。
在本发明的一实施方案中,上述步骤2)包括2-1)所述地址转换路由器将与已注册协议相匹配的应用协议报文发送给内部网主机;2-2)所述内部网主机对所述应用协议报文进行解析,提取有效负载中的地址信息,并向所述地址转换路由器发起地址转换请求;2-3)所述地址转换路由器对该报文首部执行地址转换,并将转换结果返回给所述内部网主机。
本发明的方法可以取得如下的有益效果(1)提供开放的用户API编程接口,具有良好的可扩充性,便于用户实现其私有协议的地址转换功能支持,从而使现有NAT的功能更加丰富和完善。
(2)应用协议的特殊处理只在内部网主机端完成,无须修改路由平台。而且软件开发周期短、代价低且易于维护。
(3)对于一些应急需求,可先采用代理NAT的方式实现,有助于路由器软件版本的稳定,从而避免路由器软件频繁升级,另一方面也便于快速地推出新业务。


图1是说明现有技术的在路由器上实现NAT方案的示意图;图2显示了根据本发明一实施方案的采用内部网主机实现代理NAT的方案示意图;图3显示了根据本发明一实施方案的代理NAT的结构划分;图4显示了根据本发明一实施方案的应用协议的注册过程;图5显示了根据本发明一实施方案的应用协议的处理过程。
具体实施例方式
下面结合图2-5说明本发明的优选实施方案。
如图2所示,内部网(例如具有以太网结构的局域网)通过网络地址转换路由器(以下简称NAT路由器)与外部网络(广域网)连接。本发明的方案就是将需要进行特殊处理的应用协议报文转发到能够处理该报文的内部网主机中进行处理。该内部网主机可以称作应用网关服务器(ALG Server)。地址转换路由器与应用网关服务器之间的正常通信通过双方间的通信协议来实现。路由器为应用网关服务器提供足够的信息以保证其能够对接收到的特殊协议报文进行正确的处理。同时,还为用户(即私有协议的制定者)提供编程接口,使用户能够自行开发应用网关服务器的软件。这样就允许私有协议的制定者在不需要公开其私有协议的情况下,也能成功穿越NAT路由器。
图3显示了根据本发明一实施方案的采用内部网主机实现代理NAT的方案示意图。代理NAT在逻辑结构上主要可分为NAT Agent(NAT代理)、通信协议规程、用户编程接口。NAT Agent是ALG Server即应用网关服务器与路由器NAT模块的接口,是应用协议报文的转发代理。通信协议规程用于定义代理NAT的协议交互过程及协议报文格式等内容。用户编程接口(API)用于提供应用协议的注册功能。
如图3所示,应用网关服务器与路由器之间利用UDP(用户数据报协议)来传递报文。在应用网关服务器与路由器中分别设置有协议解释器,其中设置有定义代理NAT的协议交互过程及协议报文格式等内容的协议规程。来自路由器的IP报文有效负载通过NAT Agent后经应用网关服务器与路由器的协议解释器进行协议的匹配,再经应用网关服务器的用户API接口传送至应用协议处理单元。应用网关服务器的应用协议处理单元负责对所传送来的IP报文有效负载进行解析,对其中的地址信息进行NAT转换,然后按照上述路径的相反方向将IP报文有效负载传送至路由器。
下面结合图4和图5说明本发明一实施方案的用主机代理方式实现应用协议的地址转换应用网关的方法的具体过程。该方法主要包括应用协议注册过程和应用协议的处理过程。
1.应用协议注册过程图4显示了根据本发明一实施方案的应用协议的注册过程。应用网关服务器调用其用户API接口将应用协议(例如OICQ-一种网上聊天的工具软件)注册到NAT路由器,通知NAT路由器对该协议的地址转换需经应用网关服务器进行特殊处理,并告知NAT路由器应用协议报文的特征标识。可以通过包括协议的传输协议类型(TCP(传输控制协议)或UDP)以及所用端口等信息来告知NAT路由器。NAT路由器据此进行报文的协议识别与转发。在注册成功后,NAT路由器将注册应答消息发送给应用网关服务器。
2.应用协议处理过程图5显示了根据本发明一实施方案的应用协议的处理过程。如图5所示,应用协议处理过程包括如下步骤<1>NAT路由器将与已注册协议相匹配的应用协议报文的发送给应用网关服务器。可以将应用协议报文全部发给应用网关服务器,但优选是只将应用协议报文的有效负载发送给应用网关服务器。
<2>应用网关服务器对该应用协议报文的有效负载进行解析,提取有效负载中的地址信息,并向NAT路由器发起地址转换请求。
<3>NAT路由器对该应用协议报文有效负载所带的地址(包括IP地址和端口号)进行地址转换,将转换结果返回给应用网关服务器。
<4>应用网关服务器将该应用协议报文的有效负载中所包含的地址替换为转换后的地址,最后将处理过的报文有效负载回送NAT路由器。NAT路由器根据应用网关服务器传送来的报文有效负载,对该报文首部字段中的校验和、sequence(TCP序列号)、以及长度字段进行相应的调整,然后发送该应用协议报文。
以上对本发明各种实施方案的描述只是为了使本领域技术人员更好地理解本发明的实质,而非对本发明加以限定。因此,不偏离本发明思想的对本发明技术方案的各种改型将落入本发明权利要求所限定的范围内。
权利要求
1.用主机代理方式实现应用协议的地址转换应用网关的方法,其特征在于,包括如下步骤1)由能够对特定应用协议报文进行处理的内部网主机向地址转换路由器注册应用协议;2)所述地址转换路由器将与已注册协议匹配的应用协议报文的有效负载转发给内部网主机,并根据内部网主机的请求对该应用协议报文有效负载中的地址进行转换,将转换结果发送给所述内部网主机;3)所述内部网主机根据所述地址转换路由器的所述转换结果,对所述应用协议报文有效负载中的地址进行相应的修改,并发回所述地址转换路由器;4)所述地址转换路由器根据所述内部网主机返回的应用协议报文的有效负载对该报文的首部进行相应调整,然后转发该报文。
2.根据权利要求1所述的方法,其特征在于,所述步骤1)包括1-1)所述内部网主机向地址转换路由器发送所述应用协议的注册请求;1-2)在注册成功后,所述地址转换路由器将注册应答消息发送给内部网主机。
3.根据权利要求2所述的方法,其特征在于,所述内部网主机发送所述应用协议的注册请求的内容包括通知所述地址转换路由器对该协议的地址转换需经所述内部网主机进行特殊处理;和通知所述地址转换路由器该应用协议报文的特征标识。
4.根据权利要求3所述的方法,其特征在于,通过包括协议的传输协议类型以及所用端口信息来实现对所述地址转换路由器的通知。
5.根据权利要求2所述的方法,其特征在于,所述注册是通过用户API接口完成的。
6.根据权利要求1所述的方法,其特征在于,所述步骤4)中对报文首部进行的调整包括根据报文的有效负载的改变相应地调整报文首部的校验和,TCP序列号以及长度。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述步骤2)包括2-1)所述地址转换路由器将与已注册协议相匹配的应用协议报文发送给所述内部网主机;2-2)所述内部网主机对所述应用协议报文进行解析,提取有效负载中的地址信息,并向所述地址转换路由器发送地址转换请求;2-3)所述地址转换路由器对报文首部执行地址转换,并将转换结果返回给所述内部网主机。
8.根据权利要求7所述的方法,其特征在于,所述地址包括IP地址和端口号。
9.根据权利要求7所述的方法,其特征在于,所述特定协议为FTP、SNMP、DNS、SIP、H.323或RTSP。
全文摘要
本发明提供了一种用主机代理方式实现应用协议地址转换应用网关的方法,包括如下步骤由能够对特定的应用协议报文进行处理的内部网主机向地址转换路由器注册应用协议;地址转换路由器将与已注册协议匹配的应用协议报文的有效负载转发给内部网主机,并根据内部网主机的请求对该应用协议报文的地址进行转换;内部网主机根据地址转换结果,对应用协议报文有效负载中的地址进行相应修改,发回地址转换路由器;地址转换路由器根据内部网主机返回的应用协议报文的有效负载对该报文首部进行相应调整,然后转发该报文。本发明解决了现有网络地址转换路由器不能很好地支持各种地址转换应用网关的问题,使现有网络地址转换技术的功能更加丰富和完善。
文档编号H04L29/06GK1592278SQ03155969
公开日2005年3月9日 申请日期2003年8月28日 优先权日2003年8月28日
发明者赵朝阳 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1