软交换系统中的私网地址转换
摘要私网穿越问题是软交换系统大规模建设中不可避免要遇到的,本文介绍了目前最常用到的两种解决方案。
不换号转运营商关键词软交换IP地址NAPT ALG SBC
O、概述
近年来,随着网络向分组化方向发展,VOIP、软交换等技术开始越来越多地应用于网络。这些新技术在为用户带来更多服务选择的同时,自身也面临许多需要解决的问题,网络中大量使用私有IP地址就是其中之一。
1、问题的产生
先来简单介绍一下软交换系统的用户接入方式。从软交换机放置的等级区分,大致可分两类:(1)通过PSTN接入,软交换机位于汇接局/长途局;(2)通过IP网接入,软交换机相当于本地端局,如图1所示。
图1软交换用户接入方式
第一种接入方式,通过原有的PSTN交换机接入,和传统方式相比用户侧没有任何变化,也不存在IP地址问题;第二种接入方式(包括IP-IP、IP-PSTN等),IP多媒体用户通过IP网接入,必须分配IP地址。由于IPv4本身地址空间有限,且分配不均,随着互联网用户的飞速发展,IP地址匮乏情况越来越严重,因此运营商、企业用户等大量采用私有IP地址。据估计目前网上使用私有IP地址的设备数量远远超过使用合法IP地址的设备数量。
这些私网用户在访问公网时,一般采用NAT+PAT技术来解决地址转换问题。当私网内部设备试图访问外部网络时,NAT(网络地址转换)技术可将其私有的IP地址转换成合法的IP地址。动态的端口转换(PAT)技术可解决合法IP地址紧缺的问题,PAT将私有地址
+TCP/UDP端口转换并为一个合法地址+一个TCP/UDP端口,这样可有多个私有地址对应一个合法地址,用不同的TCP/UDP端口进行区分。NAT与PAT通常被同时使用,称为网络地址端口转换(NAPT)。
NAPT一般只完成IP层地址的转换,而软交换协议(如H.323、SIP、MGCP等)需要依靠封装在高层的地址信息完成通信。一方面,由于NAPT不能相应地修改这些封装在协议包内的地址,使软交换系统无法获得终端正确的地址信息,结果造成无法建立通信;另一方面,私网设备只有在向外部主动发起连接时,才会被分配到合法IP和端口号。若不做特殊处理,设备对外部网络来说是不可见的,也无法接受软交换发来的呼叫请求。
目前业界有多种解决私网穿越的方案。完善的方案应能解决私网穿越中可能遇到的各种问题,如NAT、PAT、对称NAT(Symmetric NAT)、防火墙等,另外在建设时对现有IP承载网和软交换系统的影响要尽可能小。本文介绍两种被多数厂家采用,并已有成熟产品的方案:ALG和SBC。
2、ALG解决方案
ALG(应用层网关,Application Layer Gateway)要求设备有识别应用程序的功能。在软交换系统中,ALG需要支持IP语音和多媒体协议(H.323、SIP、MGCP/H.248)。ALG方案的组网模型见图2。
图2ALG组网方案
以SIP协议为例,简述ALG工作原理(MGCP、H.248和H.323情况类似)。假设图2中终端A、C都是SIP终端,软交换机是SIP代理。位于私网的终端A用户通过公网的SIP代理向终端C发出INVITE请求,并创建相应的SDP消息体。当消息通过ALG时,ALG会分析IP包头、UDP包头及SIP/SDP消息体,并用ALG外部端口的合法IP地址和临时分配的UDP端口号来替换相应的终端A的私网地址和端口号。如表1所示。
表1
ALG网关将转换后的消息发往SIP代理(软交换),呼叫接续流程的其它信令消息、转换方式与INVITE类
似。SDP描述中RTP信息也相应被ALG修改,这样,参与通信的终端都能获得正确的IP地址和端口信息。如图2所示,当呼叫建立后,终端A、C间的RTP媒体流通过ALG事先分配的端口建立连接。
另外,如果ALG判断出两台终端在同一私网内(如图2中终端A、终端B),将不对IP 包做修改,终端A、B可直接用自己的私有地址建立RTP连接。
ALG方式不需要对软交换协议和终端做任何修改,是比较简单的解决方式。在实际应用中,ALG可以是私网原有NAT/防火墙的一部分,也可是与原有NAT/防火墙并列的新增设备。本文建议采用后一种方式,这样可以避免原有设备升级对网络的影响,同时也便于软交换系统的管理,尤其在IP承载网和软交换系统由不同运营商所有的情况。不过,由于ALG 放置在客户端,在软交换大规模部署时,对现网改造的工作量还很大。另外,当有新的应用出现时,需要对所有ALG进行升级来支持新的应用协议。
图2所示的方案中,数据应用仍通过网络中原有的NAT访问互联网,软交换应用则通过ALG与公网连接。由于ALG本身可具有防火墙和高层安全应用功能,可以设置只允许通过软交换消息和媒体流,只要选择适当的ALG产品,采用这种建设方案并不会降低原有
网络的安全性。
3、SBC解决方案
SBC(边界会话控制器,Session Border Controller)是目前主要的解决方案。与ALG设置在用户侧不同,SBC一般设置在软交换侧,该方案的优点是无需改动现有的NAT设备。
SBC方案的组网模型参见图3。
图3SBC组网方案
不同厂商的系统呼叫流程可能不同,有的系统终端直接向SBC注册,所有消息和媒体流都需要经SBC转接;还有的系统则首先由软交换来判断是否需要SBC介入。两种方式SBC在地址转换功能上工作原理大同小异,以下以第一种方式为例简要介绍。
当终端向软交换注册时,SBC会给每个终端分配一个信令代理端口,所有消息都会经过这个端口转发给软交换,同时SBC会用自身地址和这个端口来替换消息体中终端的地址信息。因此在软交换系统中维护的用户地址信息,实际上是SBC的地址和SBC分配给终端的端口号。
如图3所示,呼叫建立时,SBC会给终端分配一对RTP代理端口(收、发),并以此替
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论