NAT ALG原理与应用
2014-02-25吴兆立孙敏燕
吴兆立 孙敏燕
摘 要:ALG(Application Level Gateway,应用层网关)主要是用来对应用层报文的处理。通常情况,NAT[1]只对报文头中的端口和IP地址转换,不会分析数据载荷中的字段。本文讨论在特殊的协议中,数据载荷中可能包含端口信息或IP地址,此载荷不被NAT进行有效的转换时会出现的问题。
关键词:ALG;NAT;报文头;数据载荷
中图分类号:TN915.04
1 NAT ALG特点
NAT ALG为内部网络和外部网络之间的通信提供了基于应用的控制,具有以下优秀特征:
(1)ALG对各应用层协议报文进行统一解析处理,避免重复解析同一类报文应用层协议,能够提升报文转发效率。
(2)可支持多种应用层协议:HTTP,FTP,SMTP,网络新闻传输协议(Network News Transfer Protocol,NNTP)、DNS、RTSP、和Telnet等。
2 NAT ALG技术实现
先介绍ALG涉及到的两个概念:
会话[2]:记录了传输层报文之间的交互信息,包括源IP地址、源端口、目的IP地址、目的端口,协议类型和源/目的IP地址所属的VPN实例。交互信息相同的报文属于一条流,通常情况下,每个会话对应出方向和入方向的两条流。
动态通道:当应用层协议报文中携带地址信息时,这些地址信息会被用于建立动态通道,后续符合该地址信息的连接将使用已经建立的动态通道来传输数据。
下面以多通道应用协议FTP在NAT组网环境中的ALG应用来具体说明报文载荷的转换过程。
2.1 ALG与FTP的应用
FTP的两种不同工作模式:PORT(主动模式)与PASV(被动模式)。
FTP需要用到两个连接:控制连接与数据连接,控制连接专门用于FTP控制命令及命令执行信息传送;数据连接专门用于传输数据(上传/下载)。
2.1.1 主动模式(PORT)的连接过程
如图1所示,位于内部网络的客户端以PORT方式访问外部网络的FTP服务器,经过中间的设备进行NAT转换,该设备上使能了ALG特性。……