新一代万兆双栈认证计费系统的研究与实现
2015-02-20马云龙张千里姜彩萍王继龙
马云龙,张千里,姜彩萍,王继龙
(清华大学信息化技术中心,北京100084)
新一代万兆双栈认证计费系统的研究与实现
马云龙,张千里,姜彩萍,王继龙
(清华大学信息化技术中心,北京100084)
校园网的传统计费系统无法支持万兆线速,且局限于流量计费或时长计费,不能实现单一用户多连接数的计费和实时流量阶梯计费。为此,设计一种新的校园网万兆双栈认证计费系统。通过改进计费算法模型实现实时流量阶梯计费,使用优化的通用PC服务器体系结构提高万兆计费网关的转发性能。经校园网部署应用证明,该计费系统可提供万兆双栈链路下用户实时流量阶梯计费和网关高速转发服务,设计的系统已被清华大学校园网采用并取得了较好的使用效果。
万兆;双栈;计费系统;实时;流量阶梯计费;计费网关
1 概述
随着互联网应用的快速发展,网络使用模式发生了巨大变化,网络云盘、P2P及网络视频等新应用占据大量网络带宽[1]。为提高用户体验,各单位出口带宽不断提高,从教育科研计算机网络的接入单位来看,升级改造其主干网络和出口链路至万兆[2]已经成为主流。目前,虽然已有一些针对万兆链路流量采集或分析系统的研究,但是万兆链路下实现流量实时计费仍然面临诸多问题:对于使用宽带远程接入服务设备(Broadband Remote Access Server, BRAS)利用远程用户拨号认证子系统[3-4](Remote Authentication Dial in User Service,RADIUS)协议的记账报文实现流量计费的系统,由于RADIUS实时计费更新报文的发送间隔参数一般为分钟计,导致流量计费的实时性比较低;对于采用Netflow流数据进行计费的系统,存在数据组织效率低、传输开销过大等问题[5],且路由器发送Netflow流取决于用户网络连接的中断或者路由器的老化时间参数设置,容易出现流量计费系统所接收到的Netflow流数据与用户当时产生的实时流量出现时间错位的情况;因此,这种计费方式也不能很精确地实现实时计费。本文主要研究如何利用万兆计费网关逐包归并统计的方式实现万兆链路下的实时流量计费。
2 计费系统的设计与实现
计费系统面临着计费的公平性、多样性以及多协议支持的新需求[6-8]。首先,传统的包月和区分国际、国内流量的资费政策无法保证用户公平使用网络带宽,需要重新制定新的资费策略以实现多占用网络带宽,多产生网络流量则应多付费的公平原则。而传统的包月计费政策中多用网络流量的用户和少用网络流量的用户都采用相同的费率(包月或包时)进行计费,客观上影响了大多数用户的网络使用体验,因此实施流量阶梯计费可很好地解决以上问题。其次,用户多样化的校园网需要提供多种计费策略,对于现阶段用户智能终端、便携式电脑以及PC台式机的同时连网需求,有必要允许同一用户账号多个IP地址同时使用,而目前国内主流计费系统尚无法支持单一用户账号多IP地址同时在线的阶梯计费策略。此外,清华大学校园网已开通IPv4/IPv6双栈主干和出口万兆网络,IPv6网络的普及迫切需要能支持IPv6地址计费的新系统。
为满足以上需求,本文设计清华大学校园网新一代万兆双栈认证计费系统,采用通用PC服务器平台架构作为万兆出口网络的计费网关,为提高万兆高速网络中计费网关的转发性能,对通用PC服务器体系结构进行优化设计并改进万兆计费网关的转发算法,通过改进计费系统算法模型实现实时流量阶梯计费。
本文设计的万兆双栈认证计费系统由客户端/ WebPortal认证模块、内存用户认证模块、计费网关模块、计费/入库模块、用户数据库、用户管理系统6个部分组成,如图1所示。
图1 计费系统架构
客户端/WebPortal认证模块是用户接入网络的认证平台,负责将用户的认证信息安全可信地递交给内存用户认证模块,同时返回内存用户认证模块的认证信息。
内存用户认证模块负责用户调度,接收到客户端/WebPortal认证模块的认证请求后首先校验用户在内存中的状态,用户认证通过后即通知计费网关放行该用户的IP地址。
计费网关部署在校园网出口链路上,作为校园网和互联网的隔离,计费网关首先需要能够识别链路两端的路由设备以及支持对IPv4,IPv6不同协议包分别处理,默认情况下用户IP地址在计费网关为关闭状态,用户无法上网,只有通过内存用户认证模块的授权并下发策略给计费网关,计费网关才会放行该用户的IP地址并将该用户的IP数据包逐包统计,将包头中的长度字节累计并实时发给计费/入库模块。
计费/入库模块为整个计费系统的结算模块,负责实时结算计费网关发送来的用户累计流量,并与用户的计费策略进行实时比对,当用户余额不足时通知计费网关关闭用户的IP地址,并通过内存用户认证模块返回客户端/WebPortal认证模块相应提示信息。
当用户结束联网后通过客户端/WebPortal认证模块向内存用户认证模块发起断开网络请求,内存用户认证模块将下线指令送到计费网关,计费网关将该用户下线的同时将用户最后一条流量信息送给计费/入库模块,此时计费/入库模块会根据该用户的资费策略对本次联网期间用户产生的时长、流量进行结算,并将这一联网明细写入用户数据库。
用户管理系统提供用户管理、充值和查询等功能。
2.1 万兆双栈计费网关
计费网关是计费系统最核心的组成部分,计费网关对网络数据包的转发效率决定了万兆链路计费的能力,计费网关对IPv4和IPv6协议包的识别能力决定其能否双栈计费。此外,计费网关对在线用户的计费粒度是实现实时计费的关键因素。
一个合格的万兆计费网关必须具备高性能转发、支持分布式部署、运行可靠和维护简单等特点。其中,计费网关最主要的工作在于对每个通过的数据包进行逐包统计流量和实时计费归并。因此,高效的IP地址插入和查找算法十分重要。本文设计计费网关的内存在线IP表的HASH查找算法来实现高效快速的在线IP地址插入和查找,取IPv4地址的低8位(IPv6地址的后4位)构造HASH值,HASH的算法函数如下所示:
其中,2 654 435 769为斐波那契(Fibonacci)散列法对应32位的大素数。为了防止HASH值的碰撞问题, HASH值存放设计成256叉树链表,由此设计计费网关同时在线IP为65 536个。计费网关与计费系统之间通信采用UDP协议,UDP数据包理论最大长度为65 535 Byte,因IPv4数据包包含8 Byte的数据包头和20 Byte的IP包头,IPv6数据包包含40 Byte的数据包头,所以UDP协议数据包可传输的数据长度不少于
65 495 Byte,本文设计每个UDP包发送256个IP,使用批量打包传送的方式来传递网关逐包统计和归并后的流量信息,一次只需批量发送256个包即可将65 536个在线IP的流量信息发送给计费/入库模块进行计费结算,在同一子网中发送UDP包的时间间隔约为80 ms,256×80=20.48 s,考虑网络延迟,本文设计计费网关30 s完成一次流量信息传送,即30 s可完成65 536个同时在线IP的一次流量结算。批量打包的方式极大减少了计费网关和计费系统间的通信数据量,提高了同步效率,如需扩展同时在线IP表只需扩大链表和每次发送的IP数目即可,例如设计512叉树链表,每个UDP包发送512个IP地址,同时在线用户即可达到131 072个。
对于万兆计费网关的实施,目前主流万兆网关主要有2种,一种是基于专有硬件平台的万兆网关,例如Tilera或OCTEON[9-12]硬件平台,一种是基于通用PC服务器平台研发的万兆网关。专有硬件平台万兆网关转发效率高,但也存在一些问题[13],首先,代码开发技术难度较高,需要进行基于硬件平台的底层开发;其次,专有硬件平台价格较高,且通常采用专用的操作系统,运行维护和迭代开发难度较大;再次,专有硬件平台对运行环境要求较高,易出现散热不好导致硬件故障的问题。而改进通用PC服务器平台的内核转发模块算法达到预期的万兆转发性能的体系结构开发难度相对较小,硬件平台成本低廉,易于维护,具有稳定、可靠、通用性好的优点。
本文万兆计费网关的研发基于通用PC服务器架构和万兆光纤网卡进行,考虑到此种架构的计费网关转发瓶颈主要在于CPU的消耗,经过长时间开发、测试,内核转发时CPU采用改进的直接缓存访问(Direct Cache Access,DCA)指令集处理中断,从而使计费网关转发的数据包尽可能以最近最快的途径进入CPU的高速缓存并被万兆网卡优先访问,既可充分利用高速缓存中的数据,又可利用高速缓存低延迟的特性,避免CPU频繁访问内存,从而降低系统开销。此外,开启CPU多核和超线程并行处理模式,另外开启了万兆光纤网卡多队列模式,以实现每一个网卡队列都有一个CPU核心负责处理数据包转发业务,建立并行处理队列,从而提升CPU的处理效率,减少CPU的整体性能消耗,达到提高数据包转发能力的目的。
本文计费网关采用一台通用PC服务器,其CPU采用2颗6核主频为2.93 GHz的INTEL至强处理器,网卡采用INTEL®82 599万兆以太网控制器,操作系统采用Linux Redhat AS6.0,测试仪采用IXAX400T 2块万兆板卡,开启CPU全部24个处理器核心做多线程并行处理,开启万兆光纤网卡16个队列进行万兆计费网关转发测试,测试结果如图2所示。
图2 万兆双栈计费网关转发性能测试
图2表明,本文研究实现的万兆双栈计费网关可对64 Byte小包达到单向650万包/s的转发速率, 256 Byte及以上的数据包实现线速转发,2010年8月的INTEL实验室内部测试数据表明,对于相同硬件平台,CPU主频为3.33 GHz的服务器,64 Byte数据包转发为单向900万包/s,本文研究的计费网关基本接近INTEL实验室内部测试的转发数据。在万兆网关上线时采用了主频为3.33 GHz的CPU,经再次测试, 64 Byte数据包转发效率得到进一步提升,单向转发达到720万包/s的转发速率,由此表明之前测试转发效率低于INTEL实验室内部测试结果的主要原因是本文采用的CPU主频低于INTEL实验室内部测试所采用的CPU主频所致。
2.2 实时流量阶梯计费
实现实时流量阶梯计费需要考虑同时兼容其他资费政策,如何平滑切换计费阶梯也是一个难点问题。阶梯切换时需要保证用户联网状态不变,而且用户联网明细需要做账单分割,即用户明细需要呈现阶梯前后的流量明细、流量公式等。对于同一用户多个IP地址同时在线的情况,需要考虑流量统一归并实时结算的问题。
本文设计的计费/入库模块也采用内存在线IP表的HASH算法实现高效快速的在线IP插入和查找,同时在内存中分配了在线用户HASH表,数据结构与计费网关内存在线IP表相同,设计容量也为65 536个。当用户使用客户端/WebPortal认证模块发起认证请求并获得通过时,内存用户认证模块通知计费模块将该用户写入内存在线用户HASH表,同时将该用户的IP写入内存在线IP HASH表。计费/入库模块每隔30 s收到计费网关发送的所有在线IP流量信息,根据IP与用户账号的对应关系以及该用户的当前资费策略进行流量结算。结算流程如图3所示。计费/入库模块收到内存用户认证模块的用户上线通知时,标记用户是否为阶梯计费用户、用户当前的阶梯资费组、用户当前阶梯资费组的最大可用流量等信息。计费/入库模块收到计费网关的同一用户多个在线IP的累计流量时与当前阶梯计费组最大可用流量进行比较,当到达阶梯最大可用流量时执行计费组切换动作,将用户计费组切换成下一个阶梯计费组,同时按照用户组的资费标准将流量折算成金额并在用户账户中扣除,如用户余额不足则将其强制下线。
图3 用户阶梯计费结算流程
切换过程同时生成用户账单分割明细,标识用户在切换阶梯前后在线IP所产生的流量明细。计费系统在月末统一执行用户计费组复位操作,同时将用户累积流量清零。通过以上功能的开发解决了同一用户多个IP地址在线按照流量实时阶梯计费的问题。
2.3 客户端/WebPortal认证模块
客户端/WebPortal认证模块作为用户接入互联网的首跳入口具有极其重要的意义:为了防止出现密码盗用,流量重放伪冒用户等情况并提高用户体验,有必要设计一套安全、可信的认证平台;为了与多种互联网应用对接,满足当前用户的多种应用一次认证的需求,有必要设计一套标准、开放的认证平台。
本文所研究的客户端认证平台基于标准的MD5-CHAP协议。首先,用户发起认证时客户端向内存用户认证模块(服务端)发起认证请求,内存用户认证模块验证用户身份后下发16位的随机口令,并在服务端暂存该口令;用户得到口令后对服务端下发随机口令和用户自身口令联合进行MD5-CHAP协议加密并送回至服务端,服务端收到认证报文后根据暂存的随机口令以及服务端用户自身的MD5口令对认证报文中的密文进行CHAP校验,校验结束后即清掉暂存的口令,以保证报文的唯一性。由于CHAP协议是单向加密,无法从密文中推导出明文密码,服务端随机生成的16位口令具有唯一性,即使伪冒用户发送的用户报文相同也无法再次通过认证,从而有效防止了用户密码被盗、流量重放伪冒用户等情况。
此认证平台允许第三方应用以插件的方式嵌入至该平台,为第三方应用系统(例如IPTV系统、VPN系统等)与计费系统的认证对接提供了方便、开放的接口。
3 计费系统应用部署与实施
整套计费系统于2012年1月1日在清华大学校园网部署应用,如图4所示。
图4 计费系统部署
计费网关分布式部署在出口网络上,认证/计费/入库/管理单元部署在核心资源子网,计费网关管理地址与该单元各模块处于同一子网,保证各模块之间的数据交换能够安全、可靠、高效地进行。根据硬件平台的内存大小,计费网关和计费/入库模块的HASH表空间设计为存储50万用户的用户内存表、50万的IP地址内存表,设计65 536个在线用户HASH表、65 536个在线IP表。用户管理系统负责将用户的新建、更新、删除记录写入数据库,计费系统每10秒钟同步一次用户数据,数据库出现故障时,基于内存的认证和计费也依然可以正常工作。计费/入库模块在内存中设计存储10万条用户联网明细,满足校园网12 h以上的用户联网明细在内存中存储。当数据库恢复时,计费/入库模块自动将数据库故障期间的用户联网明细写入数据库。以上设计降低了认证计费系统对数据库的耦合程度,摆脱了对数据库的过度依赖,也避免了因数据库故障导致用户联网明细丢失的情况。
系统部署采用了多体系模块化设计,各部分功能模块既可以分布式部署,又可以集中部署,具有完善的无缝结合功能,既可以将内存用户认证模块、计费模块、入库模块、用户自服务系统、用户管理系统融合在一台服务器上,也可以将这些模块分别部署在不同的服务器上。当前清华大学校园网采用全冗余的设计结构对计费系统进行部署:通过路由器虚拟化技术,各个计费模块服务器的双网卡以链路捆绑方式分别接入2台核心路由器,保证任何一台路由器故障或者服务器某块网卡故障时整套系统都可以正常工作,整个计费系统在物理链路上做到了全路径冗余;数据库采用了Oracle的事务一致性复制技术(DataGuard)做数据库主存储阵列和从存储阵列之间的数据同步,保证2台阵列之间的数据一致性。其中,主数据库和从数据库均为2台数据库节点服务器所构成的应用集群,应用集群采用虚拟化IP技术,同一个集群内任何一个节点故障,均不会影响应用系统的数据库服务,进一步保证了系统的高可靠性和高可用性。
4 研究结果与分析
目前校园网日均在线用户变化如图5所示,高峰时段计费网关和计费系统在线用户超过4.7万人,系统运行至今一直保持稳定、可靠,实时流量阶梯计费准确,清华大学校园网用户普遍反映网络变快了,流量使用更加合理了。
图5 日均在线用户变化
在计费网关上统计CPU中断的结果分别如图6所示。从图6中可以看出,CPU消耗很低,CPU中断已经在24个内核上做到了完全平衡,说明系统运行负载低,系统性能高效,系统运行稳定。对校园网万兆双栈链路出口流量数据进行统计发现,流量达到高峰期时,流量高峰为单向150万包/s,在某个突发时刻可以达到200万包/s。本文所研发的万兆计费网关完全可以负担当前的生产流量,并具备很强的抵御流量攻击的能力。
图6 万兆计费网关服务器CPU中断
5 结束语
本文分析传统计费网关在万兆高速网络中面临的转发性能不足,对单用户多IP同时在线不支持,以及无法实现实时流量阶梯计费问题,提出基于通用PC服务器平台万兆双栈计费网关转发的优化设计,改进计费网关和计费系统的算法模型。经校园网部署应用证明,可提供万兆双栈链路下用户网络流量实时阶梯计费和网关高速转发。本文系统提供了稳定可靠的基础运行平台并积累了全网用户的网络流量日志数据,可基于用户网络流量日志继续进行更加深入的研究及数据挖掘工作。
[1]Ye Mingjiang,Wu Jianping,Xu Ke,et al.Identify P2P Traffic byInspectingDataTransferBehaviorNetworking[J].Computer Communications,2010,33(10): 1141-1150.
[2]彭 隽,劳凤丹,邹仁明.万兆全冗余校园网出口升级改造方案[J].武汉大学学报:理学版,2012,58(S1): 120-124.
[3]赵玉亭,张 治,李立欣,等.安全RADIUS认证、授权、计费系统的构建[J].计算机工程,2006,32(6): 144-145,148.
[4]丰 艳.基于Radius协议的VOIP认证/计费系统的设计与实现[J].计算机工程与设计,2008,29(13): 3478-3481,3507.
[5]张广兴,邱 峰,谢高岗,等.一种高校的网络流记录表示方法[J].计算机研究与发展,2013,50(4):722-730.
[6]Park Ki-Woong,ParkSung-Kyu.THEMIS:Towards Mutually Verifiable Billing Transactions in the Cloud Computing Environment[C]//Proceedings of the 3rd InternationalConferenceonCloudComputing.Washington D.C.,USA:IEEE Press,2010:139-147.
[7]Buyya R,Arramson D.Economic Models for Resource Management and Scheduling in Grid Computing[J].Journal of Concurrency and Computation:Practice and Experience,2002,14(13-15):1507-1542.
[8]黄卫东,于瑞强.云计算环境下基于Petri网的流程计费模型[J].北京邮电大学学报,2013,36(1):31-35.
[9]Huggahalli R,Iyer R,Tetrick S.Direct Cache Access for High Bandwidth Network I/O[C]//Proceedings of the 32nd Annual International Symposium on Computer Architecture.Madison,USA:[s.n.],2005:50-59.
[10]吴 舜,苏 丹,吴 佳,等.基于Tilera平台的网络细粒度应用行为识别[J].电信科学,2013,29(11):94-98.
[11]Meng Jinli,Chen Xinming,Chen Zhen,et al.Towards High-performanceIPseconCaviumOCTEONPlatform[C]//Proceeding of the 2nd International Conference on Trusted Systems.Beijing,China:[s.n.],2011:37-46.
[12]Tilera Corporation.Many-core Network Processor[EB/OL].(2013-02-25).http://www.tilera.com/products/processors/ TILEPRO64.
[13]Chen Zhen,Ruan Linyun,Cao Junwei,et al.TIFAflow: Enhancing Traffic Archiving System with Flow Granularity for Forensic Analysis in Network Security[J].Tsinghua Science and Technology,2013,18(4):406-417.
编辑 顾逸斐
Research and Implementation of New Generation Ten Gigabit Dual-stack Authentication and Accounting System
MA Yunlong,ZHANG Qianli,JIANG Caiping,WANG Jilong
(Information Technology Center,Tsinghua University,Beijing 100084,China)
The traditional accounting systems cannot support 10 Gigabit wire speed and they do not support one accou nt multiple connections and real-time flow step accounting.A new ten Gigabit dual stack authentication and accounting system is designed and implemented,which improves the accounting algorithm model to realize real-time flow step accouting and optimizes the generic PC server’s architecture to improve the forwarding performance of ten Gigabit billing gateway.The campus network application shows that it can provide real-time charging in ten Gigabit dual stack link and fast forwarding service.
ten Gigabit;dual-stack;accounting system;real-time;flow step accounting;accounting gateway
马云龙,张千里,姜彩萍,等.新一代万兆双栈认证计费系统的研究与实现[J].计算机工程,2015, 41(3):306-311.
英文引用格式:Ma Yunlong,Zhang Qianli,Jiang Caiping,et al.Research and Implementation of New Generation Ten Gigabit Dual-stack Authentication and Accounting System[J].Computer Engineering,2015,41(3):306-311.
1000-3428(2015)03-0306-06
:A
:TP393
10.3969/j.issn.1000-3428.2015.03.058
马云龙(1972-),男,工程师、硕士,主研方向:Oracle数据库,邮件系统;张千里,副教授、博士;姜彩萍,高级工程师、硕士;王继龙,教授、博士。
2014-02-25
:2014-05-07E-mail:myl@tsinghua.edu.cn