审计机制在软交换机中的设计
2011-06-14王云磊康志杰
王云磊,康志杰
(中国电子科技集团公司第五十四研究所,河北石家庄050081)
0 引言
以软交换为核心的通信网络是未来通信发展的必然趋势。与传统电路交换相比,软交换网络采用呼叫控制与承载相分离的技术,网络设备的处理能力都有很大提高,软交换机和各种网关的容量可以做得非常大,这些都是软交换的优势,但同时也让它面临更多的安全威胁。软交换机作为下一代网络中呼叫与控制的核心,一旦设备出现问题和故障,将导致大范围的通信故障,给整个网络造成非常大的影响。如何实现软交换机的高可用性成为备受关注的课题。
为实现软交换机的高可用性,在设计中可以采取很多措施,包括采用高稳定的硬件平台,电信级的操作系统,冗余、双归属的系统架构和高可用性(HA)管理中间件等。除此之外,新技术审计机制也可以提高软交换机的高可用性。
1 审计机制分析
审计就是通过特定手段检测设备内部模块间或设备与外部环境间的矛盾因素,并通知设备纠正解决这些矛盾,以提高设备稳定运行能力的一种机制。
审计机制采用的是自我检测、自我修复的策略,着重解决系统设备在运行过程中出现的不可预料的异常,保证设备性能稳定,预防设备宕机造成重大影响。而冗余、双归属的系统架构是在系统设备宕机后才生效的解决方案,无法解决设备切换时造成的损失。二者相比,审计机制是一种更积极有效提高设备稳定性的措施。
审计对象是设计的关键内容。审计对象的选择应符合以下条件:①对象出现异常,会对设备功能和性能造成显著影响;②对象在多个不同模块或设备中被运用;③对象在不同模块或设备中有统一的标识。审计对象选择得好,可以提高审计效率,达到事半功倍的效果。
审计机制作为提高设备高可用性的预防性措施,应遵循以下规则:①审计进程运行于低优先级,不能抢占系统资源,不能影响设备正常的功能处理;②在系统拥塞的情况下,审计进程将被挂起,以便给设备的功能处理让出资源,等到系统拥塞解除后,审计进程将再次被启动。
2 系统设计
2.1 总体方案
软交换机支持H.323、H.248、媒体网关控制协议(MGCP)和会话发起协议(SIP)等多种协议,结构较为复杂,其总体方案设计如图1所示。
图1 总体方案设计
软交换机采用电信级的Linux操作系统,应用程序中与审计相关的功能模块包括:
①资源管理模块:负责外部设备资源的分配和释放,记录资源的忙闲状态和呼叫的信息;
②呼叫控制模块:负责呼叫的接续与控制;
③呼叫接入模块:负责H.323、H.248、MGCP和SIP等多种协议外部设备的接入,并把这些不同的协议信令映射成统一的内部适配消息交由呼叫控制处理;
④审计模块:向相关模块发送状态请求消息,并比对回复信息中审计对象的状态是否一致;若不一致,则进行异常处理。
依据审计对象的设定条件,软交换机中审计机制的设计分为2部分:软交换机内部模块间的审计和软交换机与外部设备间的审计。
在软交换机内部,呼叫控制、呼叫接入和资源管理模块都涉及到对呼叫的处理,并且每个呼叫均对应唯一的呼叫标识call_id ,所以模块间设计进行呼叫的审计。
软交换机通过H.248协议对综合接入网关(IAD)的终端进行操作,并且每个终端都对应唯一的终端标识term_id ,所以软交换机与IAD间设计进行终端的审计。
2.2 内部模块间呼叫审计的设计
呼叫审计是周期性进行的,它以资源管理模块保存的呼叫信息为基准,通过比对相关模块的呼叫状态来实现,流程设计如图2所示。
图2 呼叫审计流程
审计模块执行时首先启动循环定时器,该定时器周期触发审计处理。收到时超消息,审计模块向资源管理发送消息,请求呼叫标识列表。资源管理模块从全部呼叫信息中依次取出若干个呼叫标识回复给审计模块。
审计模块依据收到的呼叫标识列表,按照次序逐一向呼叫控制和呼叫接入模块发送消息,请求该呼叫的状态。呼叫控制和呼叫接入模块查询进程内的呼叫包,将呼叫的状态映射为不存在、稳态和非稳态回复给审计模块。
审计模块从回复中提取呼叫状态进行比对。若2个模块中某个呼叫的状态不一致,则记录该呼叫标识,等待第2次审计;若标识列表中所有呼叫的状态比对均一致,则程序等待定时器时超,向资源管理请求新的呼叫标识列表。
审计模块依据第1次审计失败的呼叫标识列表,重新向呼叫控制和呼叫接入模块发送消息,请求该呼叫的状态。收到回复后,若呼叫状态还不一致,则认为该呼叫处理错误,并进行纠错处理,向资源管理、呼叫控制和呼叫接入模块发送消息,请求删除该呼叫,释放内存和呼叫标识等资源。然后程序等待定时器时超,向资源管理请求新的呼叫标识列表。
在流程设计中,呼叫审计通过2次审计的方法来确认目标对象错误。在第1次审计失败时并不会立即采取纠正措施。只有连续2次审计失败后才确认目标对象错误,采取纠正措施。这种策略可以防止由于模块间消息处理不同步而造成的审计错误。
2.3 设备间终端审计的设计
软交换机借助H.248协议的审计值(AuditValue)命令来实现终端审计。AuditValue命令可以返回终端当前的状态属性、事件、信号和终端的统计等信息。
终端审计在以下情况出现时被触发,IAD曾经中断与软交换机的通信连接,但随后连接重新恢复。呼叫接入模块从 IAD接收到带有拆线方式(Disconnected)的服务更改(ServiceChange)命令,开始对IAD的所有终端进行审计。终端审计的流程设计如图3所示。
图3 终端审计流程
审计模块接收到呼叫接入模块的触发,启动终端审计流程。审计模块分别向资源管理和IAD发送询问消息和AuditValue命令,请求终端状态。
审计模块收到IAD的回复后,首先检查终端状态。如果终端不是进入服务状态,审计模块向IAD发送带有重启动(Restart)方式的ServiceChange命令,强制IAD恢复终端功能,进入服务可用状态。然后,审计模块继续检查资源管理模块的终端状态。如果终端没有进入服务,审计模块则向资源管理模块发送重置终端状态的消息。终端审计的流程结束。
3 设计验证
测试的目标是验证呼叫审计和终端审计可以提高软交换机的高可用性。测试需要的设备包括:软交换机、思博伦abacus5000测试仪、网络交换机和监控主机。其中,监控主机安装思博伦测试仪操作软件和软交换机监控软件;软交换机将跟踪信息发送给监控主机进行保存;思博伦测试仪配置为H.248综合接入网关,包含 400个终端,终端标识符为aaln1~aaln400。测试设备的网络配置结构如图4所示。
图4 测试设备的网络配置结构
3.1 呼叫审计的设计验证
思博伦测试仪模拟H.248综合接入网关注册到软交换机,然后终端之间发起呼叫,对软交换机进行呼叫测试。测试结束后,测试仪数据显示,呼叫试发次数为1 290 724次,呼叫成功接通率为99.99%。
分析软交换机的跟踪信息,由于内部模块间UDP通信的网络丢包,造成了部分呼叫失败。呼叫审计成功发现并释放了这些遗漏的呼叫资源,避免了对后续测试造成呼损,为软交换机保持高呼叫接通率提供了保障。
3.2 终端审计的设计验证
监控主机控制思博伦测试仪模拟终端aaln1向软交换机发送Disconnected方式的ServiceChange命令。分析软交换机的跟踪信息,看到终端审计流程被触发,而后终端aaln1被强制进入服务状态,实现了软交换机中终端资源的高可用性。
4 结束语
测试证明,审计机制可以纠正呼叫和终端在设备运行过程出现的异常,大大提高了软交换机的高可用性,达到了设计目标。目前,审计机制已被应用于软交换设备的研制,工程实践证明,该设计思路清晰,结构合理,为其他项目的设计开发,提供了有益的参考。
[1]YD/T 1434-2006-I.交换设备总体技术要求[S],2006.
[2]万晓榆.下一代网络的业务生成技术[M].北京:北京邮电大学出版社,2005.
[3]唐雄燕.软交换网络-技术与应用实践[M].北京:电子工业出版社,2005.
[4]刘韵洁,张智江.下一代网络[M].北京:人民邮电出版社,2005.