陈桢 范华峰
1 常州机电职业技术学院信息工程系 江苏 213164
2 常州机电职业技术学院现代教育技术中心 江苏 213164
计费网关系统目前市场上也有类似产品,但价格一般都很高。而且购买的系统与学校现有的基础数据平台衔接比较困难,也不能完全满足学院的使用需求。所以开发一套符合自身要求的计费网关系统部署在校园网络的出口处。计费网关的部署模式见图1。
图1 校园网络拓扑图
计费系统作为网络运转不可或缺的组成部分,在网络管理中占据着极其重要的地位。因此在进行方案设计时制定的总原则是:以方便校园网管理为总的设计目标,根据校园网的特点设计出一套具有一定先进性、实用性的校园网计费系统。由于通过校园网访问 Internet的速率一般比较高、流量比较大,因此在设计计费系统时要考虑计费准确等实际问题。计费系统采用按用户进行认证管理,以用户使用的流量来计费,对于公共机房、宿舍区还兼顾按时间进行计费。用户通过一卡通自助服务平台缴纳上网费。
本文研究的计费网关系统由四大模块组成:计费网关基本系统模块、用户登录身份验证与数据采集模块、计费管理模块和自助式缴费模块。设计思路是:按照用户上网的流程,依次找出关键点,划分出各模块的应用范围,进而制定出各模块的功能。
(1)计费网关基本系统模块功能:选择Linux构造嵌入式系统,以Debian Linux为基础,通过裁剪来构造一个优化过的专用计算机系统,使其满足对系统功能、可靠性、实时性、资源占用等的要求。
(2)用户登录身份验证与数据采集模块功能:该模块的功能主要是强制用户在使用 Internet时一定要先登录认证网关服务端,然后才能访问外网。这是一项访问外网时必须经过的处理功能,所有用户不可能绕过这项功能模块。当用户没有登录时,认证网关会提示用户客户端登录。当用户顺利登录后,服务端系统将用户名、IP地址进行绑定,生成可以允许该IP访问外网的策略、实时采集用户IP的流量,并记录在在线用户列表中,接着会产生一个全局惟一的令牌。该令牌实现了用户名、IP地址、流量信息、时长信息等属性的绑定,且能准确定位该用户在在线用户列表中的位置,使网关服务端能方便地与令牌域信息交互同步,为系统的流量分析、负载分析提供重要的数据。
(3)计费管理模块的功能:此模块的功能比较多,包括:
(4)自助式缴费模块功能:注册后的用户可以通过校园一卡通自助服务平台进行缴费,自助系统通过网络将用户的缴费信息送入计费系统数据库实现用户的充值。
网关基本系统模块是网络计费系统中最重要的部分,它是一切其它模块的根本。本系统所设计的计费网关采用Debian Linux操作系统为基础,并进行裁剪、修改与优化使系统满足NAPI高性能包处理,通过Iptables实现规则处理与流量采集,用策略路由实现多线路出口负载均衡,TC高效散列表实现网络带宽精确控制,嵌入式系统为网关服务端提供方便的命令行接口。
登录模块是网络计费系统中至关重要的部分,它关系到用户身份的验证,流量信息与用户绑定等重要环节,是正确计费的基础和起始点。此模块的实现与计费系统拓扑结构密切相关,在此模块的实现包括了以下特点:第一强制登录,即用户未登录而访问外网时将自动重定向到登录页面;第二采用Radius服务进行身份验证和记账。
计费管理模块是 B/S的操作模式,使用 Java语言基于MVC构架模式进行开发的。主要有:用户管理模块,实现对计费系统账号的管理。客户查询模块,提供给校园网用户查询的功能可查询相关数据。其中包括当前费用余额、每次登录时间和结束时间、流量及消费金额;打印模块给管理员提供了打印功能。其中包括,每个用户每月使用状况清单、所有用户使用流量统计清单、所有用户上网时间分布清单等;系统设定模块给系统管理员提供了费率、充值优惠及优惠时段等内容的设置。
本模块功能主要是通过一卡通系统的信息交换平台,实现卡档案信息的自动、增量共享,并由校园卡进行相应账户的充值。主要流程如下:
(1)一卡通为网络计费系统提供卡档案信息,同时档案信息的增加、修改和删除操作也将由一卡通实时通知网络计费系统,网络计费系统根据档案的操作可以决定用户信息的变更以及新用户的注册。
(2)上网账户的充值功能在一卡通的自助触摸屏上进行,充值后的数据由一卡通的信息交换系统交换到网络计费系统中。同时在一卡通系统里生成一笔充值流水由一卡通统一进行清算。
(3)一卡通用户与网络计费用户之间的对应关系,根据以往的挂接方式一般是以学号或教工号为依准的,此种对应关系需要网络计费系统必须保证一个学号只能对应一个人员账号。
认证服务端采用 LINUX平台 gcc4为开发工具,使用NPTL 2.3.6线程库。
客户端向计费网关发出上网请求,计费网关开始认证,计费网关需要与Radius认证服务器交互用户名和密码信息,对用户账号进行认证,认证后Radius服务器向计费网关反馈认证结果和属性;认证成功后,用户可以上网,同时计费网关把上网时间,流量递交给Radius服务器,开始给用户计费;当用户需要下网时,用户在客户端软件界面中点击离线,向计费网关发送断开请求,计费网关响应请求,Radius服务器停止计费,用户即断开连接。用户上网费用可通过Web服务器查询。总体框架模型如图2所示。
图2 总体构架模型图
基本工作原理图如图3所示。
图3 基本工作原理
各线程主要功能如下:
接收客户请求线程:接收来自客户端的请求,校验数据包的完整性和合法性,识别信令将其放入不同的队列中等待处理。
令牌处理线程:当令牌队列不为空时,PUSH一个节点,判断取得令牌的条件。将处理结果POP到发送队列中,等待发送线程的发送。
认证处理线程:当认证队列不为空时,PUSH一个节点,将用户信息交Radius认证服务器验证,根据验证结果执行本地策略,并将处理结果POP到发送队列中,等待发送线程的发送。
刷新处理线程:当刷新队列不为空时,PUSH一个节点,根据 SESSIONID更新 OUL在线用户列表中该节点的TIMEOUT域值至最高阀值。若在OUL列表中能找到该用户,则将处理结果POP到发送队列中,等待发送线程的发送。
消息处理线程:当消息队列不为空时,PUSH一个节点,根据消息的接收者在 OUL列表中查找该用户的详细信息。若在OUL列表中能找到该用户,则将消息处理结果POP到发送队列中,等待发送线程的发送。
管理处理线程:当管理队列不为空时,PUSH一个节点,根据管理信令执行响应的动作,如强行离线等,将处理结果POP到发送队列中,等待发送线程的发送。
定时扫描线程:该线程每隔一段时间被唤醒,定期扫描OUL列表中的每个节点,并使被扫描到的节点TIMEOUT域的值减一,若发现TIMEOUT值小于最低阀值时,释放该接点并将消息处理结果POP到发送队列中,等待发送线程的发送。
发送线程:当发送队列不为空时,PUSH一个节点,将节点的内容发送出去。
认证客户端采用VC++6.0开发平台,与认证服务端进行通信。其主要功能有:取得服务器发布的令牌、提供用户输入用户名和密码、显示用户状态和收集上网日志(如图4)。
图4 认证客户端
校园网计费系统是一个比较庞大的系统,它所涉及的内容十分广泛。目前实现的校园网计费系统主要完成两个方面的工作:一是满足网络服务财务结算的需求;另一方面辅助实现对网络的有效管理,保证网络运行的稳定。本计费系统的具有以下特点:既包括了各种网络技术的集成,如DNS,RADIUS,NAT等网关技术又包括了相当底层的软件开发,如数据包过滤技术、高层协议识别技术及核心层的全局流控技术等,一定程度上解决了校园网用户共享网络出口信道而导致的网络拥塞。目前我院的同时在线的计算机数是两千台左右,运行效果很满意。
[1] John Lombardo.嵌入式Linux.中国电力出版社.2003.
[2] 王波.校园网计费系统的研究与实现.北京工业大学学报.2003.
[3] 王耀军.基于 Proxy的网络计费系统的设计与实现.计算机工程.2001.
[4] 朱树人.防火墙Http代理用户认证的实现技术.计算机工程与应用.2001.
[5] (美)William Stallings.SNMP网络管理.中国电力出版社.2001.
[6] Junk Alins, Joe Van Andel.Linux advanced routing HOWTO.http://lartc.org/.