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


ALG方式不需要对软交换协议和终端做任何修改 , 是比较简单的解决方式 。在实际应用中 , ALG可以是私网原有NAT/防火墙的一部分 , 也可是与原有NAT/防火墙并列的新增设备 。本文建议采用后一种方式 , 这样可以避免原有设备升级对网络的影响 , 同时也便于软交换系统的治理 , 尤其在IP承载网和软交换系统由不同运营商所有的情况 。不过 , 由于ALG放置在客户端 , 在软交换大规模部署时 , 对现网改造的工作量还很大 。另外 , 当有新的应用出现时 , 需要对所有ALG进行升级来支持新的应用协议 。;
图2所示的方案中 , 数据应用仍通过网络中原有的NAT访问互联网 , 软交换应用则通过ALG与公网连接 。由于ALG本身可具有防火墙和高层安全应用功能 , 可以设置只答应通过软交换消息和媒体流 , 只要选择适当的ALG产品 , 采用这种建设方案并不会降低原有网络的安全性 。
3、SBC解决方案
SBC(边界会话控制器 , Session;Border;Controller)是目前主要的解决方案 。与ALG设置在用户侧不同 , SBC一般设置在软交换侧 , 该方案的优点是无需改动现有的NAT设备 。;
SBC方案的组网模型参见图3 。
SBC组网方案
【解析软交换系统中的私网地址转换】不同厂商的系统呼叫流程可能不同 , 有的系统终端直接向SBC注册 , 所有消息和媒体流都需要经SBC转接;还有的系统则首先由软交换来判定是否需要SBC介入 。两种方式SBC在地址转换功能上工作原理大同小异 , 以下以第一种方式为例简要介绍 。;
当终端向软交换注册时 , SBC会给每个终端分配一个信令代理端口 , 所有消息都会经过这个端口转发给软交换 , 同时SBC会用自身地址和这个端口来替换消息体中终端的地址信息 。因此在软交换系统中维护的用户地址信息 , 实际上是SBC的地址和SBC分配给终端的端口号 。;
如图3所示 , 呼叫建立时 , SBC会给终端分配一对RTP代理端口(收、发) , 并以此替换SDP消息中对RTP接收端口的描述 , 再转发给软交换 。即:每个终端收到的对方RTP信息实际上是SBC分配的RTP代理端口号 , RTP流经SBC在两个终端间建立连接 。;
一般NAPT为私网终端分配的UDP端口有一定生命期(如40s) , 因此SBC和终端间要有某种机制来保持这个端口始终对终端开放 。如 , SIP终端可定期向SBC发注册信息;而对MGCP系统 , 软交换收到终端RSIP消息后 , 可定期向终端发AUEP消息 , 强制终端回应 , 来保持NAPT上相应端口开放 。;
由于所有消息和媒体流都是经过同一SBC转接 , 这就解决了对称NAT(Symmetric;NAT)问题 。;
需要指出 , 在软交换系统中 , SBC还可实现很多重要功能 , 如防止带宽盗用、安全治理、QoS治理、合法监听等 , 本文仅涉及其中的私网穿越功能 。引入SBC可使软交换系统更加完善 , 但也带来了新问题:假如所有消息和媒体流都需要经过SBC转接 , 似乎与软交换呼叫控制与承载分离的设计思想不符 , SBC有可能会成为整个系统的瓶颈 。;
4、结束语
业内还有其它解决私网穿越的方案 , 具体采用哪种方法 , 要综合考虑承载网现状、相关设备的成熟度、软交换系统要实现的功能、规模等来确定 。如上文提到的 , 这一问题的根源在于IPv4系统本身的限制 , 未来IPv6网络将会从根据上解决这一问题 , 也将会给软交换带来更广阔的发展空间 。


推荐阅读