当前位置:文档之家› 防火墙H323协议处理流程及H323 ALG应用

防火墙H323协议处理流程及H323 ALG应用

一.H.323协议简介

H.323协议簇是ITU的一个标准协议栈,它是一个有机的整体,根据功能可以将它分为4类协议,也就是说该协议从系统的总体框架(H.323)、视频编解码(H.263)、音频编解码(G.723.1)、系统控制(H.245)、数据流的复用(H.225)等各方面作了比较详细的规定。

H323系统中的信息流是视频、音频和控制消息的组合。系统控制的协议包括H.323、H245和H225.0,而Q.931和RTP/RTCP是H225.0的主要组成部分。整个系统控制由H.245控制信道、H225.0呼叫信令信道和RAS(注册、许可、状态)信道提供。

H.225它主要处理传输路径问题,描述了如何操作网络包上的视频、音频、数据和控制信息使其提供H.323 装备会话服务。H.225 主要有两个部分:呼叫信令和RAS (注册、接入允许和状态)。H.225 详细定义了Q.931 信令信息的使用和支持。在IP 网络的TCP 端口1720需要创建一个可靠的TCP 呼叫控制信道,该端口完成Q.931 呼叫控制信息的初始化,从而实现连接、维持和呼叫分离功能。

H.245 是H.323 多媒体通信体系中的控制信令协议,其主要用于处于通信中的H.323 终点或终端间的端到端H.245 信息交换。H.245制定了一个控制信道分段和重新装配的协议层(CCSRL,Control Channel Segmentation and Reassembly Layer),它可以在易出错环境下保证应用的可靠性。H.245提供了一种功能交换的功能,它支持两端设备通过协商确定一组通用的功能集。

二.防火墙H.323 ALG功能简介

当内部网络的H.323终端穿越防火墙与公网上的H.323终端进行通信时,由于NAT功能只能将传输层的IP及端口进行转换,无法对H.323协议应用层携带的内部数据进行转换,应用层中内部数据直接被转发至公网,后续协议信息处理时会出现问题;而H323 ALG则可以实现应用层数据转换,协议数据发至Internet时,将其应用层内部信息转换成公网信息,实现完全隐藏内部终端达到通信正常的目的。

议,控制连接使用端口1720,数据交换使用端口为临时协商,无法事先预知,若无ALG功能,协商出数据交换通道所用端口后,外部网络终端尝试对内部终端数据交换的端口进行连接时,防火墙会对其进行阻断,从而数据传输通道无法建立;开启H.323 ALG功能后,会在对应用层转换的IP地址及端口进行转换的同时,将其信息进行记录,使其在外部网络终端尝试对内部终端数据交换的端口进行连接时,防火墙进行协议识别,对后续相关协议报文执行放通策略,从而成功建立传输通道。

三.H.323 ALG的典型应用组网

四.一次基本的H323协议连接过程及防火墙处理流程

1. 客户端与服务器建立TCP三次握手连接

2.建立TCP连接之后,主叫终端通过H.225协议发送setup消息至被叫终端,表示主叫方希望建立通话(FW开启了H323 ALG功能)

1)内网主叫终端抓包报文

2)外网被叫终端抓包报文

由上面2个报文可以明显看出ALG对协议应用层的数据进行了处理。

3.被叫终端返回CallProceeding给主叫终端,表示被叫终端正在处理。

4.被叫终端返回Alerting报文给主叫终端,表示被叫用户已被振铃。

1)内网主叫终端抓包报文

2)外网被叫终端抓包报文

5.被叫终端返回Connect报文给主叫终端,表示被叫用户已摘机并告知被叫终端已开放特定端口来进行下一阶段的协议协商过程。

1)内网主叫终端抓包报文

2)外网被叫终端抓包报文

6.主叫方收到Connect报文后,进入H.245协商阶段,H.245整个协商阶段包括能力交换、主从确定、打开逻辑通道(通道打开之后传输数据)、关闭逻辑通道、断开H.245TCP连接。1)内网主叫终端抓包报文(TCP三次握手阶段)

2)内网主叫终端抓包报文(打开逻辑通道阶段(能力交换、主从确定阶段省略))

3)外网被叫终端抓包报文

由以上报文可以看出后续数据传输被叫方将使用1503端口来建立连接。

7.通道建立之后,进行数据传输(主叫方将使用多个端口与被叫方的1503端口进行连接来进行视频、音频数据的传输)

8.数据传输完成后(通讯结束)后,由主叫方发起EndSessionCommand与ReleaseComplete消息来释放连接

1)内网主叫方抓包报文

2)外网被叫终端抓包报文

完成上述报文交互之后,断开TCP连接,至此已完成整个H323呼叫流程。

注:防火墙会话如下(与上述抓包无关联,仅作参考)

五.H323在防火墙中的几种应用场景

1.内部终端向外网终端发起会话,防火墙做SNAT;

由于h323通话setup消息中被叫方只关注应用层中destCallSignalAdress字段信息(检查目的IP是否为自己,确认其是想要和自己通信)与传输层的源IP(主叫方IP),符合以上条件后才会进行后续协议协商;当发起方为内部终端时,目的IP即为被叫终端的IP,不需ALG转换;Netmeeting软件数据传输通道都是由主叫方发起,不存在Untrust到Trust 的阻断问题;基于以上两点,在此种场景下,是否开启ALG都对其通讯无影响;但是没有开启ALG功能时,不会对setup消息中sourceCallSignalAdress字段的私网IP进行转换而将其地址暴露在公网中;

2.外网终端向内部终端发起会话,防火墙做DNAT;

当主叫方在外部网络时,若没有开启ALG功能,H323的setup消息中字段信息destCallSignalAdress仍为防火墙目的NAT前的IP地址(没有转换为私网地址),被叫方在收到该消息后发现其不是想和自己进行通讯,会直接返回releaseComplete消息来结束通讯

相关主题