软交换FW/NAT穿透解决方案探讨
软交换FW/NAT穿透解决方案探讨
字号: 小 中 大 |打印发布: 2008-3-10 22:00 作者: 网络转载 来源: 网络转载 查看: 125次
摘要:软交换系统中,如何给防火墙/NAT后的用户提供完善的多元化服务是很多运营商和设备制造商困惑已久的问题。现在,有不少标准化组织和设备生产厂家针对这个困难提出了自己的解决方案。UT斯达康凭借丰富的通讯行业经验和深厚的技术研发能力,在软交换系统中实现防火墙/NAT穿越问题上提出了完善的解决方案—使用SBC(边界媒体控制器)控制信令和媒体穿越FW/NAT。该方案不仅很好地解决了防火墙/NAT穿越问题,还基于考虑用户、源自信令和下行网络拓扑结构的策略使用,满足网络所需的独特的QoS和安全要求。
关键词:FW、NAT、防火墙、穿越、Softswitch、软交换、VoIP、mSwitch
1FW/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发出请求的那个端口号,防火墙也将会丢弃那个外来的数据包。
防火墙总是被配置过滤掉所有不请自到的网络通信,有一个例外是在防火墙内提供WebServer供外部访问。在这种情况下,公司会配置防火墙允许目的地址是WebServer的IP地址且目的端口号为80的数据包通过,这就使得公司外部可以主动向公司的WebServer发起请求得到一些公司放在Server上的数据。
1.1.2NAT
网络地址转换(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.4STUN
STUN(SimpleTraversalofUDPThroughNATs)是一种由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.5MidCom
MiddleboxCommunications(MidCom)是通过在第三方实体和防火墙/NAT之间建立中间盒通讯,使防火墙/NAT设备变为可控的一种新的概念。这种方法是允许第三方成为受防火墙/NAT信任的实体,然后代表防火墙/NAT做出决定,强迫其开放端口传送媒体流或数据流。这些受信任的实体通过“MidCom”定义的新协议与防火墙/NAT进行通信。受信任的第三方实体帮助防火墙/NAT操作,而不必在其中加入智能程序去判断是否允许媒体流通过。这样,防火墙/NAT可以在对应用层内容未知的情况下继续提供安全服务。
3.6FullProxy
SIP或H.323proxy可以用于穿越NAT或者FW/NAT,但穿越防火墙时要考虑防火墙是如何配置的。Proxy有点类似于网关,只是在Proxy的两边都是同样的协议,它起不到协议转换的作用。Proxy可以对内外的IP网络都有所了解,并使基于IP的呼叫看起来像两个完全分离的呼叫:其中一个是从内部网络起呼的终端到Proxy,另一个是从Proxy到外部网络上的终呼终端。而这个Proxy则起到把两个呼叫融合在一起的作用,从而解决了NAT的问题。
3.7ALG(ApplicationLevelGateway)
应用层网关(Applicationlayergateways)是被设计能识别指定IP协议(象H.323、SIP或MGCP)的设备。它不是简单地察看包头信息来决定数据包是否可以通过,而是更深层的分析数据包负载内的数据,也就是应用层的数据。H.323和SIP协议都在负载中放了重要的控制信息,例如语音和视频终端使用哪一个数据端口来接收别的终端的语音和视频数据。通过分析哪一个端口需要打开,防火墙动态地打开那些被应用的端口,而所有别的端口依然安全地保持关闭状态。如果一个NAT被应用来屏蔽内部IP地址,这时ALG就需要一个代理,一些防火墙生产厂商把代理结合到ALG上越过NAT。
应用层网关可以是单独的连接于外网和内网之间的设备,也可以是内置于防火墙内的插件。当防火墙发现外网呼叫信号为H.323、SIP或MGCP呼叫信息时,将其转发到ALG(应用层网关),通过ALG建立起内网伪地址终端与外网终端的通信连接。它主要完成以下几个功能:H.323、SIP或MGCP协议栈的部分功能、H.323、SIP或MGCP代理服务器、网守、IP地址翻译等。3.8 SBC(Session Border Controller)
【个人注:SBC = 信令proxy+ALG】
SBC方案,是迄今为止,对FW/NAT问题解决最完善的方案,也是UT斯达康公司推荐使用的解决方案之一。实施SBC方案,不仅不用对原有网络中的FW/NAT设备做任何改动,而且对原有网络没有任何特殊要求。
SBC本身可以被看作支持VoIP的Proxy,它是一种“可识别应用层”的设备,可以识别第五层和第七层的消息,并且还可以处理第五层的众多会话信令协议,修改数据包头的地址,从而实现SBC内外网地址变换。
SBC同时还可以用于协助VoIP穿越远端防火墙/NAT设备。它一般放置在网络核心交换设备侧。所有经过SBC的信令和媒体流经过SBC的协调和修改,可以在系统侧和用户侧正确传输。用户侧的NAT/Firewall可以接受这种修改后的信令和媒体流并把他们传送到用户侧内网。这种利用SBC实现的防火墙穿越技术可以称之为“远端防火墙穿越”。
SBC可以帮助SIP/MGCP信令穿越已经存在的FW/NAT,而不需要对现有的FW/NAT设备做任何改变。具体来说,对于SIP终端,SIP终端设备会周期性发注册消息到SBC;对于MGCP终端,当收到MGCP设备的第一个注册消息后,SBC会周期性发AUEP消息到终端,强制其再不停的周期性回复200OK消息。这样,由于不停的有信令消息经过防火墙/NAT设备,可以使防火墙/NAT对通过的消息流始终保持一个确定的端口;同时,当注册信息经过SBC,它将记录在防火墙上的第三层的IP地址和端口等信息,并且将此信息与防火墙后面的终端的用户名或电话号码等第五层信息进行绑定记录。这样,当一个信令到来,SBC将通过防火墙上正确的地址和端口发送给被叫方。
当呼叫建立后,双向的媒体流端口都是动态建立的。由于媒体流同样也通过SBC,SBC将通过与该媒体流相关的呼叫(第五层消息中的用户名或电话号码)识别出防火墙上的IP地址和端口。因此,SBC可以把相应的媒体流发送到防火墙上的相关IP地址和端口,然后正确的使媒体流到达防火墙后的用户侧。
SBC本身可以被看作支持VoIP的防火墙,不过它们不仅仅有此功能。它们还可以修改IP包的包头,使IP包能够顺利通过网络边缘设备(如:FW或NAT)。SBC是一种“可识别应用层”的设备,可以识别第五层和第七层的消息,并且还可以处理第五层的众多会话信令协议,修改数据包头的地址,从而实现“远端防火墙穿越”。同时,SBC可以通过对会话数目的限制,实现应用层防D.O.S.攻击。
4 各种语音穿越防火墙技术的优劣比较作为下一代电信网的核心技术,基于VoIP技术的软交换技术在实际应用时,无疑需要很多的IP地址,在IPv6技术大规模应用前,VoIP软交换网络中利用私有IP地址是一个节省有限共有IP资源的现实选择,所以实际布网时常常会大量使用NAT。
防火墙技术是建立在现代通信网络技术和信息安全技术基础上的应用性安全技术,越来越多地应用于专用网络与公用网络的互联环境之中,尤以Internet网络为最甚。
而作为电信网,互联互通是软交换所必须的,显而易见,使用NAT和防火墙在节省了公有IP资源和保障安全性的同时,也带来了需要解决一些互联互通的问题。UT斯达康公司的防火墙/NAT穿透技术针对电信运营商的具体网络需求,给出了完整解决方案。其中,SBC方案可以在不改变网络中其他设备的情况下,保障防火墙/NAT后面的终端用户能够使用所有mSwitch系统所提供的语音/视频/数据服务。不仅如此,SBC设备还可以为mSwitch核心网络提供安全防护功能。传统的数据防火墙不能达到运营商网络在传送实时媒体通信所需要的动态特点和规模,大多数的边缘路由器在执行一些安全功能,如许可控制和地址转换时,主要都是用于单向而非实时的通信,却并不是针对处理VoIP信号通信的特别要求而设计。SBC设备正好就可以跟传统数据防火墙和边缘路由器起到互补作用。UT斯达康公司提供的应用于软交换系统中的FW/NAT穿越方案,结合了高性能和可靠性的优越特点,为运营商提供更多能为其带来盈利的服务。
6结语与展望
从上述各项FW/NAT穿越技术的研究和分析可看出,UT斯达康的软交换系统采用了先进的STUN、SBC等技术,力求为运营商和终端用户提供更为完善的多元化服务。随着科技的进一步发展,FW/NAT穿越技术也必将走向成熟和完善。【个人注:所有这些基本上是因为IPv4中IP地址有限造成的,如果以后IPv6了,也许就是另外一种场景了。。。】