文/陶晉
自助服務系統讓校園網申請更便捷
文/陶晉
在當前國內高校的數字化建設中, 網絡服務始終是最基礎最重要的部分,如何使師生能更方便地申請和使用網絡,同時規范網絡申請的管理流程,上海財經大學網絡中心對此問題做了專門研究,設計并建設了校園網絡自助服務系統。
對上海財經大學的學生來說,以往,如要申請校園網需首先登錄網上平臺提交申請訂單,然后管理員根據訂單在校內Radius服務器中添加對應的賬號。隨后根據用戶申請的賬號類型劃分不同的VLAN,因此管理員還需手工找出用戶的網絡端口,登錄到對應的網絡交換機修改VLAN標識號。用戶提交完訂單后還需到學生服務中心pos機上去刷校園卡,全部完成后通知用戶到系統中去獲取最新的賬號密碼。整個網絡服務的申請流程不夠智能化,需要建設一個高效自動化的服務系統,既可以簡化用戶的申請過程,獲得更好的使用體驗,也可以減輕網絡管理員的工作量,提高管理效率。
上海財經大學網絡中心設計并建設了一套校園網絡自助服務系統。該系統整合了相關公司的智能管理平臺,用于網絡賬號的管理。同時,為師生提供了電信和聯通多個運營商的接入選擇,針對不同的接入網絡劃分不同的VLAN虛擬局域網,因此系統也整合了VLAN的自動切換功能,用于接入網絡的轉化。考慮到移動終端的日益普及,系統除了傳統的B/S網頁架構,還結合上海財經大學微信企業號部署了移動端的應用接入,并設計建設了支付平臺,支持用戶通過網上微信支付。將部分重要的網絡監控集成進微信應用,通過微信通知管理員及時進行處理。

圖1 相關系統框架下設計的接口方案
上海財經大學的有線網絡使用了802.1x認證協議,Radius采用了相關公司的IMC智能管理平臺。在這樣的系統框架下,設計了接口方案,如圖1所示。自助服務系統后臺采用Java開發,通過SOAP協議進行跨語言、跨操作系統的互操作。智能管理平臺采用了SOA基于服務的架構,設計采用了Apache Axis2的WebService框架。
下面描述下接口調用的具體過程:
1.首先使用Axis2中的ConfigurationContextFactory類獲得配置上下文,創建一個用于保持Session狀態的ServiceClient實體,使多個Service可在同一個Session中處理。
2.調用login(imcEndpointStr,sc)接口登錄IMC服務器,使用stub.toOM(login, true)方法構造SOAP報文,然后通過stub轉換為OMElement,再使用之前的ServiceClient對象發送該SOAP報文。發送結束后,還會收到回應SOAP報文,用Stub創建的回應實體Response來解析這個SOAP報文。在對操作員的身份驗證及ACL合法性檢查通過之后,才能調用后續的其他接口進行業務處理。
3.接下來就可以使用同樣的方式調用其他接口進行相應的業務處理了。業務功能接口中,提供了接入用戶的增刪改查等功能,還包括按賬號進行服務申請或服務注銷等操作。
4.當客戶端程序退出或是客戶端注銷時,需調用logout(imcEndpointStr,sc)接口,進行操作員注銷。
如圖2所示,考慮到客戶端在與IMC服務器通信過程中需對用戶的賬號密碼等敏感數據進行加密,為了保證用戶可鑒別性和交互信息的安全性,設計采用了非對稱密鑰的加密體制,即公鑰和私鑰。由IMC自己生成client.ks和service.ks,service.ks通過client.cer獲得client的公鑰,client.ks通過service.cer獲取到server的公鑰,同時完成雙方的cer信息認可。之后我們就可以對傳輸的SOAP報文進行簽名和3DES加密。
在整合了IMC服務接口模塊后,自助服務系統就能對用戶賬號進行智能的管理了,在前端門戶系統中增加對后臺Radius服務器操作的支持,既方便了廣大師生用戶維護自己的賬號,又減輕了網絡管理員的工作負擔,提高了管理效率。

