VOIP软交换FW/NAT穿透解决方案探讨[传][1]

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 xfreedom 的 blog

软交换fw/nat穿透解决方案探讨

ut斯达康(中国)通讯有限公司 宽带传输交换事业部


  摘 要:软交换系统中,如何给防火墙/nat后的用户提供完善的多元化服务是很多运营商和设备制造商困惑已久的问题。现在,有不少标准化组织和设备生产厂家针对这个困难提出了自己的解决方案。ut斯达康凭借丰富的通讯行业经验和深厚的技术研发能力,在软交换系统中实现防火墙/nat穿越问题上提出了完善的解决方案—使用sbc(边界媒体控制器)控制信令和媒体穿越fw/nat。该方案不仅很好地解决了防火墙/nat穿越问题,还基于考虑用户、源自信令和下行网络拓扑结构的策略使用,满足网络所需的独特的qos和安全要求。

  关键词:fw、nat、防火墙、穿越、softswitch、软交换、voip、mswitch



  1 fw/nat问题简介

  随着近年ip网宽带业务的蓬勃发展,基于分组的多媒体通信系统标准h.323、sip、mgcp广泛运用于视频会议和ip电话中。voip业务的应用也带来一个值得关注的问题:绝大部分企业部门从网络安全考虑配置了专用防火墙,但h.323、sip、mgcp很难通过传统专用防火墙。原因在于,复杂的h.323、sip、mgcp协议动态分配端口并产生和维护多个udp数据流。

  同时由于internet快速膨胀,ipv4地址空间处于严重耗尽的境况。为解决这个问题,人们设计出了网址转换器(nat)。然而nat后的ip语音和视频设备仅有私有ip地址,这些地址在公众网上是不可路由的。

  这样一来,多媒体通讯中的防火墙和nat问题严重地制约了ip电话和视频会议的应用。解决这个问题也就成为多业务宽带ip网络至关重要的事情。

  在这里,我们先简要回顾一下防火墙和nat设备是如何保护网络安全的和为什么实时多媒体通讯协议是对安全问题的一个挑战。

1.1 网络防火墙和nat如何工作

1.1.1 防火墙

  为了网络的安全性,公司一般都安装防火墙,它是一个放于私有网的设备,用来保护网络资源免受外部的恶意破坏。

  防火墙检查从外部进来的每个数据包的ip地址和目的端口号,它经常如此设置:如果防火墙内的一台计算机a向防火墙外的一台计算机b主动发出请求要数据,防火墙会让外部计算机b的数据包通过,而且当且仅当数据包的目的地址和端口号与防火墙内发起请求的计算机a的地址和端口号相同;如果计算机b发来的数据包仅仅目的地址是防火墙内发起请求的计算机a的地址,而端口号不是计算机a发出请求的那个端口号,防火墙也将会丢弃那个外来的数据包。

  防火墙总是被配置过滤掉所有不请自到的网络通信,有一个例外是在防火墙内提供web server供外部访问。在这种情况下,公司会配置防火墙允许目的地址是web server的ip地址且目的端口号为80的数据包通过,这就使得公司外部可以主动向公司的web server发起请求得到一些公司放在server上的数据。

