陳楨 范華峰
1 常州機電職業(yè)技術(shù)學院信息工程系 江蘇 213164
2 常州機電職業(yè)技術(shù)學院現(xiàn)代教育技術(shù)中心 江蘇 213164
計費網(wǎng)關(guān)系統(tǒng)目前市場上也有類似產(chǎn)品,但價格一般都很高。而且購買的系統(tǒng)與學校現(xiàn)有的基礎(chǔ)數(shù)據(jù)平臺銜接比較困難,也不能完全滿足學院的使用需求。所以開發(fā)一套符合自身要求的計費網(wǎng)關(guān)系統(tǒng)部署在校園網(wǎng)絡(luò)的出口處。計費網(wǎng)關(guān)的部署模式見圖1。
圖1 校園網(wǎng)絡(luò)拓撲圖
計費系統(tǒng)作為網(wǎng)絡(luò)運轉(zhuǎn)不可或缺的組成部分,在網(wǎng)絡(luò)管理中占據(jù)著極其重要的地位。因此在進行方案設(shè)計時制定的總原則是:以方便校園網(wǎng)管理為總的設(shè)計目標,根據(jù)校園網(wǎng)的特點設(shè)計出一套具有一定先進性、實用性的校園網(wǎng)計費系統(tǒng)。由于通過校園網(wǎng)訪問 Internet的速率一般比較高、流量比較大,因此在設(shè)計計費系統(tǒng)時要考慮計費準確等實際問題。計費系統(tǒng)采用按用戶進行認證管理,以用戶使用的流量來計費,對于公共機房、宿舍區(qū)還兼顧按時間進行計費。用戶通過一卡通自助服務(wù)平臺繳納上網(wǎng)費。
本文研究的計費網(wǎng)關(guān)系統(tǒng)由四大模塊組成:計費網(wǎng)關(guān)基本系統(tǒng)模塊、用戶登錄身份驗證與數(shù)據(jù)采集模塊、計費管理模塊和自助式繳費模塊。設(shè)計思路是:按照用戶上網(wǎng)的流程,依次找出關(guān)鍵點,劃分出各模塊的應(yīng)用范圍,進而制定出各模塊的功能。
(1)計費網(wǎng)關(guān)基本系統(tǒng)模塊功能:選擇Linux構(gòu)造嵌入式系統(tǒng),以Debian Linux為基礎(chǔ),通過裁剪來構(gòu)造一個優(yōu)化過的專用計算機系統(tǒng),使其滿足對系統(tǒng)功能、可靠性、實時性、資源占用等的要求。
(2)用戶登錄身份驗證與數(shù)據(jù)采集模塊功能:該模塊的功能主要是強制用戶在使用 Internet時一定要先登錄認證網(wǎng)關(guān)服務(wù)端,然后才能訪問外網(wǎng)。這是一項訪問外網(wǎng)時必須經(jīng)過的處理功能,所有用戶不可能繞過這項功能模塊。當用戶沒有登錄時,認證網(wǎng)關(guān)會提示用戶客戶端登錄。當用戶順利登錄后,服務(wù)端系統(tǒng)將用戶名、IP地址進行綁定,生成可以允許該IP訪問外網(wǎng)的策略、實時采集用戶IP的流量,并記錄在在線用戶列表中,接著會產(chǎn)生一個全局惟一的令牌。該令牌實現(xiàn)了用戶名、IP地址、流量信息、時長信息等屬性的綁定,且能準確定位該用戶在在線用戶列表中的位置,使網(wǎng)關(guān)服務(wù)端能方便地與令牌域信息交互同步,為系統(tǒng)的流量分析、負載分析提供重要的數(shù)據(jù)。
(3)計費管理模塊的功能:此模塊的功能比較多,包括:
(4)自助式繳費模塊功能:注冊后的用戶可以通過校園一卡通自助服務(wù)平臺進行繳費,自助系統(tǒng)通過網(wǎng)絡(luò)將用戶的繳費信息送入計費系統(tǒng)數(shù)據(jù)庫實現(xiàn)用戶的充值。
網(wǎng)關(guān)基本系統(tǒng)模塊是網(wǎng)絡(luò)計費系統(tǒng)中最重要的部分,它是一切其它模塊的根本。本系統(tǒng)所設(shè)計的計費網(wǎng)關(guān)采用Debian Linux操作系統(tǒng)為基礎(chǔ),并進行裁剪、修改與優(yōu)化使系統(tǒng)滿足NAPI高性能包處理,通過Iptables實現(xiàn)規(guī)則處理與流量采集,用策略路由實現(xiàn)多線路出口負載均衡,TC高效散列表實現(xiàn)網(wǎng)絡(luò)帶寬精確控制,嵌入式系統(tǒng)為網(wǎng)關(guān)服務(wù)端提供方便的命令行接口。
登錄模塊是網(wǎng)絡(luò)計費系統(tǒng)中至關(guān)重要的部分,它關(guān)系到用戶身份的驗證,流量信息與用戶綁定等重要環(huán)節(jié),是正確計費的基礎(chǔ)和起始點。此模塊的實現(xiàn)與計費系統(tǒng)拓撲結(jié)構(gòu)密切相關(guān),在此模塊的實現(xiàn)包括了以下特點:第一強制登錄,即用戶未登錄而訪問外網(wǎng)時將自動重定向到登錄頁面;第二采用Radius服務(wù)進行身份驗證和記賬。
計費管理模塊是 B/S的操作模式,使用 Java語言基于MVC構(gòu)架模式進行開發(fā)的。主要有:用戶管理模塊,實現(xiàn)對計費系統(tǒng)賬號的管理??蛻舨樵兡K,提供給校園網(wǎng)用戶查詢的功能可查詢相關(guān)數(shù)據(jù)。其中包括當前費用余額、每次登錄時間和結(jié)束時間、流量及消費金額;打印模塊給管理員提供了打印功能。其中包括,每個用戶每月使用狀況清單、所有用戶使用流量統(tǒng)計清單、所有用戶上網(wǎng)時間分布清單等;系統(tǒng)設(shè)定模塊給系統(tǒng)管理員提供了費率、充值優(yōu)惠及優(yōu)惠時段等內(nèi)容的設(shè)置。
本模塊功能主要是通過一卡通系統(tǒng)的信息交換平臺,實現(xiàn)卡檔案信息的自動、增量共享,并由校園卡進行相應(yīng)賬戶的充值。主要流程如下:
(1)一卡通為網(wǎng)絡(luò)計費系統(tǒng)提供卡檔案信息,同時檔案信息的增加、修改和刪除操作也將由一卡通實時通知網(wǎng)絡(luò)計費系統(tǒng),網(wǎng)絡(luò)計費系統(tǒng)根據(jù)檔案的操作可以決定用戶信息的變更以及新用戶的注冊。
(2)上網(wǎng)賬戶的充值功能在一卡通的自助觸摸屏上進行,充值后的數(shù)據(jù)由一卡通的信息交換系統(tǒng)交換到網(wǎng)絡(luò)計費系統(tǒng)中。同時在一卡通系統(tǒng)里生成一筆充值流水由一卡通統(tǒng)一進行清算。
(3)一卡通用戶與網(wǎng)絡(luò)計費用戶之間的對應(yīng)關(guān)系,根據(jù)以往的掛接方式一般是以學號或教工號為依準的,此種對應(yīng)關(guān)系需要網(wǎng)絡(luò)計費系統(tǒng)必須保證一個學號只能對應(yīng)一個人員賬號。
認證服務(wù)端采用 LINUX平臺 gcc4為開發(fā)工具,使用NPTL 2.3.6線程庫。
客戶端向計費網(wǎng)關(guān)發(fā)出上網(wǎng)請求,計費網(wǎng)關(guān)開始認證,計費網(wǎng)關(guān)需要與Radius認證服務(wù)器交互用戶名和密碼信息,對用戶賬號進行認證,認證后Radius服務(wù)器向計費網(wǎng)關(guān)反饋認證結(jié)果和屬性;認證成功后,用戶可以上網(wǎng),同時計費網(wǎng)關(guān)把上網(wǎng)時間,流量遞交給Radius服務(wù)器,開始給用戶計費;當用戶需要下網(wǎng)時,用戶在客戶端軟件界面中點擊離線,向計費網(wǎng)關(guān)發(fā)送斷開請求,計費網(wǎng)關(guān)響應(yīng)請求,Radius服務(wù)器停止計費,用戶即斷開連接。用戶上網(wǎng)費用可通過Web服務(wù)器查詢??傮w框架模型如圖2所示。
圖2 總體構(gòu)架模型圖
基本工作原理圖如圖3所示。
圖3 基本工作原理
各線程主要功能如下:
接收客戶請求線程:接收來自客戶端的請求,校驗數(shù)據(jù)包的完整性和合法性,識別信令將其放入不同的隊列中等待處理。
令牌處理線程:當令牌隊列不為空時,PUSH一個節(jié)點,判斷取得令牌的條件。將處理結(jié)果POP到發(fā)送隊列中,等待發(fā)送線程的發(fā)送。
認證處理線程:當認證隊列不為空時,PUSH一個節(jié)點,將用戶信息交Radius認證服務(wù)器驗證,根據(jù)驗證結(jié)果執(zhí)行本地策略,并將處理結(jié)果POP到發(fā)送隊列中,等待發(fā)送線程的發(fā)送。
刷新處理線程:當刷新隊列不為空時,PUSH一個節(jié)點,根據(jù) SESSIONID更新 OUL在線用戶列表中該節(jié)點的TIMEOUT域值至最高閥值。若在OUL列表中能找到該用戶,則將處理結(jié)果POP到發(fā)送隊列中,等待發(fā)送線程的發(fā)送。
消息處理線程:當消息隊列不為空時,PUSH一個節(jié)點,根據(jù)消息的接收者在 OUL列表中查找該用戶的詳細信息。若在OUL列表中能找到該用戶,則將消息處理結(jié)果POP到發(fā)送隊列中,等待發(fā)送線程的發(fā)送。
管理處理線程:當管理隊列不為空時,PUSH一個節(jié)點,根據(jù)管理信令執(zhí)行響應(yīng)的動作,如強行離線等,將處理結(jié)果POP到發(fā)送隊列中,等待發(fā)送線程的發(fā)送。
定時掃描線程:該線程每隔一段時間被喚醒,定期掃描OUL列表中的每個節(jié)點,并使被掃描到的節(jié)點TIMEOUT域的值減一,若發(fā)現(xiàn)TIMEOUT值小于最低閥值時,釋放該接點并將消息處理結(jié)果POP到發(fā)送隊列中,等待發(fā)送線程的發(fā)送。
發(fā)送線程:當發(fā)送隊列不為空時,PUSH一個節(jié)點,將節(jié)點的內(nèi)容發(fā)送出去。
認證客戶端采用VC++6.0開發(fā)平臺,與認證服務(wù)端進行通信。其主要功能有:取得服務(wù)器發(fā)布的令牌、提供用戶輸入用戶名和密碼、顯示用戶狀態(tài)和收集上網(wǎng)日志(如圖4)。
圖4 認證客戶端
校園網(wǎng)計費系統(tǒng)是一個比較龐大的系統(tǒng),它所涉及的內(nèi)容十分廣泛。目前實現(xiàn)的校園網(wǎng)計費系統(tǒng)主要完成兩個方面的工作:一是滿足網(wǎng)絡(luò)服務(wù)財務(wù)結(jié)算的需求;另一方面輔助實現(xiàn)對網(wǎng)絡(luò)的有效管理,保證網(wǎng)絡(luò)運行的穩(wěn)定。本計費系統(tǒng)的具有以下特點:既包括了各種網(wǎng)絡(luò)技術(shù)的集成,如DNS,RADIUS,NAT等網(wǎng)關(guān)技術(shù)又包括了相當?shù)讓拥能浖_發(fā),如數(shù)據(jù)包過濾技術(shù)、高層協(xié)議識別技術(shù)及核心層的全局流控技術(shù)等,一定程度上解決了校園網(wǎng)用戶共享網(wǎng)絡(luò)出口信道而導(dǎo)致的網(wǎng)絡(luò)擁塞。目前我院的同時在線的計算機數(shù)是兩千臺左右,運行效果很滿意。
[1] John Lombardo.嵌入式Linux.中國電力出版社.2003.
[2] 王波.校園網(wǎng)計費系統(tǒng)的研究與實現(xiàn).北京工業(yè)大學學報.2003.
[3] 王耀軍.基于 Proxy的網(wǎng)絡(luò)計費系統(tǒng)的設(shè)計與實現(xiàn).計算機工程.2001.
[4] 朱樹人.防火墻Http代理用戶認證的實現(xiàn)技術(shù).計算機工程與應(yīng)用.2001.
[5] (美)William Stallings.SNMP網(wǎng)絡(luò)管理.中國電力出版社.2001.
[6] Junk Alins, Joe Van Andel.Linux advanced routing HOWTO.http://lartc.org/.