目前,国内电信运营商、校园网的宽带数据业务支撑系统在运营过程中提出了实时计费、融合计费、精细运营等新的需求,需要提供多种产品服务多种不同的用户需求。实时高性能的RADIUS软件是宽带数据网支撑运营的关键。
1 AAA介绍
AAA是验证、授权和记账(Authentication Au-thorization
and Accounting)的运行于BAS上的客户端程序。它提供了一个用来对验证、授权和记账三种安全功能进行配置的一致的框架,是对网络安全的一种管理。AAA的实现可采用RADIUS、TACACS、TACACS+、Kerberos等协议。本文主要针对RADIUS(Remote
Authentication Dial In Us-erService)的实现来讨论。
当用户通过某个网络与宽带网络接入服务器BAS(BroadBand Access
Server)建立连接从而获得访问其他网络的权利(或取得使用某些网络资源的权利)时,BAS起到了过问用户(或这个连接)的作用。BAS负责把用户的验证、授权、记账信息传递给RADIUS服务器。RADIUS协议规定了BAS与
RADIUS服务器之间如何传递用户信息和记账信息。RADIUS通过建立一个唯一的用户数据库,存储用户名、用户的密码来进行验证,存储传递给用户的服务类型以及相应的配置信息来完成授权。BAS上运行的AAA程序对于用户是服务器端,RA-DIUS服务器是作为客户端。RADIUS协议的端口号为1812和1813,1814作为代理端口,实现跨运营商级的漫游服务。
2 宽带运营业务需求
RADIUS协议在一定程度上能满足对宽带用户的认证、授权、计费管理,但对于一些新兴的宽带业务如酒店宽带业务、校园宽带业务、大型运动会的运动场馆宽带业务等,在其管理方式的丰富性、灵活性上存在一些需要完善或解决的问题。通过对运营商数据业务运营状况的调查及在互联网上对宽带用户与宽带业务的需求调查分析,其几个方面需要改进:(1)RADIUS协议不能提供处理和保证用户对于服务质量的动态需求的机制。如果客人是在酒店接入上网,希望按客人意愿设置接入的带宽,RA-DIUS协议定义的属性中没有关于流量控制的动态变更属性,因此RADIUS协议不能满足用户对带宽的动态需求。(2)RADIUS记帐协议的实时性差,应付网络中断等异常现象的能力有限。早期的RA-DIUS记帐协议(RFC2139)中只规定了记帐报文的四种状态类型(Acct-Status-Type):Start(Value=1):开始对指定用户提供服务,记帐开始;Stop(Val-ue=2):停止对指定用户提供服务,记帐结束;Ac-counting-Off(Value=8);Accounting-On(Value=7)。(3)RDIUS记帐协议不能提供对接入用户的计费进行基于时间段和累计时长及累积流量的综合折扣。RADIUS记帐协议提供的时间和流量信息是相互独立的,这对于单纯的基于时间段、基于累计时长、基于累计流量的费率折扣计算没有问题,但由于流量统计和时间统计的分离,不能确定具体的某段时间发生的流量是多少,无法做到更为复杂的综合的费率折扣计算。(4)RADIUS协议不具备实时计费功能,将影响宽带业务的开展。在电信运营商运营的数据业务中,有相当一部分是预付费业务,需要实时计算用户上网发生的费用,实时从用户余额中扣除该费用,并确定用户卡上余额是否足够继续享受服务。由于RADIUS协议不能在用户上网的过程中向RADIUS
SERVER实时提供计费信息,导致预付费一类的业务无法开展。目前大部分BAS有定时发送记帐更新包机制,如果RADIUS收到的记帐更新包后及时更新计费信息,检测到用户时长备用完则强制下线。这样对RADIUS软件需要有很强的实时处理能力,在电信运营商现有的网络设备上实现实时计费。通过对RADIUS软件架构分析与设计,这种方案是可行。
3 架构设计
RADIUS软件主要应用于宽带业务运营的支撑管理,是运营支撑的关键软件。RADIUS软件的设计需要考虑一个重要的问题:系统高性能与可扩展性。RADIUS软件架构的设计会直接影响系统可持续建设的质量与成本。
RADIUS软件架构分为三个层面:协议逻辑层、业务辑层、数据逻辑层。协议逻辑层主要实现RADIUS框架基础作用处理网络通信协议的建立、通信、停止方面的工作起到了协议处理与业务包处理的分层处理。业务逻辑层的设计是RADIUS软件架构设计的核心部分,协议处理进程主要是对转发引擎发来的包进行初步分析,并根据包的内容进一步分发到不同的业务逻辑处理进程。协议处理进程可根据项目的情况,配置不同的协议进程数,提高包转发与处理的速度。业务逻辑进程分为认证、计费、授权三种类型,不同的业务逻辑进程接收不同的协议进程之间的信息并进行处理。转发进程与协议进程之间采用共享内存的方法,实现进程之间的通信。协议进程与业务逻辑处理进程之间采用进程+线程的实现方法。这样不需要对业务处理线程进行应用软件层面的管理,而由UNIX系统进行管理,提高了应用系统的处理效率与质量。数据逻辑层需要对来自业务逻辑处理线程的数据统一管理与处理。由数据库代理池(DAT
POOL)统一连接数据库,减少对数据库系统的压力,同时减小了系统对数据库的依赖性,增强了系统适应数据库系统的能力。
RADIUS的高性能是处理大用户量并发的实际处理能力及软件架构的可扩展性。负载均衡是提高RADIUS软件性能的有效方法。它主要完成以下任务:解决网络拥塞问题,服务就近提供,实现地理位置无关性;为用户提供更好的访问质量;提高服务器响应速度;提高服务器及其他资源的利用效率;避免了网络关键部位出现单点失效。当在线宽带用户量巨大时,BAS发送给后台RADIUS的用户数据更新包的数量会急剧增加,RADIUS服务器处理能力会成为性能瓶颈,当包的数量大于RADIUS服务器的处理能力时将出现丢包,造成用户数据的丢失或不完整可通过代理转发的方式,把从BAS发送过来的数据包,平均转发到其他的RADIUS服务器中进行处理实现RADIUS服务器之间的负载均衡。
RADIUS高性能还体现在自我管理的功能RADIUS自我管理分为UNIX守护(系统级)的管理监控、进程管理监控。在有故障的时候,服务进程能内部调度进度,协调进程的工作情况。同时对RADIUS报文进行SNMP的代理管理,向综合网络管理平台实时发送信息。
用POST消息向服务器提交数据。由于HTTP协议和消息只需要较少的代码,因而减少了许多相关的数据结构。
HTML协议:设备使用HTML格式添加JavaScript脚本生成客户端的配置页面,部分页面可存在设备Flash或其他设备的HTML文件。HTML模块提供程序中生成页面功能,其模块主要由应用接口层、核心层和编解码层几个部分组成。核心层提供一个HTML格式的Web页面在程序中的抽象表示;应用接口层提供Web服务器逻辑部分创建页面和修改页面的接口;编解码层负责程序中页面和字符流页面间的格式转换。由于Web配置服务逻辑不接收客户端来的页面,所以只需要实现编码部分的功能。
Web服务器逻辑:负责控制设备与客户端浏览器间页面的交互过程。主要功能是向客户端提供配置界面及当前配置和接收客户端提交的配置数据。Web服务器逻辑维护提供的资源,包括Web配置界面和设备上的其他资源;客户端浏览器使用POST消息向设备提交配置数据,当收到客户端的POST消息时,Web服务器逻辑从中读取提交的配置数据,调用数据库接口将新的配置数据设置到数据库中。数据的更新机制将新的配置数据提供给网关业务逻辑部分。Web服务器逻辑需要维护POST列表,其中记录了收到客户端POST请求后的操作。Web服务器逻辑还负责HTTP头部的协商,对于各种头部是否允许出现以及头部的取值进行判断处理。
4结论
在目前应用的VoIP网关中,可以采用嵌入式Web服务的方式实现图形化的人机对话接口,以便实现对VoIP网关的有效管理。这种Web服务的方式在嵌入式操作系统中加载定制的HTML和JavaScript程序,并通过HTTP协议实现了基于Web界面的B/S管理架构。由于嵌入式系统在硬件和软件上的特性,嵌入式的Web系统采用了最精简、最快速的架构。
通过在嵌入式VoIP网关中采用Web服务的管理方式,提高了VoIP设备及网络的可管理性和易用性,比传统命令行或者C/S的管理方式有更好的实用价值。由于VoIP正向普遍的非专业用户发展,采用的这种嵌入式Web管理系统将大大降低对用户的专业需求。
5 测试结果
按照本软件架构设计的RADIUS应用软件在2005年3月的压力性能综合测试中及SUN
V480单CPU、2G内存/Solaris9的环境下,实现并发接入处理用户>310用户/秒,采用SMARTBITS的在线测试中达到2万用户,认证、授权、计费均在规定时间内实时完成,达到了设计目标。
|