IMS网络STG实现方案研究
2014-02-16
(中国移动通信集团设计院有限公司,北京 100080)
IMS网络STG实现方案研究
朱黎黎,肖子玉,丁志刚
(中国移动通信集团设计院有限公司,北京 100080)
IMS业务部署面临着防火墙穿越的问题,对IMS网络防火墙穿越STG实现方案进行了深入剖析,并针对运营商现阶段网络条件对STG功能的部署方式提出了建议。
STG(安全穿越网关);防火墙穿越;IMS
1 研究背景
防火墙穿越是数据通信中的一个重要课题,目前已存在许多通用的、标准的方法。电信级IMS业务同其他基于SIP消息的VoIP业务一样,也面临防火墙穿越的问题,本文将对在电信级IMS网络中防火墙穿越问题的解决方案进行分析。
防火墙的部分核心功能是通过控制用户使用的端口号来实现。限制部分端口的通信能够避免内网被攻击的风险;在企业防火墙使用时,也会利用限制应用端口来限制用户使用的业务,以避免工作无关的网络访问、以及P2P等业务对网络资源过度消耗。而IMS业务面临的防火墙穿越问题核心即为部分企业防火墙限制了IMS业务常用端口造成呼叫信令和媒体的不可达,可能被限制的端口如SIP协议标准的5060端口,RTP/RTCP媒体流会使用的动态UDP端口等。企业用户一般不愿变更已有的防火墙设置,因此需要由运营商从IMS网络侧来寻求解决方案。
对于IMS硬终端用户来说,解决方案相对简单,在企业侧部署硬终端时即可设计为不通过防火墙,使硬终端能直接接入IMS网络。而对于软终端用户,由于用户设备必须连接防火墙,故解决方案要复杂的多,在此背景下,STG(安全穿越网关)功能为了解决这个问题而被提出。
2 STG核心实现方案分析
对于STG的实现方式,目前有两种主流技术实现方式被提出。
2.1 方案1:隧道穿越方案
此方案基本原理是利用企业防火墙向用户开放的443端口(HTTPs端口)传送SIP信令和RTP/RTCP等媒体内容,传送的方式是采用TLS/DTLS隧道传送。STG设备部署在防火墙外,主要完成同防火墙内的用户客户端的隧道建立工作,收到来自客户端的数据解封装隧道协议继续向外传送,收到发向客户端的数据则通过隧道封装后传送给对应的客户端。此方案基本信令流程如下:
(1) 防火墙探测:终端在初始登录过程中,首先探测网络环境确定是否需要通过STG访问IMS,探测方式采用STUN机制。根据探测结果,终端优先选择向标准SIP UDP端口发起注册,发现接收方信令不可达或媒体不可达时,则开始尝试使用TLS/DTLS隧道流程。
(2) 隧道协商:终端首先尝试与STG基于TCP建立TLS隧道,建立成功后,STG返回一个虚拟IP地址(IP1)。TLS隧道建立成功后,终端继续尝试建立DTLS隧道。DTLS隧道成功建立后,STG返回一个虚拟IP地址(IP2)。
(3) 开始通信:使用TLS隧道进行通信。终端将SIP报文中信令地址及SDP中的媒体地址填写为STG分配的虚拟地址IP1,之后将SIP报文加密封装为目的IP为STG、目的端口为STG TLS业务端口的DTLS/ TLS报文,发送到防火墙,因为目的端口为443端口,防火墙将透传数据,报文可顺利送达STG。
(4) STG对SIP报文进行解密和解封装,将SIP报文发往SIP服务器。
(5) SIP服务器通过虚拟IP地址返回SIP响应报文给STG。
(6) STG根据保留的终端与分配的虚拟IP地址映射关系将响应报文加密和封装后通过443端口发送到终端所在防火墙,防火墙将透传数据。
以上(2)~(6)即为此方案下STG完成的主要工作,其协议转换过程如图1所示。
(7) 报文到达终端,终端对报文解封装和解密后最终完成通信。
以上介绍的是信令的传送流程,媒体的流程基本一致,因为已经在以上流程中将SDP中的媒体传送地址改为STG分配的虚拟地址,所以通信可以正常进行。流程如下:
图1 SIP信令隧道穿越方案
(1) 开始通信:优先使用DTLS隧道进行通信,如不具备条件,使用TLS隧道。终端将RTP/RTCP/ MSRP报文加密封装为目的IP为STG、目的端口为STG TLS业务端口的DTLS/TLS报文,发送到防火墙,因为目的端口为443端口,防火墙将透传数据,报文可顺利送达STG。
(2) STG对SIP报文进行解密和解封装,将SIP报文发往媒体接收方。
(3) 若需回送媒体,媒体接收方通过虚拟IP地址(在之前的SIP消息中的SDP里携带)发送到STG。
(4) STG根据保留的终端与分配的虚拟IP地址映射关系将响应报文加密和封装后通过443端口发送到终端所在防火墙,防火墙将透传数据。
以上(2)~(4)即为此方案下STG完成的主要工作,其协议转换过程如图2所示。
(5) 报文到达终端,终端对报文解封装和解密后最终完成通信。
另外,此方案中还涉及到一些隧道保活和用户鉴权的机制,在此不再赘述。
2.2 方案2:非隧道穿越方案
图2 媒体隧道穿越方案
因为SIP消息支持TCP承载,故此方案定义采用SIP over TCP或TLS的方式通过80/443端口传送SIP信令完成注册流程。需要说明的是,此处是否采用over TLS方式取决于用户网络环境是否安全,同防火墙穿越方案本身无关。
而对于媒体传送,在SIP协商后,利用STUN机制探测IMS媒体可能使用的UDP动态端口是否通达,不通达的情况则采用穿越方案通过80/443端口传送媒体,不同于隧道方案,本方案定义了“穿越头”来携带目的对端网元的实际端口号以完成穿越,流程如下:
(1) 终端在RTP/RTCP协议之上添加穿越头,穿越头中携带SDP协商过程中实际的目的端口,封装好的数据分组通过80/443端口发送给STG,RTP/RTCP采用UDP承载,MSRP采用TCP承载。
(2) STG收到报文后删除穿越头,将还原的数据分组按穿越头中指定的目的端口进行传送,直至送达媒体接收方。
(3)若需回送媒体,媒体接收方只需按原路径回送媒体至STG。
(4) STG为相应报文添加穿越头,将其使用80/ 443端口发送到终端所在防火墙,防火墙将透传数据。
以上(1)~(3)即为此方案下STG完成的主要工作,其协议转换过程如图3所示。
(5) 报文到达终端,终端删除穿越头后对报文进行处理。
2.3 隧道方案与非隧道方案分析与优化
图3 媒体非隧道穿越方案
首先,从SIP信令的传送方面来看,方案1优先使用探测机制以确认使用UDP传送SIP或是采用隧道方式,而方案2选择直接采用了TCP承载SIP。其中涉及SIP over UDP、DTLS/TLS隧道传送SIP、以及SIP over TCP三种方式。三种方式的传输消耗比较如下:UDP<TCP<DTLS/TLS隧道,且采用隧道方式还涉及到虚拟IP地址资源的分配。由此可见,方案1的选择是两个极端选项,而方案2的选择则是折中方案。UDP是目前IMS标准的SIP承载方式,应当优先选择,条件不满足的情况下建议可选用TCP,而DTLS/TLS隧道方式应作为最后的选项。因此,两种方案的信令传送均值得优化,优化后的SIP信令传送机制建议为:通过STUN机制探测SIP UDP端口可达性,可达则采用UDP端口传送SIP信令,否则采用SIP over TCP方式传送SIP信令。
媒体传送的穿越方式是两方案的核心,方案1利用了标准的TLS/DTLS隧道技术实现穿越,而方案2则是专门针对此穿越场景设计的一套机制。方案2只通过增加一个消息头实现媒体通道绑定,仅增加了防火墙穿越问题所必需的开销;而方案1额外增加了TLS中加密、封装、密钥协商等过程的开销,并且还涉及到虚拟IP地址分配,从穿越防火墙的目的上来说,这些操作步骤都无意义的,且占用额外的资源,因此从实现效率上来讲,方案2应当是占优的。另外,方案1还面临着一些问题,如二次加密的问题,当IMS业务本身有加密需求时(如AKA鉴权),穿越防火墙会带来二次的业务加密,严重浪费了加密资源,也影响用户体验。另外,方案1面临问题还包括IP地址管理和发放、用户管理、媒体QoS保障等也是值得思考的。
方案1的价值在于隧道这种防火墙的穿越方式是标准的且已经在IP网络实际场景中普遍应用,可能获得更多设备厂家,特别是客户端厂家的支持;另一方面,因为隧道方案的黑盒特性,IMS网络如果具备了隧道功能不仅可应用于目前本文提到的防火墙穿越场景,在面临未来防火墙更严格的规则、更复杂的穿越场景的情况下可能具有更好的适应性。
媒体穿越方面虽然方案1现阶段可能是更加流行的方案,但方案2是针对本文问题在技术层面更好的解决方案。条件许可的情况下,建议积极推动IMS标准进程向方案2靠拢,则其针对未来复杂场景的扩展性也能随着标准的演进而随之提高。
3 STG功能探测机制分析
STG的探测机制在上文已经提到,在应用STG功能时面对的第一个问题:即STG功能何时应被启用。这里建议借鉴NAT穿越技术中的ICE解决方案思想来解决问题。
防火墙的穿越与NAT的穿越实际是两个不同的课题,但两种问题在实际场景中经常是同时出现的,并且从两者形成的原因与穿越的技术原理来看,两者又存在着十分紧密的联系。上文提到的STUN即是一种NAT穿越的方法,同时还是ICE体系中的一种子方法和探测机制。STUN探测的基本原理是客户端向位于NAT外的STUN Server发送探测消息,Server反馈收到数据分组中客户端的源IP和端口号(可能被NAT转换过),客户端通过比较反馈的IP及端口号和自身最初填写的源IP及端口号是否相同来确认自身是否位于NAT之后。终端通过STUN机制确定自身所在网络环境,ICE方案即是根据流程中可能探测到的各种结果,从如STUN、中继NAT实现的穿透(Traversal Using Relay NAT, TURN)和特定域IP(Realm Specific IP ,RSIP)几种穿越技术中选择一个最合理的NAT穿越方案,以达到穿越目的的同时实现资源最优化。
回归本文防火墙穿越的话题,虽然STUN返回的NAT IP和终端私有IP的对应结果对防火墙端口穿越没有意义,但STUN机制仍然适用于测试端口连通性。针对测试不同端口的连通性,可以选择是否启用STG功能,也即能确定何种端口可以被用来穿越。根据之前分析的STG实现方案,建议利用STUN机制探测并处理的STG工作流程如图4所示,当更多的探测手段和防火墙穿越手段产生时,均可以添加到流程中。
图4 利用STUN机制确定STG功能启用
4 STG功能部署方式分析
关于STG在网络中的部署位置,首先,考虑防火墙穿越功能本身的业务属性,STG必须部署在企业防火墙的出口处。由之前分析可知,防火墙穿越功能和NAT穿越功能关系紧密,属于一簇功能,部署在同一个网络节点比较合理,目前IMS NAT穿越能力集成在SBC中,虽然其中NAT的实现方案现状同本文讨论的防火墙方案共通点较少,但随着网络演进和实现方案的标准化优化进程,两项功能有可能整合,合设在同一节点有利于合理利用设备资源。
另外,在采用上一章提到的方案1隧道方案的情况下,将会涉及到虚拟IP地址分配的问题。由于此IP地址要用来进行媒体和信令的路由,故要求分配的地址必须是公网IP地址,或要求此IP地址同STG下一跳的SBC南向接口的IP地址处于同一网段以能够被SBC识别后转换为公网地址。目前,公网IP地址资源紧张,分配公网地址无谓的占用资源;若采用私网IP地址,则必须配置IP地址同SBC同网段,配置难度大。而在STG与SBC合设的情况下则不会涉及到IP地址段的问题,私网公网均可,如配置私网地址只需配置为与企业私网地址不同即可。
出于以上考虑,建议STG功能优先考虑在SBC中集成。
考虑现阶段网络演进实际情况,一方面目前已能提供STG产品的厂家数量有限,特别是现有SBC厂家只有少部分厂家已能提供STG产品;另一方面,由于目前存在多种STG解决方案,没有实现标准化,STG提供厂家的产品实现机制各不相同,而在IMS网络中部署STG则要求实现方案必须为全网统一的。所以,在现阶段在IMS全网范围SBC集成STG功能可能涉及大面积设备替换和升级,成本高,且不利于未来演进。
从业务需求角度来看,STG功能最主要使用场景是软终端部署在防火墙后时的通信场景。统计数据表明,8%~10%的防火墙会存在到本文提到的穿越问题。根据网络规划,在未来2~3年这个阶段内IMS网络的用户多数还是以硬终端用户为主,软终端用户数约占16%。因此,全网大概只有不到2%的用户涉及使用STG能力,按照这个业务比例,按省集中设置STG功能是现阶段最优方案。
根据以上分析,得出部署结论如下:
(1) STG功能定位适合集成在SBC中。
(2) 现阶段不具备全网大规模升级SBC实现STG功能的条件。
(3) 现阶段STG功能需求不旺盛,可考虑集中部署。
结合以上结论,在IMS现阶段建设条件下,建议STG功能集成在SBC中,集成了STG功能的SBC按省集中部署,专门负责疏通存在软终端防火墙穿越问题的用户业务。
5 结束语
防火墙穿越是IMS网络建设中必须考虑的问题,本文对IMS网络防火墙穿越STG实现方案进行了深入剖析,可作为IMS网络规划的参考文档。
[1] RFC 2246 The TLS Protocol Version 1.0[S].
[2] RFC 4347 Datagram Transport Layer Security[S].
[3] RFC 5389 Session Traversal Utilities for NAT (STUN)[S].
[4] RFC 5626 Managing Client-Initiated Connections in the Session Initiation Protocol (SIP)[S].
[5] RFC2327 SDP: Session Description Protocol[S].
[6] RFC3550 RTP: a transportprotocolforreal-timeapplications[S].
Research on STG application scheme of IMS network
ZHU Li-li, XIAO Zi-yu, DING Zhi-gang
(China Mobile Group Design Institute Co., Ltd., Beijing 100080, China)
IMS service deployment faces the problem of firewall traversal, the paper deeply analyses the STG application scheme of IMS network firewall traversal and suggests the STG function deployment for operators on stage network conditions.
STG (security through the gateway); f rewall traversal; IMS
TN929.5
A
1008-5599(2014)11-0046-05
2014-05-05