网络通信 频道

高效的ALG协议的识别

  【IT168 资讯】网域科技的AC-Q上网行为流量管理高技术ALG协议的识别功能;

  1:什么是ALG?

  ALG(application layer gateway),应用层网关协议,顾名思义,是处理应用层协议的,网域科技的AC-Q所支持的ALG协议有H.323、SIP、FTP、TFTP、RSH、RTSP、SQL Net、MS-RPC、PPTP/GRE、SUN-RPC等

  2:ALG用在什么地方?

  ALG用于以下两种情况:

  2.1:需要识别出数据流。

  应用协议需要创建动态连接,而创建动态连接所需的ip地址和端口是在协议内容中描述的。由于这些ip地址和端口是动态的,所以安全设备无法通过静态的过滤规则来允许或禁止这些连接,所以就需要动态创建连接。比如FTP协议,在这拿FTP的port模式来说:

  client-----------AC-Q--------------server

  client首先会以目标端口为21向server发起连接以建立起控制连接,然后client会通过port命令告诉server所打开的数据连接端口,server再主动向client这个数据端口建立起连接。由于FTP的数据端口随时都有在变化,这样对于AC-Q来说是透明的,也就是说不能识别数据流,自然就不能做控制了,这时候只有借助ALG这个应用层协议去动态跟踪才会识别出像FTP这种比较复杂的协议。这里只是拿FTP作个简单的说明,其它协议,如TFTP,H.323,SIP,PPTP都是大同小异的。

  2.2:应用协议的通讯两端经过了NAT设备。

  由于协议中携带的地址可能是私有网络地址,譬如说H.323协议,它的内容里面包含了client的源IP和源端口,因此,需要在NAT设备上把它转换成因特网可以寻址的地址,如果NAT设备需要支持多个客户端或服务器,也就是说作PAT的情况下,端口也需要修改。这时候必须要做ALG处理,修改协议内容,就需要同时修改数据包的长度,校验和等。如果数据包长度超过了MTU,数据包会被分片等等,AC-Q针对H.323和SIP协议穿越NAT需要在设备上开启ALG(应用层网关协议)的开关,其他的ALG协议则默认开启NAT穿越,如下图:

高效的ALG协议的识别

  3.网域科技的AC-Q上网行为流量管理识别ALG协议的方法

  一般常见的ALG实现都是采用内容匹配的方法,直接在字符串中找相关的ip地址和端口。这样做的好处是实现简单,坏处是有时不能正确匹配协议,会存在误识别的问题,更好的办法是使用协议分析,但这样做比较复杂,如果是基于tcp的应用协议,还可能涉及到流重组的问题(无法确定包边界)。所以简单协议用内容匹配,复杂协议用协议解析(特别是基于udp的协议)。

0
相关文章