解析软交换系统中的私网地址转换

概述
近年来 , 随着网络向分组化方向发展 , VOIP、软交换等技术开始越来越多地应用于网络 。这些新技术在为用户带来更多服务选择的同时 , 自身也面临许多需要解决的问题 , 网络中大量使用私有IP地址就是其中之一 。;
1、问题的产生
先来简单介绍一下软交换系统的用户接入方式 。从软交换机放置的等级区分 , 大致可分两类:(1)通过PSTN接入 , 软交换机位于汇接局/长途局;(2)通过IP网接入 , 软交换机相当于本地端局 , 如图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 。;;
ALG组网方案
以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所示 。;
ALG网关将转换后的消息发往SIP代理(软交换) , 呼叫接续流程的其它信令消息、转换方式与INVITE类似 。SDP描述中RTP信息也相应被ALG修改 , 这样 , 参与通信的终端都能获得正确的IP地址和端口信息 。如图2所示 , 当呼叫建立后 , 终端A、C间的RTP媒体流通过ALG事先分配的端口建立连接 。;
另外 , 假如ALG判定出两台终端在同一私网内(如图2中终端A、终端B) , 将不对IP包做修改 , 终端A、B可直接用自己的私有地址建立RTP连接 。;

推荐阅读