多媒体通讯中防火墙和NAT问题的解决

发表于:2007-06-23来源:作者:点击数: 标签:
随着近年IP网宽带业务的蓬勃发展,基于分组的多媒体通信系统标准H.323广泛运用于视频会议和IP电话中。VoIP业务的应用也带来一个值得关注的问题:绝大部分企业部门从 网络安全 考虑配置了专用防火墙,但H.323很难通过传统专用防火墙。 原因在于,复杂的H.323

   
  随着近年IP网宽带业务的蓬勃发展,基于分组的多媒体通信系统标准H.323广泛运用于视频会议和IP电话中。VoIP业务的应用也带来一个值得关注的问题:绝大部分企业部门从网络安全考虑配置了专用防火墙,但H.323很难通过传统专用防火墙。

原因在于,复杂的H.323协议动态分配端口并产生和维护多个UDP数据流。
  
  同时由于Internet快速膨胀,IPv4地址空间处于严重耗尽的境况。为解决这个问题,人们设计出了网址转换器(NAT)。然而NAT后的IP语音和视频设备仅有私有IP地址,这些地址在公众网上是不可路由的。
  
  这样一来,多媒体通讯中的防火墙和NAT问题严重地制约了IP电话和视频会议的应用。解决这个问题也就成为多业务宽带IP网络至关重要的事情。 在这里,我们先简要回顾一下防火墙和NAT设备是如何保护网络安全的和为什么实时多媒体通讯协议是对安全问题的一个挑战。
  
  一.网络防火墙和NAT如何工作
  防火墙
  
  为了网络的安全性,公司一般都安装防火墙,它是一个放于私有网的设备,用来保护网络资源免受外部的恶意破坏。
  
  防火墙检查从外部进来的每个数据包的IP地址和目的端口号,它经常如此设置:如果防火墙内的一台计算机A向防火墙外的一台计算机B主动发出请求要数据,防火墙会让外部计算机B的数据包通过,而且当且仅当数据包的目的地址和端口号与防火墙内发起请求的计算机A的地址和端口号相同;如果计算机B发来的数据包仅仅目的地址是防火墙内发起请求的计算机A的地址,而端口号不是计算机A发出请求的那个端口号,防火墙也将会丢弃那个外来的数据包。
  
  防火墙总是被配置过滤掉所有不请自到的网络通信,有一个例外是在防火墙内提供Web Server供外部访问。在这种情况下,公司会配置防火墙允许目的地址是Web Server的IP地址且目的端口号为80的数据包通过,这就使得公司外部可以主动向公司的Web Server发起请求得到一些公司放在Server上的数据。
  
  NAT 网络地址转换(NAT)是一个Internet标准,置于两网间的边界,其功能是将外网可见的IP地址与内网所用的地址相映射,这样,每一受保护的内网可重用特定范围的IP地址(例如192.168.x.x),而这些地址是不用于公网的。从外网来的含公网地址信息的数据包先到达NAT,NAT使用预设好的规则(其组元包含源地址、源端口、目的地址、目的端口、协议)来修改数据包,然后再转发给内网接受点。对于流出内网的数据包也须经过这样的转换处理。NAT服务有两个主要目的:
  
  1.许多公司使用NAT用作一个网络安全设备,因为它隐藏了内部IP地址,如果黑客不知道特定计算机的IP地址,想要攻击那台计算机是更困难的。
  
  2.NAT让一个公司可以使用更多的内部IP地址,因为这些地址仅仅在内部使用,不可能与被别的公司和组织的IP地址产生冲突。
  
  二.防火墙和NAT阻碍IP语音和视频通讯
  基于IP的语音和视频通讯协议,象H.323,要求终端之间使用IP地址和数据端口来建立数据通信通道。因此存在一个两难境地:为了建立数据连接终端必须随时侦听外来的呼叫,而防火墙却通常被配置来阻止任何不请自到的数据包通过。
  
  即使网络管理者打开防火墙上的一个端口来接收呼叫建立数据包,例如1720端口,但IP语音和视频通讯协议还要求打开许多别的端口接收呼叫控制信息来建立语音和视频通道,这些端口号事先并不知道,是动态分配的,这也就是说网络管理者为了允许语音和视频通讯将不得不打开防火墙上所有的端口,防火墙也就失去了存在的意义。由于网络安全的原因,很少企业会让他们的网络防火墙如此开放。
  
  在IP语音和视频通讯中NAT问题也是常见的问题。一个NAT设备允许一个公司为局域网上设备分配私有的IP地址。不幸的是控制Internet上信息流向的路由设备仅仅能把数据送到具有可路由IP地址(公众IP地址)的设备。
  
  NAT后的终端可以向位于相同局域网上的任何别的终端发起呼叫,因为在局域网内的这些IP地址是可路由的,然而他们的IP地址是私有的,对局域网外来说是不可路由的,因此NAT后的终端不能接收局域网外终端的呼叫。
  
  即使NAT内的终端可以向NAT外的终端发起呼叫,这仍然存在问题。当进行呼叫时,发起呼叫的终端A的IP地址会包含在数据包负载中,根据H.323协议被呼叫的终端B收到呼叫建立(call setup)数据包后,会从该数据包负载中获取终端A的IP地址,并开始发送音频和视频数据到这个IP地址的终端A。如果这个IP地址是私有的,Internet路由器将丢弃从外部终端发送往内部终端的音频和视频数据包,因为这些数据包正被送往一个不可路由的IP地址。这个呼叫将显示已经连接上,但NAT后的终端A将永远不会收到外部终端B的音频和视频。
  
  三.穿越防火墙和NAT的方法
  其实解决防火墙和NAT问题的一个最简单的办法就是避免使用它们,对大多数机构来说,这种方法太冒险,网络安全没有保证,而且要得到足够多的可路由的IP地址或许是困难的,昂贵的。因此大多数希望利用IP进行多媒体通讯的机构将不可避免的面对防火墙或NAT的挑战。事实上,大多数机构都同时使用了防火墙和NAT,因此单单解决其中一个问题还不够。现有的一些解决办法如下:
  
  1.使用PSTN网关
  
  如果不太关心在局域网外是否基于IP通信,那么可以使用网关把局域网上的IP语音和视频转换为公共电路交换网上的PSTN语音和视频。使用这样一个网关就不用关心网络防火墙的穿透问题了,因为没有数据包要通过防火墙。这也解决了NAT问题,所有到局域网内终端的呼叫都是可路由的,因为通过网关进入局域网的呼叫都是可路由的。今天大多数IP电话都是通过一个网关和非IP电话来进行通讯的。网关方法是一个局部解决方案,要求所有参与呼叫者在最后一道NAT和防火墙后要有一个相应的网关。
  
  2.DMZ MCU
  
  一些机构通过把MCU放在所谓的DMZ区域来解决防火墙和NAT穿越问题。DMZ区域通常位于外部Internet和内部网络防火墙之间,想要对外提供他们自己的Internet服务(例如web服务,ftp服务,email服务和域名服务)的机构一般把这些服务放在DMZ区域,这样可以很好地保护他们的私有网络。
  
  多媒体通讯中防火墙和NAT问题的解决
  
  放在DMZ区域的MCU被装上两块网卡,这样一块网卡提供访问私有网络的入口,另一块网卡提供访问公网Internet的入口。这个解决方案的一个最大缺点是即使是进行点对点的呼叫也得需要使用MCU,另外如果在呼叫路径上有多个NAT设备,那么在每个NAT设备的位置都需要放置一个MCU。
  
  3.H.323代理
  
  H.323代理能被用来解决NAT问题或者同时解决NAT和防火墙问题,这取决于代理如何被配置。代理其实是一种特殊类型的网关,但并不是把IP协议转换为别的,在代理两边使用的是相同的协议。代理使终端到终端的呼叫过程看起来像两个分离的呼叫:一个是从私有网上的终端到代理,另一个是从代理到公众网上的终端,代理通过对这个呼叫进行中转解决了NAT问题。
  
  H.323代理一般结合标准的网守的功能和RTP/RTCP多媒体流的代理功能。这种解决方案典型应用是在防火墙后放一个H.323代理,代理需要被分配公有IP地址。防火墙被配置允许代理和外部进行多媒体通讯。有时候沿着网络路径在许多位置都应用了NAT设备,这时就需要在每一个使用NAT的地方放置代理。
  
  4.应用层网关
  
  应用层网关(Application layer gateways)是被设计能识别指定IP协议(象H.323和SIP协议)的防火墙,也被叫做ALG Firewall。它不是简单地察看包头信息来决定数据包是否可以通过,而是更深层的分析数据包负载内的数据,也就是应用层的数据。H.323和SIP协议都在负载中放了重要的控制信息,例如语音和视频终端使用哪一个数据端口来接收别的终端的语音和视频数据。通过分析哪一个端口需要打开,防火墙动态地打开那些被应用的端口,而所有别的端口依然安全地保持关闭状态。 如果一个NAT被应用来屏蔽内部IP地址,这时ALG就需要一个代理,一些防火墙生产厂商把代理结合到ALG上越过NAT。
  
  主要的防火墙厂商象Cisco, Checkpoint, Gauntlet都对他们的防火墙产品提供H.323 ALG升级功能,但市场上大多数防火墙还不支持ALG。这种解决方案还有一些缺点:由于要分析数据包负载,这样就加重了防火墙的处理任务,影响网络的运行,成为潜在的网络瓶颈;并且如果这儿有多层防火墙和NAT,则在呼叫路径上的每个防火墙都必须被升级来支持ALG功能;对大多数公司的网络来说防火墙是关键部件,在一些公司增加一个ALG或许是困难的。

原文转自:http://www.ltesting.net