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