防火墙技术之---ALG技术

NAT网络地址转换是以救世主的身份 出现缓解IPv4地址枯竭,实践证明NAT的很多的优点使其迅速被广泛应用,但是在实际操作中也出现了一些问题。NAT关注五元组信息,进行转换的五元组也仅限于IP报头之中,但是一些应用层协议像FTP,H323等多通道协议及流媒体RTSP,MMS,还有DNS,SMTP,和一些IM和P2P,一般情况下在应用载荷信息之中也会包括一些地址、端口信息,如果这些信息不被转换就会造成通信的失败。为了弥补NAT的这些缺陷,ALG(应用层地址网关)便出现了。  

   ALG主要完成了对应用层报文的处理,通常情况下NAT只对报头中的IP,PORT信息进行转换,不对应用层数据载荷中的字段进行分析,如果时能了ALG,那么在识别了相应报文之后便会对IP报头以外的载荷信息进行解析,然后进行地址转换,重新计算校验和。

   根据具体的应用将ALG和NAT组合应用的功能分为了三类:

   a.网络地址转换:普通的NAT

   b.数据通道检测:处理用于FTP、H323等多通道协议

   c.应用层状态检测:处理一些载荷含IP,port的应用层协议

   具体的来说,ALG可以处理的协议有如下这些:DNS,FTP,H323,SIP,HTTP,ILS,MSN/QQ,NBT,RTSP,PPTP,TFTP等。

   例如FTP应用由控制连接和数据连接共同完成,而且数据连接的建立动态的由控制连接的载荷信息决定,这就需要ALG来完成载荷字段信息的处理,以保证数据包的建立。

                                                 

    如上图所示,上图是属于内网服务器模式的NAT,外网用户发起连接,建立控制连接通道之后呢?试图发起数据通道连接,我们也知道FTP的数据通道有两类,一种是主动模式PORT,一种是被动模式PASV,FTP客户端通过控制通道发起被动连接请求,FTP服务器收到后就会回应进入被动模式,在该报文载荷中包含了地址信息(IP1,PORT1),此时报文经过NAT设备便需要ALG处理,解析载荷字段进行地址转换(IP1,PORT1--->IP2,PORT2)然后发给客户端,客户端收到后便会想转换后的地址,端口发连接建立报文,然后在NAT设备转换一些,就建立了数据通道,然后就可以在数据通道中传输数据了。


本文转自:http://simonsec.blog.51cto.com/875864/197090/


你可能感兴趣的:(防火墙技术之---ALG技术)