圖2 設計采用了非對稱密鑰的加密體制
在網絡切換方案中,首先在之前所述的Radius服務器上通過接口得到認證數據包,然后綁定用戶名與發送上來的終端設備MAC物理地址間的對應關系。接著需要遍歷整個校園網的網絡交換機,找到上述MAC與交換機網絡端口間的關系。通過MAC這個橋梁,就能實時得到用戶與網絡端口的映射表,以及該端口上的VLAN標識號。最后系統就能自動根據用戶申請的某個具體網絡業務,配置相應的VLAN,進行網絡切換。
在自助服務系統中,設計通過SNMP網絡管理協議去獲取MAC與網絡設備端口的映像表。采用該協議是考慮到它是當前網絡管理的標準,絕大多數設備廠商都提供了對它的支持,且該協議基于UDP,面向無連接,傳輸數據效率較高。而上海財經大學校園網本身網絡設備眾多,且需不時地進行掃描更新,因此在這樣的體系架構下采用此協議比較合適。
選擇SNMP4J開源包來實現底層協議傳輸。找到MIB樹中的dot1qTpFdbTable表,經過某個網絡設備轉發的單播物理地址信息被保存在該表中,dot1qTpFdbTable還包含了dot1qTpFdbPort和dot1qTpFdbStatus等只讀屬性的OID節點,分別表示終端設備MAC物理地址,交換機端口,端口上的VLAN標識號等。系統對這張表進行讀取,將SNMP協議報文中的PDU類型設置成GETNEXT,不斷進行輪詢直到讀取表的最后一行。
在設置網絡設備中的VLAN時,選擇了dot1qPortVlanTable表中的dot1qPvid節點進行操作。該OID節點表示經過該設備端口轉發的tagged和ntagged幀的VLAN標識號,是可讀寫的。找到該表中需要設置的某行端口,將SNMP協議報文中的PDU類型設置成SET,數據類型為Integer32,執行寫入操作。最后操作完成后還需對該設備上的MIB配置保存節點進行寫入操作,將RAM內存中的配置文件寫入到NVRAM啟動配置文件中,以免RAM中的配置內容斷電后丟失。
另外,在設置完成后,也需要定期將前面網絡設備各端口上的VLAN信息進行保存,當設備出現故障時方便網絡管理員進行替換。對此,設計采用了Tftp協議,當系統中保存網絡設備配置的線程被喚醒時,在服務器上啟動該協議的服務端守護進程,自助服務系統則通過Telnet協議登錄到各網絡設備中,執行保存到該Tftp服務器的操作。
根據上文所述,自助服務系統會根據用戶申請的不同網絡業務,自動在網絡設備端口上配置對應的VLAN標識。在絕大多數情況下,這種模式都是正確的。但不能排除某些意外的場景,比如用戶名本身有問題等,這時就需要管理員的干預了。對此,專門設計了解決方案,在學校的微信企業號應用中添加了一個網絡管理模塊,只有擁有該權限的用戶方可進入,該模塊對一般用戶是不可見的。網絡管理員在應用菜單中手工輸入用戶名等信息,系統會根據網絡管理協議的掃描結果找出與之對應的網絡設備端口。然后管理員就可根據用戶的實際情況,在微信菜單提供的幾種網絡業務切換選項中進行操作。
另外,將設備端口上的進出流量及廣播組播等監控參數集成了進來。通過對MIB樹中ifXTable表里的ifHCInOctets、ifHCOutOctets、ifHCInBroadcastPkts、ifHCOutBroadcastPkts等參數進行定時采樣,獲取網絡設備端口上各數值在一段時間內的增量,進而得出這段時間內網絡設備端口上的流量及廣播包數據。該表將原先的32位類型數據升級到了64位,擴充了對高流量網絡設備端口的支持。當系統通過監控發現某設備端口流量出現異常或是廣播組播包數目異常,就會觸發服務告警,通過微信消息推送到相關人員進行處理,同時該微信網絡管理應用菜單中也包含了對該端口的斷開等操作,由管理員根據實際情況決定是否斷開某個異常端口,以保證校園網整體的穩定運行。利用該系統,曾經成功處理過一起故障。當時系統偵測到某個交換機設備端口上廣播包數目異常,在5秒內收到30多萬個廣播數據包,通過微信消息通知,網絡管理員在1分鐘內就鎖定了該端口。然后通過觀察,發現該端口下存在環路。因為大量的數據包需要處理,進而導致核心設備CPU使用率上升到了百分之六十多,全網出現故障。網絡管理員當即斷開該端口,隨后整網恢復正常。正因為微信通知及時,操作方便,整個故障從出現到解決沒有超過2分鐘。
上述管理模塊是提供給網絡管理員使用的,隨著移動微信的日益普及,上海財經大學微信企業號的注冊師生用戶數已有16000多人,普及率超過95%,因此在設計自助服務系統時通過建立消息型應用和配置自定義菜單,將自助服務系統用戶端的功能和網絡事件的通知也集成到了學校的微信企業號中,給一般用戶使用。
用戶點擊該微信企業號的自助服務應用,通過手機相冊上傳身份證照片,補全個人信息,然后根據自己需要來選擇電信或聯通的上網卡,能直接使用手機微信來完成支付,系統后臺處理完成之后會將賬號密碼通過微信消息通知該用戶,完成整個流程。整個過程可隨身通過手機在1至2分鐘內完成,簡化了之前繁瑣的申請流程,給廣大師生帶來了極大方便。在日后使用過程中,用戶如遺忘了自己的賬號,也隨時可通過該微信應用找到自己名下所有的賬戶信息。當某些網絡網段出現故障需要維護,系統也會提前通過消息通知給相關用戶,讓他們獲知當前網絡出現故障將中斷多長時間,管理員正在盡快解決,增加了網絡服務的透明度。
支付方面,原先采用校園一卡通在pos機上刷卡的方式。效率低下,需要人工干預,往往造成每年學生入學高峰期間長時間的排隊。因此在設計自助服務系統的支付功能時,摒棄了原先的做法,統一使用微信網上支付的方案。在架構中添加了支付平臺這一層,它將前端業務商戶系統和后端微信支付系統隔離開來,對業務系統來說只需向支付平臺發送支付請求即可,不用關心財務賬號歸屬等細節問題,降低了系統的耦合性。在自助服務系統中統一使用POST提交表單的方式,將參數傳遞到支付平臺,支付平臺支持兩種模式JSAPI和微信掃碼支付。使用JSAPI用戶可以在微信內打開網頁,調起微信支付控件后輸入密碼完成訂單支付,支付平臺返回支付結果并跳轉到指定的頁面。而微信掃碼支付中支付平臺會返回訂單號和二維碼字符串給自助服務系統,由系統將該字符串生成二維碼并顯示在網頁上,供用戶掃描二維碼進行支付。
支付平臺的輸入及回調參數方面,設計了業務系統接入碼、業務系統訂單號、商品ID與描述、收費金額、交費人編號姓名、跳轉頁面的URL、時間戳等參數,以及通過md5方式對上述參數進行數據加密。平臺還設計提供了對賬統計功能,可通過api實時獲取微信支付平臺的信息,包括交易的金額與筆數、交易時間、支付方式等信息,與自助服務系統進行比對,核實兩者之間的數據是否匹配一致。
圖3是設計的自助服務系統后臺商戶JSAPI支付的整個流程。由系統生成圖文消息,展示給用戶。用戶打開微信客戶端點擊該圖文消息,在該客戶端網頁內請求生成支付訂單,并向支付平臺發送支付請求,再由支付平臺向微信支付系統發起支付請求。微信支付系統生成預付單并將該信息返回支付平臺,支付平臺根據預付單信息生成支付參數并將參數返回微信客戶端。
隨后用戶在微信客戶端發起支付并將參數傳遞給微信支付系統,支付系統校驗參數合法性和授權,返回微信客戶端校驗結果,并要求支付授權。微信客戶端提示用戶輸入密碼,用戶確認訂單信息并支付,客戶端將支付授權發送給微信支付系統。微信支付系統異步通知支付平臺支付結果,同時支付平臺通知微信支付系統處理的結果,支付系統再通知微信客戶端支付結果,并發送微信消息提示。支付平臺異步通知自助服務系統支付結果,同時通知微信客戶端跳轉到指定頁面完成整個流程。

圖3 設計的自助服務系統后臺商戶JSAPI支付的流程
通過設計建設自助服務系統,上海財經大學網絡信息中心將網絡申請維護過程中一些原本孤立繁瑣的操作,包括管理員對Radius賬號的管理、查找文檔并登錄到網絡交換機中修改配置、對網絡環境的監控、人工進行pos刷卡繳費、定時統計核實賬務情況、通知用戶綁定的賬號信息等過程進行了優化整合,實現了自動化和智能化,且以該系統為核心統一進行管理。
(作者單位為上海財經大學教育技術中心)