1.1.2 nat

  网络地址转换(nat)是一个internet标准,置于两网间的边界,其功能是将外网可见的ip地址与内网所用的地址相映射,这样,每一受保护的内网可重用特定范围的ip地址(例如192.168.x.x),而这些地址是不用于公网的。从外网来的含公网地址信息的数据包先到达nat,nat使用预设好的规则 (其组元包含源地址、源端口、目的地址、目的端口、协议) 来修改数据包,然后再转发给内网接受点。对于流出内网的数据包也须经过这样的转换处理。nat服务有两个主要目的:

  1. 许多公司使用nat用作一个网络安全设备,因为它隐藏了内部ip地址,如果黑客不知道特定计算机的ip地址,想要攻击那台计算机是更困难的。

  2. nat让一个公司可以使用更多的内部ip地址,因为这些地址仅仅在内部使用,不可能与被别的公司和组织的ip地址产生冲突。

  2 防火墙和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的音频和视频。

  3 现有voip的fw/nat穿透技术

  3.1 不使用防火墙/nat

  其实解决防火墙和nat问题的一个最简单的办法就是避免使用它们,对大多数机构来说,这种方法太冒险,网络安全没有保证,而且要得到足够多的可路由的ip地址或许是困难的,昂贵的。对运营商来说也是这样,若不是用fw/nat来保护核心设备,使核心交换设备直接跟用户端联接,这样无疑是很冒险的做法。

  3.2 使用pstn网关

  如果不太关心在局域网外是否基于ip通信,那么可以使用网关把局域网上的ip语音和视频转换为公共电路交换网上的pstn语音和视频。使用这样一个网关就不用关心网络防火墙的穿透问题了,因为没有数据包要通过防火墙。这也解决了nat问题,所有到局域网内终端的呼叫都是可路由的,因为通过网关进入局域网的呼叫都是可路由的。今天大多数ip电话都是通过一个网关和非ip电话来进行通讯的。网关方法是一个局部解决方案,要求所有参与呼叫者在最后一道nat和防火墙后要有一个相应的网关。

  3.3 隧道穿透方案

  一般企业网都不想升级或者改动他们的防火墙和nat设备的配置,也不想让内外的交互通讯绕过这些设备,采用允许ip语音和视频穿越防火墙和nat的隧道穿透方案也许是最合适的,目前提供此类解决方案的有美国的ridgeway公司。

  隧道穿透解决方案由两个组件构成,server软件和client软件。client放在防火墙内的私有网,它同时具有网守功能和代理功能,私有网内的终端注册到client上,它和防火墙外的server创建一个信令和控制通道,可以把所有的注册和呼叫控制信令转发到server,也把音视频数据转发到server,在转发时它把内部终端发送的和外部发往终端的数据包的地址和端口号替换为自己的。server放在防火墙外的公众空间,可以位于服务提供商网络或者位于企业网的dmz区域,server扮演网守代理的角色,从client收到的所有注册和呼叫信令都被server转发到中心网守。

3.4 stun

  stun (simple traversal of udp through nats)是一种由ietf研制的udp流协议穿透nat的协议。stun可以在不改变nat的情况下,与任何现有nat共存。在stun服务器和客户端之间可以有任意多的nat设备。stun技术仅针对nat穿越有效,对防火墙穿越没有帮助,所以,如果在整个通话话路中没有防火墙仅有nat,stun将是一种成本低廉的穿越nat的选择方案。就stun协议本身而言,对哪种协议并没有要求,不过目前为止的一些成功案例,都是在基于sip协议的系统中实现的。

  ut斯达康自行研制的软电话—ismart,就是采用了stun技术的sip终端。在用户侧和网络侧都没有设置防火墙,而仅有nat转换问题的时候,借助ismart上的stun穿越机制,就可以正常使用其服务,stun支持nat的多重穿越。

3.5 midcom

  middlebox communications (midcom) 是通过在第三方实体和防火墙/nat之间建立中间盒通讯,使防火墙/nat设备变为可控的一种新的概念。这种方法是允许第三方成为受防火墙/nat信任的实体,然后代表防火墙/nat做出决定,强迫其开放端口传送媒体流或数据流。这些受信任的实体通过“midcom”定义的新协议与防火墙/nat进行通信。受信任的第三方实体帮助防火墙/nat操作,而不必在其中加入智能程序去判断是否允许媒体流通过。这样,防火墙/nat可以在对应用层内容未知的情况下继续提供安全服务。

3.6 full proxy

  sip或h.323 proxy可以用于穿越nat或者fw/nat,但穿越防火墙时要考虑防火墙是如何配置的。proxy有点类似于网关,只是在proxy的两边都是同样的协议,它起不到协议转换的作用。proxy可以对内外的ip网络都有所了解, 并使基于ip的呼叫看起来像两个完全分离的呼叫:其中一个是从内部网络起呼的终端到proxy,另一个是从proxy到外部网络上的终呼终端。而这个proxy则起到把两个呼叫融合在一起的作用,从而解决了nat的问题。

3.7 alg(application level gateway)

  应用层网关(application layer gateways)是被设计能识别指定ip协议(象h.323、sip或mgcp)的设备。它不是简单地察看包头信息来决定数据包是否可以通过,而是更深层的分析数据包负载内的数据,也就是应用层的数据。h.323和sip协议都在负载中放了重要的控制信息,例如语音和视频终端使用哪一个数据端口来接收别的终端的语音和视频数据。通过分析哪一个端口需要打开,防火墙动态地打开那些被应用的端口,而所有别的端口依然安全地保持关闭状态。 如果一个nat被应用来屏蔽内部ip地址,这时alg就需要一个代理,一些防火墙生产厂商把代理结合到alg上越过nat。

本文关键:VOIP软交换FW/NAT穿透解决方案探讨[传]
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top