馬云龍,張千里,姜彩萍,王繼龍
(清華大學(xué)信息化技術(shù)中心,北京100084)
新一代萬(wàn)兆雙棧認(rèn)證計(jì)費(fèi)系統(tǒng)的研究與實(shí)現(xiàn)
馬云龍,張千里,姜彩萍,王繼龍
(清華大學(xué)信息化技術(shù)中心,北京100084)
校園網(wǎng)的傳統(tǒng)計(jì)費(fèi)系統(tǒng)無(wú)法支持萬(wàn)兆線速,且局限于流量計(jì)費(fèi)或時(shí)長(zhǎng)計(jì)費(fèi),不能實(shí)現(xiàn)單一用戶多連接數(shù)的計(jì)費(fèi)和實(shí)時(shí)流量階梯計(jì)費(fèi)。為此,設(shè)計(jì)一種新的校園網(wǎng)萬(wàn)兆雙棧認(rèn)證計(jì)費(fèi)系統(tǒng)。通過(guò)改進(jìn)計(jì)費(fèi)算法模型實(shí)現(xiàn)實(shí)時(shí)流量階梯計(jì)費(fèi),使用優(yōu)化的通用PC服務(wù)器體系結(jié)構(gòu)提高萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)的轉(zhuǎn)發(fā)性能。經(jīng)校園網(wǎng)部署應(yīng)用證明,該計(jì)費(fèi)系統(tǒng)可提供萬(wàn)兆雙棧鏈路下用戶實(shí)時(shí)流量階梯計(jì)費(fèi)和網(wǎng)關(guān)高速轉(zhuǎn)發(fā)服務(wù),設(shè)計(jì)的系統(tǒng)已被清華大學(xué)校園網(wǎng)采用并取得了較好的使用效果。
萬(wàn)兆;雙棧;計(jì)費(fèi)系統(tǒng);實(shí)時(shí);流量階梯計(jì)費(fèi);計(jì)費(fèi)網(wǎng)關(guān)
隨著互聯(lián)網(wǎng)應(yīng)用的快速發(fā)展,網(wǎng)絡(luò)使用模式發(fā)生了巨大變化,網(wǎng)絡(luò)云盤、P2P及網(wǎng)絡(luò)視頻等新應(yīng)用占據(jù)大量網(wǎng)絡(luò)帶寬[1]。為提高用戶體驗(yàn),各單位出口帶寬不斷提高,從教育科研計(jì)算機(jī)網(wǎng)絡(luò)的接入單位來(lái)看,升級(jí)改造其主干網(wǎng)絡(luò)和出口鏈路至萬(wàn)兆[2]已經(jīng)成為主流。目前,雖然已有一些針對(duì)萬(wàn)兆鏈路流量采集或分析系統(tǒng)的研究,但是萬(wàn)兆鏈路下實(shí)現(xiàn)流量實(shí)時(shí)計(jì)費(fèi)仍然面臨諸多問(wèn)題:對(duì)于使用寬帶遠(yuǎn)程接入服務(wù)設(shè)備(Broadband Remote Access Server, BRAS)利用遠(yuǎn)程用戶撥號(hào)認(rèn)證子系統(tǒng)[3-4](Remote Authentication Dial in User Service,RADIUS)協(xié)議的記賬報(bào)文實(shí)現(xiàn)流量計(jì)費(fèi)的系統(tǒng),由于RADIUS實(shí)時(shí)計(jì)費(fèi)更新報(bào)文的發(fā)送間隔參數(shù)一般為分鐘計(jì),導(dǎo)致流量計(jì)費(fèi)的實(shí)時(shí)性比較低;對(duì)于采用Netflow流數(shù)據(jù)進(jìn)行計(jì)費(fèi)的系統(tǒng),存在數(shù)據(jù)組織效率低、傳輸開(kāi)銷過(guò)大等問(wèn)題[5],且路由器發(fā)送Netflow流取決于用戶網(wǎng)絡(luò)連接的中斷或者路由器的老化時(shí)間參數(shù)設(shè)置,容易出現(xiàn)流量計(jì)費(fèi)系統(tǒng)所接收到的Netflow流數(shù)據(jù)與用戶當(dāng)時(shí)產(chǎn)生的實(shí)時(shí)流量出現(xiàn)時(shí)間錯(cuò)位的情況;因此,這種計(jì)費(fèi)方式也不能很精確地實(shí)現(xiàn)實(shí)時(shí)計(jì)費(fèi)。本文主要研究如何利用萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)逐包歸并統(tǒng)計(jì)的方式實(shí)現(xiàn)萬(wàn)兆鏈路下的實(shí)時(shí)流量計(jì)費(fèi)。
計(jì)費(fèi)系統(tǒng)面臨著計(jì)費(fèi)的公平性、多樣性以及多協(xié)議支持的新需求[6-8]。首先,傳統(tǒng)的包月和區(qū)分國(guó)際、國(guó)內(nèi)流量的資費(fèi)政策無(wú)法保證用戶公平使用網(wǎng)絡(luò)帶寬,需要重新制定新的資費(fèi)策略以實(shí)現(xiàn)多占用網(wǎng)絡(luò)帶寬,多產(chǎn)生網(wǎng)絡(luò)流量則應(yīng)多付費(fèi)的公平原則。而傳統(tǒng)的包月計(jì)費(fèi)政策中多用網(wǎng)絡(luò)流量的用戶和少用網(wǎng)絡(luò)流量的用戶都采用相同的費(fèi)率(包月或包時(shí))進(jìn)行計(jì)費(fèi),客觀上影響了大多數(shù)用戶的網(wǎng)絡(luò)使用體驗(yàn),因此實(shí)施流量階梯計(jì)費(fèi)可很好地解決以上問(wèn)題。其次,用戶多樣化的校園網(wǎng)需要提供多種計(jì)費(fèi)策略,對(duì)于現(xiàn)階段用戶智能終端、便攜式電腦以及PC臺(tái)式機(jī)的同時(shí)連網(wǎng)需求,有必要允許同一用戶賬號(hào)多個(gè)IP地址同時(shí)使用,而目前國(guó)內(nèi)主流計(jì)費(fèi)系統(tǒng)尚無(wú)法支持單一用戶賬號(hào)多IP地址同時(shí)在線的階梯計(jì)費(fèi)策略。此外,清華大學(xué)校園網(wǎng)已開(kāi)通IPv4/IPv6雙棧主干和出口萬(wàn)兆網(wǎng)絡(luò),IPv6網(wǎng)絡(luò)的普及迫切需要能支持IPv6地址計(jì)費(fèi)的新系統(tǒng)。
為滿足以上需求,本文設(shè)計(jì)清華大學(xué)校園網(wǎng)新一代萬(wàn)兆雙棧認(rèn)證計(jì)費(fèi)系統(tǒng),采用通用PC服務(wù)器平臺(tái)架構(gòu)作為萬(wàn)兆出口網(wǎng)絡(luò)的計(jì)費(fèi)網(wǎng)關(guān),為提高萬(wàn)兆高速網(wǎng)絡(luò)中計(jì)費(fèi)網(wǎng)關(guān)的轉(zhuǎn)發(fā)性能,對(duì)通用PC服務(wù)器體系結(jié)構(gòu)進(jìn)行優(yōu)化設(shè)計(jì)并改進(jìn)萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)的轉(zhuǎn)發(fā)算法,通過(guò)改進(jìn)計(jì)費(fèi)系統(tǒng)算法模型實(shí)現(xiàn)實(shí)時(shí)流量階梯計(jì)費(fèi)。
本文設(shè)計(jì)的萬(wàn)兆雙棧認(rèn)證計(jì)費(fèi)系統(tǒng)由客戶端/ WebPortal認(rèn)證模塊、內(nèi)存用戶認(rèn)證模塊、計(jì)費(fèi)網(wǎng)關(guān)模塊、計(jì)費(fèi)/入庫(kù)模塊、用戶數(shù)據(jù)庫(kù)、用戶管理系統(tǒng)6個(gè)部分組成,如圖1所示。
圖1 計(jì)費(fèi)系統(tǒng)架構(gòu)
客戶端/WebPortal認(rèn)證模塊是用戶接入網(wǎng)絡(luò)的認(rèn)證平臺(tái),負(fù)責(zé)將用戶的認(rèn)證信息安全可信地遞交給內(nèi)存用戶認(rèn)證模塊,同時(shí)返回內(nèi)存用戶認(rèn)證模塊的認(rèn)證信息。
內(nèi)存用戶認(rèn)證模塊負(fù)責(zé)用戶調(diào)度,接收到客戶端/WebPortal認(rèn)證模塊的認(rèn)證請(qǐng)求后首先校驗(yàn)用戶在內(nèi)存中的狀態(tài),用戶認(rèn)證通過(guò)后即通知計(jì)費(fèi)網(wǎng)關(guān)放行該用戶的IP地址。
計(jì)費(fèi)網(wǎng)關(guān)部署在校園網(wǎng)出口鏈路上,作為校園網(wǎng)和互聯(lián)網(wǎng)的隔離,計(jì)費(fèi)網(wǎng)關(guān)首先需要能夠識(shí)別鏈路兩端的路由設(shè)備以及支持對(duì)IPv4,IPv6不同協(xié)議包分別處理,默認(rèn)情況下用戶IP地址在計(jì)費(fèi)網(wǎng)關(guān)為關(guān)閉狀態(tài),用戶無(wú)法上網(wǎng),只有通過(guò)內(nèi)存用戶認(rèn)證模塊的授權(quán)并下發(fā)策略給計(jì)費(fèi)網(wǎng)關(guān),計(jì)費(fèi)網(wǎng)關(guān)才會(huì)放行該用戶的IP地址并將該用戶的IP數(shù)據(jù)包逐包統(tǒng)計(jì),將包頭中的長(zhǎng)度字節(jié)累計(jì)并實(shí)時(shí)發(fā)給計(jì)費(fèi)/入庫(kù)模塊。
計(jì)費(fèi)/入庫(kù)模塊為整個(gè)計(jì)費(fèi)系統(tǒng)的結(jié)算模塊,負(fù)責(zé)實(shí)時(shí)結(jié)算計(jì)費(fèi)網(wǎng)關(guān)發(fā)送來(lái)的用戶累計(jì)流量,并與用戶的計(jì)費(fèi)策略進(jìn)行實(shí)時(shí)比對(duì),當(dāng)用戶余額不足時(shí)通知計(jì)費(fèi)網(wǎng)關(guān)關(guān)閉用戶的IP地址,并通過(guò)內(nèi)存用戶認(rèn)證模塊返回客戶端/WebPortal認(rèn)證模塊相應(yīng)提示信息。
當(dāng)用戶結(jié)束聯(lián)網(wǎng)后通過(guò)客戶端/WebPortal認(rèn)證模塊向內(nèi)存用戶認(rèn)證模塊發(fā)起斷開(kāi)網(wǎng)絡(luò)請(qǐng)求,內(nèi)存用戶認(rèn)證模塊將下線指令送到計(jì)費(fèi)網(wǎng)關(guān),計(jì)費(fèi)網(wǎng)關(guān)將該用戶下線的同時(shí)將用戶最后一條流量信息送給計(jì)費(fèi)/入庫(kù)模塊,此時(shí)計(jì)費(fèi)/入庫(kù)模塊會(huì)根據(jù)該用戶的資費(fèi)策略對(duì)本次聯(lián)網(wǎng)期間用戶產(chǎn)生的時(shí)長(zhǎng)、流量進(jìn)行結(jié)算,并將這一聯(lián)網(wǎng)明細(xì)寫(xiě)入用戶數(shù)據(jù)庫(kù)。
用戶管理系統(tǒng)提供用戶管理、充值和查詢等功能。
2.1 萬(wàn)兆雙棧計(jì)費(fèi)網(wǎng)關(guān)
計(jì)費(fèi)網(wǎng)關(guān)是計(jì)費(fèi)系統(tǒng)最核心的組成部分,計(jì)費(fèi)網(wǎng)關(guān)對(duì)網(wǎng)絡(luò)數(shù)據(jù)包的轉(zhuǎn)發(fā)效率決定了萬(wàn)兆鏈路計(jì)費(fèi)的能力,計(jì)費(fèi)網(wǎng)關(guān)對(duì)IPv4和IPv6協(xié)議包的識(shí)別能力決定其能否雙棧計(jì)費(fèi)。此外,計(jì)費(fèi)網(wǎng)關(guān)對(duì)在線用戶的計(jì)費(fèi)粒度是實(shí)現(xiàn)實(shí)時(shí)計(jì)費(fèi)的關(guān)鍵因素。
一個(gè)合格的萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)必須具備高性能轉(zhuǎn)發(fā)、支持分布式部署、運(yùn)行可靠和維護(hù)簡(jiǎn)單等特點(diǎn)。其中,計(jì)費(fèi)網(wǎng)關(guān)最主要的工作在于對(duì)每個(gè)通過(guò)的數(shù)據(jù)包進(jìn)行逐包統(tǒng)計(jì)流量和實(shí)時(shí)計(jì)費(fèi)歸并。因此,高效的IP地址插入和查找算法十分重要。本文設(shè)計(jì)計(jì)費(fèi)網(wǎng)關(guān)的內(nèi)存在線IP表的HASH查找算法來(lái)實(shí)現(xiàn)高效快速的在線IP地址插入和查找,取IPv4地址的低8位(IPv6地址的后4位)構(gòu)造HASH值,HASH的算法函數(shù)如下所示:
其中,2 654 435 769為斐波那契(Fibonacci)散列法對(duì)應(yīng)32位的大素?cái)?shù)。為了防止HASH值的碰撞問(wèn)題, HASH值存放設(shè)計(jì)成256叉樹(shù)鏈表,由此設(shè)計(jì)計(jì)費(fèi)網(wǎng)關(guān)同時(shí)在線IP為65 536個(gè)。計(jì)費(fèi)網(wǎng)關(guān)與計(jì)費(fèi)系統(tǒng)之間通信采用UDP協(xié)議,UDP數(shù)據(jù)包理論最大長(zhǎng)度為65 535 Byte,因IPv4數(shù)據(jù)包包含8 Byte的數(shù)據(jù)包頭和20 Byte的IP包頭,IPv6數(shù)據(jù)包包含40 Byte的數(shù)據(jù)包頭,所以UDP協(xié)議數(shù)據(jù)包可傳輸?shù)臄?shù)據(jù)長(zhǎng)度不少于
65 495 Byte,本文設(shè)計(jì)每個(gè)UDP包發(fā)送256個(gè)IP,使用批量打包傳送的方式來(lái)傳遞網(wǎng)關(guān)逐包統(tǒng)計(jì)和歸并后的流量信息,一次只需批量發(fā)送256個(gè)包即可將65 536個(gè)在線IP的流量信息發(fā)送給計(jì)費(fèi)/入庫(kù)模塊進(jìn)行計(jì)費(fèi)結(jié)算,在同一子網(wǎng)中發(fā)送UDP包的時(shí)間間隔約為80 ms,256×80=20.48 s,考慮網(wǎng)絡(luò)延遲,本文設(shè)計(jì)計(jì)費(fèi)網(wǎng)關(guān)30 s完成一次流量信息傳送,即30 s可完成65 536個(gè)同時(shí)在線IP的一次流量結(jié)算。批量打包的方式極大減少了計(jì)費(fèi)網(wǎng)關(guān)和計(jì)費(fèi)系統(tǒng)間的通信數(shù)據(jù)量,提高了同步效率,如需擴(kuò)展同時(shí)在線IP表只需擴(kuò)大鏈表和每次發(fā)送的IP數(shù)目即可,例如設(shè)計(jì)512叉樹(shù)鏈表,每個(gè)UDP包發(fā)送512個(gè)IP地址,同時(shí)在線用戶即可達(dá)到131 072個(gè)。
對(duì)于萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)的實(shí)施,目前主流萬(wàn)兆網(wǎng)關(guān)主要有2種,一種是基于專有硬件平臺(tái)的萬(wàn)兆網(wǎng)關(guān),例如Tilera或OCTEON[9-12]硬件平臺(tái),一種是基于通用PC服務(wù)器平臺(tái)研發(fā)的萬(wàn)兆網(wǎng)關(guān)。專有硬件平臺(tái)萬(wàn)兆網(wǎng)關(guān)轉(zhuǎn)發(fā)效率高,但也存在一些問(wèn)題[13],首先,代碼開(kāi)發(fā)技術(shù)難度較高,需要進(jìn)行基于硬件平臺(tái)的底層開(kāi)發(fā);其次,專有硬件平臺(tái)價(jià)格較高,且通常采用專用的操作系統(tǒng),運(yùn)行維護(hù)和迭代開(kāi)發(fā)難度較大;再次,專有硬件平臺(tái)對(duì)運(yùn)行環(huán)境要求較高,易出現(xiàn)散熱不好導(dǎo)致硬件故障的問(wèn)題。而改進(jìn)通用PC服務(wù)器平臺(tái)的內(nèi)核轉(zhuǎn)發(fā)模塊算法達(dá)到預(yù)期的萬(wàn)兆轉(zhuǎn)發(fā)性能的體系結(jié)構(gòu)開(kāi)發(fā)難度相對(duì)較小,硬件平臺(tái)成本低廉,易于維護(hù),具有穩(wěn)定、可靠、通用性好的優(yōu)點(diǎn)。
本文萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)的研發(fā)基于通用PC服務(wù)器架構(gòu)和萬(wàn)兆光纖網(wǎng)卡進(jìn)行,考慮到此種架構(gòu)的計(jì)費(fèi)網(wǎng)關(guān)轉(zhuǎn)發(fā)瓶頸主要在于CPU的消耗,經(jīng)過(guò)長(zhǎng)時(shí)間開(kāi)發(fā)、測(cè)試,內(nèi)核轉(zhuǎn)發(fā)時(shí)CPU采用改進(jìn)的直接緩存訪問(wèn)(Direct Cache Access,DCA)指令集處理中斷,從而使計(jì)費(fèi)網(wǎng)關(guān)轉(zhuǎn)發(fā)的數(shù)據(jù)包盡可能以最近最快的途徑進(jìn)入CPU的高速緩存并被萬(wàn)兆網(wǎng)卡優(yōu)先訪問(wèn),既可充分利用高速緩存中的數(shù)據(jù),又可利用高速緩存低延遲的特性,避免CPU頻繁訪問(wèn)內(nèi)存,從而降低系統(tǒng)開(kāi)銷。此外,開(kāi)啟CPU多核和超線程并行處理模式,另外開(kāi)啟了萬(wàn)兆光纖網(wǎng)卡多隊(duì)列模式,以實(shí)現(xiàn)每一個(gè)網(wǎng)卡隊(duì)列都有一個(gè)CPU核心負(fù)責(zé)處理數(shù)據(jù)包轉(zhuǎn)發(fā)業(yè)務(wù),建立并行處理隊(duì)列,從而提升CPU的處理效率,減少CPU的整體性能消耗,達(dá)到提高數(shù)據(jù)包轉(zhuǎn)發(fā)能力的目的。
本文計(jì)費(fèi)網(wǎng)關(guān)采用一臺(tái)通用PC服務(wù)器,其CPU采用2顆6核主頻為2.93 GHz的INTEL至強(qiáng)處理器,網(wǎng)卡采用INTEL?82 599萬(wàn)兆以太網(wǎng)控制器,操作系統(tǒng)采用Linux Redhat AS6.0,測(cè)試儀采用IXAX400T 2塊萬(wàn)兆板卡,開(kāi)啟CPU全部24個(gè)處理器核心做多線程并行處理,開(kāi)啟萬(wàn)兆光纖網(wǎng)卡16個(gè)隊(duì)列進(jìn)行萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)轉(zhuǎn)發(fā)測(cè)試,測(cè)試結(jié)果如圖2所示。
圖2 萬(wàn)兆雙棧計(jì)費(fèi)網(wǎng)關(guān)轉(zhuǎn)發(fā)性能測(cè)試
圖2表明,本文研究實(shí)現(xiàn)的萬(wàn)兆雙棧計(jì)費(fèi)網(wǎng)關(guān)可對(duì)64 Byte小包達(dá)到單向650萬(wàn)包/s的轉(zhuǎn)發(fā)速率, 256 Byte及以上的數(shù)據(jù)包實(shí)現(xiàn)線速轉(zhuǎn)發(fā),2010年8月的INTEL實(shí)驗(yàn)室內(nèi)部測(cè)試數(shù)據(jù)表明,對(duì)于相同硬件平臺(tái),CPU主頻為3.33 GHz的服務(wù)器,64 Byte數(shù)據(jù)包轉(zhuǎn)發(fā)為單向900萬(wàn)包/s,本文研究的計(jì)費(fèi)網(wǎng)關(guān)基本接近INTEL實(shí)驗(yàn)室內(nèi)部測(cè)試的轉(zhuǎn)發(fā)數(shù)據(jù)。在萬(wàn)兆網(wǎng)關(guān)上線時(shí)采用了主頻為3.33 GHz的CPU,經(jīng)再次測(cè)試, 64 Byte數(shù)據(jù)包轉(zhuǎn)發(fā)效率得到進(jìn)一步提升,單向轉(zhuǎn)發(fā)達(dá)到720萬(wàn)包/s的轉(zhuǎn)發(fā)速率,由此表明之前測(cè)試轉(zhuǎn)發(fā)效率低于INTEL實(shí)驗(yàn)室內(nèi)部測(cè)試結(jié)果的主要原因是本文采用的CPU主頻低于INTEL實(shí)驗(yàn)室內(nèi)部測(cè)試所采用的CPU主頻所致。
2.2 實(shí)時(shí)流量階梯計(jì)費(fèi)
實(shí)現(xiàn)實(shí)時(shí)流量階梯計(jì)費(fèi)需要考慮同時(shí)兼容其他資費(fèi)政策,如何平滑切換計(jì)費(fèi)階梯也是一個(gè)難點(diǎn)問(wèn)題。階梯切換時(shí)需要保證用戶聯(lián)網(wǎng)狀態(tài)不變,而且用戶聯(lián)網(wǎng)明細(xì)需要做賬單分割,即用戶明細(xì)需要呈現(xiàn)階梯前后的流量明細(xì)、流量公式等。對(duì)于同一用戶多個(gè)IP地址同時(shí)在線的情況,需要考慮流量統(tǒng)一歸并實(shí)時(shí)結(jié)算的問(wèn)題。
本文設(shè)計(jì)的計(jì)費(fèi)/入庫(kù)模塊也采用內(nèi)存在線IP表的HASH算法實(shí)現(xiàn)高效快速的在線IP插入和查找,同時(shí)在內(nèi)存中分配了在線用戶HASH表,數(shù)據(jù)結(jié)構(gòu)與計(jì)費(fèi)網(wǎng)關(guān)內(nèi)存在線IP表相同,設(shè)計(jì)容量也為65 536個(gè)。當(dāng)用戶使用客戶端/WebPortal認(rèn)證模塊發(fā)起認(rèn)證請(qǐng)求并獲得通過(guò)時(shí),內(nèi)存用戶認(rèn)證模塊通知計(jì)費(fèi)模塊將該用戶寫(xiě)入內(nèi)存在線用戶HASH表,同時(shí)將該用戶的IP寫(xiě)入內(nèi)存在線IP HASH表。計(jì)費(fèi)/入庫(kù)模塊每隔30 s收到計(jì)費(fèi)網(wǎng)關(guān)發(fā)送的所有在線IP流量信息,根據(jù)IP與用戶賬號(hào)的對(duì)應(yīng)關(guān)系以及該用戶的當(dāng)前資費(fèi)策略進(jìn)行流量結(jié)算。結(jié)算流程如圖3所示。計(jì)費(fèi)/入庫(kù)模塊收到內(nèi)存用戶認(rèn)證模塊的用戶上線通知時(shí),標(biāo)記用戶是否為階梯計(jì)費(fèi)用戶、用戶當(dāng)前的階梯資費(fèi)組、用戶當(dāng)前階梯資費(fèi)組的最大可用流量等信息。計(jì)費(fèi)/入庫(kù)模塊收到計(jì)費(fèi)網(wǎng)關(guān)的同一用戶多個(gè)在線IP的累計(jì)流量時(shí)與當(dāng)前階梯計(jì)費(fèi)組最大可用流量進(jìn)行比較,當(dāng)?shù)竭_(dá)階梯最大可用流量時(shí)執(zhí)行計(jì)費(fèi)組切換動(dòng)作,將用戶計(jì)費(fèi)組切換成下一個(gè)階梯計(jì)費(fèi)組,同時(shí)按照用戶組的資費(fèi)標(biāo)準(zhǔn)將流量折算成金額并在用戶賬戶中扣除,如用戶余額不足則將其強(qiáng)制下線。
圖3 用戶階梯計(jì)費(fèi)結(jié)算流程
切換過(guò)程同時(shí)生成用戶賬單分割明細(xì),標(biāo)識(shí)用戶在切換階梯前后在線IP所產(chǎn)生的流量明細(xì)。計(jì)費(fèi)系統(tǒng)在月末統(tǒng)一執(zhí)行用戶計(jì)費(fèi)組復(fù)位操作,同時(shí)將用戶累積流量清零。通過(guò)以上功能的開(kāi)發(fā)解決了同一用戶多個(gè)IP地址在線按照流量實(shí)時(shí)階梯計(jì)費(fèi)的問(wèn)題。
2.3 客戶端/WebPortal認(rèn)證模塊
客戶端/WebPortal認(rèn)證模塊作為用戶接入互聯(lián)網(wǎng)的首跳入口具有極其重要的意義:為了防止出現(xiàn)密碼盜用,流量重放偽冒用戶等情況并提高用戶體驗(yàn),有必要設(shè)計(jì)一套安全、可信的認(rèn)證平臺(tái);為了與多種互聯(lián)網(wǎng)應(yīng)用對(duì)接,滿足當(dāng)前用戶的多種應(yīng)用一次認(rèn)證的需求,有必要設(shè)計(jì)一套標(biāo)準(zhǔn)、開(kāi)放的認(rèn)證平臺(tái)。
本文所研究的客戶端認(rèn)證平臺(tái)基于標(biāo)準(zhǔn)的MD5-CHAP協(xié)議。首先,用戶發(fā)起認(rèn)證時(shí)客戶端向內(nèi)存用戶認(rèn)證模塊(服務(wù)端)發(fā)起認(rèn)證請(qǐng)求,內(nèi)存用戶認(rèn)證模塊驗(yàn)證用戶身份后下發(fā)16位的隨機(jī)口令,并在服務(wù)端暫存該口令;用戶得到口令后對(duì)服務(wù)端下發(fā)隨機(jī)口令和用戶自身口令聯(lián)合進(jìn)行MD5-CHAP協(xié)議加密并送回至服務(wù)端,服務(wù)端收到認(rèn)證報(bào)文后根據(jù)暫存的隨機(jī)口令以及服務(wù)端用戶自身的MD5口令對(duì)認(rèn)證報(bào)文中的密文進(jìn)行CHAP校驗(yàn),校驗(yàn)結(jié)束后即清掉暫存的口令,以保證報(bào)文的唯一性。由于CHAP協(xié)議是單向加密,無(wú)法從密文中推導(dǎo)出明文密碼,服務(wù)端隨機(jī)生成的16位口令具有唯一性,即使偽冒用戶發(fā)送的用戶報(bào)文相同也無(wú)法再次通過(guò)認(rèn)證,從而有效防止了用戶密碼被盜、流量重放偽冒用戶等情況。
此認(rèn)證平臺(tái)允許第三方應(yīng)用以插件的方式嵌入至該平臺(tái),為第三方應(yīng)用系統(tǒng)(例如IPTV系統(tǒng)、VPN系統(tǒng)等)與計(jì)費(fèi)系統(tǒng)的認(rèn)證對(duì)接提供了方便、開(kāi)放的接口。
整套計(jì)費(fèi)系統(tǒng)于2012年1月1日在清華大學(xué)校園網(wǎng)部署應(yīng)用,如圖4所示。
圖4 計(jì)費(fèi)系統(tǒng)部署
計(jì)費(fèi)網(wǎng)關(guān)分布式部署在出口網(wǎng)絡(luò)上,認(rèn)證/計(jì)費(fèi)/入庫(kù)/管理單元部署在核心資源子網(wǎng),計(jì)費(fèi)網(wǎng)關(guān)管理地址與該單元各模塊處于同一子網(wǎng),保證各模塊之間的數(shù)據(jù)交換能夠安全、可靠、高效地進(jìn)行。根據(jù)硬件平臺(tái)的內(nèi)存大小,計(jì)費(fèi)網(wǎng)關(guān)和計(jì)費(fèi)/入庫(kù)模塊的HASH表空間設(shè)計(jì)為存儲(chǔ)50萬(wàn)用戶的用戶內(nèi)存表、50萬(wàn)的IP地址內(nèi)存表,設(shè)計(jì)65 536個(gè)在線用戶HASH表、65 536個(gè)在線IP表。用戶管理系統(tǒng)負(fù)責(zé)將用戶的新建、更新、刪除記錄寫(xiě)入數(shù)據(jù)庫(kù),計(jì)費(fèi)系統(tǒng)每10秒鐘同步一次用戶數(shù)據(jù),數(shù)據(jù)庫(kù)出現(xiàn)故障時(shí),基于內(nèi)存的認(rèn)證和計(jì)費(fèi)也依然可以正常工作。計(jì)費(fèi)/入庫(kù)模塊在內(nèi)存中設(shè)計(jì)存儲(chǔ)10萬(wàn)條用戶聯(lián)網(wǎng)明細(xì),滿足校園網(wǎng)12 h以上的用戶聯(lián)網(wǎng)明細(xì)在內(nèi)存中存儲(chǔ)。當(dāng)數(shù)據(jù)庫(kù)恢復(fù)時(shí),計(jì)費(fèi)/入庫(kù)模塊自動(dòng)將數(shù)據(jù)庫(kù)故障期間的用戶聯(lián)網(wǎng)明細(xì)寫(xiě)入數(shù)據(jù)庫(kù)。以上設(shè)計(jì)降低了認(rèn)證計(jì)費(fèi)系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的耦合程度,擺脫了對(duì)數(shù)據(jù)庫(kù)的過(guò)度依賴,也避免了因數(shù)據(jù)庫(kù)故障導(dǎo)致用戶聯(lián)網(wǎng)明細(xì)丟失的情況。
系統(tǒng)部署采用了多體系模塊化設(shè)計(jì),各部分功能模塊既可以分布式部署,又可以集中部署,具有完善的無(wú)縫結(jié)合功能,既可以將內(nèi)存用戶認(rèn)證模塊、計(jì)費(fèi)模塊、入庫(kù)模塊、用戶自服務(wù)系統(tǒng)、用戶管理系統(tǒng)融合在一臺(tái)服務(wù)器上,也可以將這些模塊分別部署在不同的服務(wù)器上。當(dāng)前清華大學(xué)校園網(wǎng)采用全冗余的設(shè)計(jì)結(jié)構(gòu)對(duì)計(jì)費(fèi)系統(tǒng)進(jìn)行部署:通過(guò)路由器虛擬化技術(shù),各個(gè)計(jì)費(fèi)模塊服務(wù)器的雙網(wǎng)卡以鏈路捆綁方式分別接入2臺(tái)核心路由器,保證任何一臺(tái)路由器故障或者服務(wù)器某塊網(wǎng)卡故障時(shí)整套系統(tǒng)都可以正常工作,整個(gè)計(jì)費(fèi)系統(tǒng)在物理鏈路上做到了全路徑冗余;數(shù)據(jù)庫(kù)采用了Oracle的事務(wù)一致性復(fù)制技術(shù)(DataGuard)做數(shù)據(jù)庫(kù)主存儲(chǔ)陣列和從存儲(chǔ)陣列之間的數(shù)據(jù)同步,保證2臺(tái)陣列之間的數(shù)據(jù)一致性。其中,主數(shù)據(jù)庫(kù)和從數(shù)據(jù)庫(kù)均為2臺(tái)數(shù)據(jù)庫(kù)節(jié)點(diǎn)服務(wù)器所構(gòu)成的應(yīng)用集群,應(yīng)用集群采用虛擬化IP技術(shù),同一個(gè)集群內(nèi)任何一個(gè)節(jié)點(diǎn)故障,均不會(huì)影響應(yīng)用系統(tǒng)的數(shù)據(jù)庫(kù)服務(wù),進(jìn)一步保證了系統(tǒng)的高可靠性和高可用性。
目前校園網(wǎng)日均在線用戶變化如圖5所示,高峰時(shí)段計(jì)費(fèi)網(wǎng)關(guān)和計(jì)費(fèi)系統(tǒng)在線用戶超過(guò)4.7萬(wàn)人,系統(tǒng)運(yùn)行至今一直保持穩(wěn)定、可靠,實(shí)時(shí)流量階梯計(jì)費(fèi)準(zhǔn)確,清華大學(xué)校園網(wǎng)用戶普遍反映網(wǎng)絡(luò)變快了,流量使用更加合理了。
圖5 日均在線用戶變化
在計(jì)費(fèi)網(wǎng)關(guān)上統(tǒng)計(jì)CPU中斷的結(jié)果分別如圖6所示。從圖6中可以看出,CPU消耗很低,CPU中斷已經(jīng)在24個(gè)內(nèi)核上做到了完全平衡,說(shuō)明系統(tǒng)運(yùn)行負(fù)載低,系統(tǒng)性能高效,系統(tǒng)運(yùn)行穩(wěn)定。對(duì)校園網(wǎng)萬(wàn)兆雙棧鏈路出口流量數(shù)據(jù)進(jìn)行統(tǒng)計(jì)發(fā)現(xiàn),流量達(dá)到高峰期時(shí),流量高峰為單向150萬(wàn)包/s,在某個(gè)突發(fā)時(shí)刻可以達(dá)到200萬(wàn)包/s。本文所研發(fā)的萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)完全可以負(fù)擔(dān)當(dāng)前的生產(chǎn)流量,并具備很強(qiáng)的抵御流量攻擊的能力。
圖6 萬(wàn)兆計(jì)費(fèi)網(wǎng)關(guān)服務(wù)器CPU中斷
本文分析傳統(tǒng)計(jì)費(fèi)網(wǎng)關(guān)在萬(wàn)兆高速網(wǎng)絡(luò)中面臨的轉(zhuǎn)發(fā)性能不足,對(duì)單用戶多IP同時(shí)在線不支持,以及無(wú)法實(shí)現(xiàn)實(shí)時(shí)流量階梯計(jì)費(fèi)問(wèn)題,提出基于通用PC服務(wù)器平臺(tái)萬(wàn)兆雙棧計(jì)費(fèi)網(wǎng)關(guān)轉(zhuǎn)發(fā)的優(yōu)化設(shè)計(jì),改進(jìn)計(jì)費(fèi)網(wǎng)關(guān)和計(jì)費(fèi)系統(tǒng)的算法模型。經(jīng)校園網(wǎng)部署應(yīng)用證明,可提供萬(wàn)兆雙棧鏈路下用戶網(wǎng)絡(luò)流量實(shí)時(shí)階梯計(jì)費(fèi)和網(wǎng)關(guān)高速轉(zhuǎn)發(fā)。本文系統(tǒng)提供了穩(wěn)定可靠的基礎(chǔ)運(yùn)行平臺(tái)并積累了全網(wǎng)用戶的網(wǎng)絡(luò)流量日志數(shù)據(jù),可基于用戶網(wǎng)絡(luò)流量日志繼續(xù)進(jìn)行更加深入的研究及數(shù)據(jù)挖掘工作。
[1]Ye Mingjiang,Wu Jianping,Xu Ke,et al.Identify P2P Traffic byInspectingDataTransferBehaviorNetworking[J].Computer Communications,2010,33(10): 1141-1150.
[2]彭 雋,勞鳳丹,鄒仁明.萬(wàn)兆全冗余校園網(wǎng)出口升級(jí)改造方案[J].武漢大學(xué)學(xué)報(bào):理學(xué)版,2012,58(S1): 120-124.
[3]趙玉亭,張 治,李立欣,等.安全RADIUS認(rèn)證、授權(quán)、計(jì)費(fèi)系統(tǒng)的構(gòu)建[J].計(jì)算機(jī)工程,2006,32(6): 144-145,148.
[4]豐 艷.基于Radius協(xié)議的VOIP認(rèn)證/計(jì)費(fèi)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(13): 3478-3481,3507.
[5]張廣興,邱 峰,謝高崗,等.一種高校的網(wǎng)絡(luò)流記錄表示方法[J].計(jì)算機(jī)研究與發(fā)展,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]黃衛(wèi)東,于瑞強(qiáng).云計(jì)算環(huán)境下基于Petri網(wǎng)的流程計(jì)費(fèi)模型[J].北京郵電大學(xué)學(xué)報(bào),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平臺(tái)的網(wǎng)絡(luò)細(xì)粒度應(yīng)用行為識(shí)別[J].電信科學(xué),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
馬云龍,張千里,姜彩萍,等.新一代萬(wàn)兆雙棧認(rèn)證計(jì)費(fèi)系統(tǒng)的研究與實(shí)現(xiàn)[J].計(jì)算機(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數(shù)據(jù)庫(kù),郵件系統(tǒng);張千里,副教授、博士;姜彩萍,高級(jí)工程師、碩士;王繼龍,教授、博士。
2014-02-25
:2014-05-07E-mail:myl@tsinghua.edu.cn