王曉梅
摘要:本文主要針對于當(dāng)前高等院校網(wǎng)絡(luò)工程課程教學(xué)中實(shí)驗(yàn)環(huán)境構(gòu)建的問題提出了一種解決方案,即利用Dynamips軟件構(gòu)建后臺虛擬路由器和交換機(jī)環(huán)境,建立Web服務(wù)器實(shí)現(xiàn)客戶端與后臺的通信,構(gòu)建在線虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺。實(shí)踐證明,在線虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺可以將通用機(jī)房轉(zhuǎn)換為專業(yè)的網(wǎng)絡(luò)實(shí)驗(yàn)室,有效提高學(xué)生網(wǎng)絡(luò)設(shè)備配置操作的實(shí)踐技能。
關(guān)鍵詞:在線虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺;網(wǎng)絡(luò)工程;實(shí)踐
中圖分類號:G642文獻(xiàn)標(biāo)識碼:A
1引言
目前,各高等院校開設(shè)了網(wǎng)絡(luò)工程專業(yè),該專業(yè)的課程(如計(jì)算機(jī)網(wǎng)絡(luò),網(wǎng)絡(luò)規(guī)劃與設(shè)計(jì)等)均需要進(jìn)行大量網(wǎng)絡(luò)設(shè)備配置實(shí)驗(yàn),但實(shí)驗(yàn)室成本對于各院校來說是一項(xiàng)不小的負(fù)擔(dān),建設(shè)一個(gè)40人左右規(guī)模的網(wǎng)絡(luò)實(shí)驗(yàn)室,成本大約在80~100萬人民幣左右,這筆費(fèi)用并不是每個(gè)院校都能承擔(dān)的。同時(shí),上述的實(shí)驗(yàn)室由于具體的實(shí)驗(yàn)設(shè)備還是很少,無法滿足學(xué)生人手一套設(shè)備的需求,因此必須把學(xué)生分成4~5人小組進(jìn)行實(shí)驗(yàn)。
近年來,出現(xiàn)了模擬軟件來模擬各種實(shí)驗(yàn)器材、設(shè)備、實(shí)驗(yàn)過程以及實(shí)驗(yàn)環(huán)境。為高校實(shí)驗(yàn)教學(xué)減輕了一定的壓力,如實(shí)驗(yàn)和實(shí)習(xí)費(fèi)用不足,實(shí)驗(yàn)設(shè)備陳舊老化,實(shí)驗(yàn)場地?fù)頂D,學(xué)生人均臺、套數(shù)少,實(shí)物實(shí)驗(yàn)次數(shù)下降等等。其中典型的有Boson公司出品的NetSim軟件和由法國人Chris Fillot開發(fā)的Dynamips軟件。
Boson NetSim軟件采取的是模擬設(shè)備的命令行方式,和真實(shí)的設(shè)備存在很大的差距,而且很多實(shí)驗(yàn)內(nèi)容無法進(jìn)行模擬。
Dynamips軟件通過加載Cisco的IOS軟件,可在一臺PC上模擬多臺Cisco交換機(jī)、路由器設(shè)備,其最大優(yōu)勢在于可自行設(shè)計(jì)網(wǎng)絡(luò)拓?fù)?在PC上構(gòu)建一個(gè)虛擬的網(wǎng)絡(luò)環(huán)境,但Dynamips是一個(gè)命令行程序,在配置實(shí)驗(yàn)文件時(shí)需手工設(shè)置大量參數(shù),不方便用戶的使用。而且很多學(xué)校的實(shí)驗(yàn)室為管理維護(hù)的方便,給計(jì)算機(jī)都安裝了還原保護(hù)卡,給需要修改配置參數(shù)時(shí)帶來了很多不便。
針對以上問題,本文提出了建立在線虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺的思路。
2系統(tǒng)架構(gòu)
在線虛擬網(wǎng)絡(luò)實(shí)驗(yàn)平臺的軟件體系機(jī)構(gòu)是三層架構(gòu)(如圖1所示),即包括后臺模擬器運(yùn)行服務(wù)器、應(yīng)用服務(wù)器、客戶端三部分,采用了瀏覽器/服務(wù)器(B/S)的網(wǎng)絡(luò)計(jì)算模式。應(yīng)用服務(wù)器可以在網(wǎng)中的任何位置,運(yùn)行在任何操作系統(tǒng)上,在處理客戶端實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)渑渲?完成客戶端與后臺模擬器運(yùn)行服務(wù)器之間的通信轉(zhuǎn)接。后臺模擬器運(yùn)行服務(wù)器采用Dynamips軟件模擬實(shí)際的設(shè)備,通過采用應(yīng)用服務(wù)器生成拓?fù)渌枰膮?shù),管理和維護(hù)需要模擬的設(shè)備??蛻舳送瓿膳c用戶的交互,完成拓?fù)渚W(wǎng)絡(luò)的設(shè)計(jì)和虛擬設(shè)備的配置交互。
3客戶端
3.1軟件要求
客戶端的軟件要求:
(1) 安裝有IE或Firefox瀏覽器;
(2) 安裝J2RE 1.5版本以上插件。
3.2設(shè)計(jì)方案
客戶端完成與用戶的交互。由于系統(tǒng)采用的是B/S這種方式,客戶端不需要安裝額外的軟件,只要能夠運(yùn)行基本的瀏覽器軟件并配置相應(yīng)的Java運(yùn)行環(huán)境。
用戶在客戶端完成網(wǎng)絡(luò)實(shí)驗(yàn)的拓?fù)浣Y(jié)構(gòu),并在此基礎(chǔ)上進(jìn)行實(shí)驗(yàn),這就帶來了兩個(gè)問題:
(1) 如何進(jìn)行配置;
(2) 如何和后臺模擬器運(yùn)行環(huán)境通信。
針對問題1,通過編寫Java Applet程序(該Applet后簡稱Applet A)來完成圖形化網(wǎng)絡(luò)拓?fù)渑渲?此外,采用Java Applet的好處還體現(xiàn)在便于和應(yīng)用服務(wù)器實(shí)現(xiàn)通信。
針對問題2,通過編寫另一個(gè)Java Applet(該Applet后簡稱Applet B)來完成與后臺虛擬設(shè)備的交互配置。
為了便于用戶進(jìn)行相應(yīng)虛擬設(shè)備數(shù)據(jù)的配置,即通過點(diǎn)擊Applet A網(wǎng)絡(luò)拓?fù)渖系南鄳?yīng)設(shè)備,能夠在Applet B中進(jìn)行配置窗口的相應(yīng)切換,完成與不同虛擬設(shè)備之間的交互。Applet A與Applet B的配合通過兩個(gè)Applet之間的通信來完成。
3.3具體實(shí)現(xiàn)
用戶在IE瀏覽器地址欄中輸入實(shí)驗(yàn)環(huán)境的URL地址。用戶登錄后選擇進(jìn)入具體的實(shí)驗(yàn)項(xiàng)目。典型的實(shí)驗(yàn)配置為參見圖2:
當(dāng)用戶提交用戶配置數(shù)據(jù)時(shí),由Applet生成網(wǎng)絡(luò)的拓?fù)鋽?shù)據(jù),并提交給應(yīng)用服務(wù)器。應(yīng)用服務(wù)器將用戶轉(zhuǎn)至Applet B所在的配置界面,同時(shí)給出所有虛擬設(shè)備的URL地址。
例如:telnet://192.168.1.3:2001
用戶在配置界面可以完成對制定虛擬設(shè)備的配置(如圖3),或者通過點(diǎn)擊URL地址鏈接,調(diào)用客戶端默認(rèn)的telnet工具訪問虛擬設(shè)備。
4應(yīng)用服務(wù)器
4.1軟件需求
對于應(yīng)用服務(wù)器的要求:
(1) 安裝有J2SDK5.0以上版本;
(2) 安裝有Apache Tomcat 6.0。
應(yīng)用服務(wù)器采用JSP、Java Servlet技術(shù),應(yīng)用服務(wù)器系統(tǒng)根據(jù)功能分為用戶管理模塊,實(shí)驗(yàn)環(huán)境配置模塊和仿真模塊,后臺環(huán)境管理模塊3個(gè)子系統(tǒng)(參見圖4)。
4.2用戶管理模塊
用戶管理模塊完成用戶的登錄,注冊,信息修改,注銷功能(參見圖5)。
4.3實(shí)驗(yàn)環(huán)境配置模塊
實(shí)驗(yàn)環(huán)境配置模塊要完成以下3個(gè)功能:
功能1:提供客戶端需要的Web頁面和Java Applet程序。
功能2:對用戶提交的網(wǎng)絡(luò)配置數(shù)據(jù)處理,生成后臺模擬器運(yùn)行所需的配置文件,并將生成的配置文件提交給后臺模擬器運(yùn)行環(huán)境。
功能3:完成通信的轉(zhuǎn)接,即實(shí)現(xiàn)客戶端Applet與后臺虛擬設(shè)備的通信。
上述三個(gè)功能分別由客戶端交互模塊,實(shí)驗(yàn)數(shù)據(jù)配置生成模塊和通信模塊完成(參見圖6)。
(1) 客戶端交互模塊
對于功能1的實(shí)現(xiàn)是比較簡單的,編寫JSP代碼實(shí)現(xiàn)用戶頁面,編寫Java代碼實(shí)現(xiàn)Applet,需要注意兩個(gè)Applet之間的通信。
(2) 實(shí)驗(yàn)數(shù)據(jù)配置生成模塊
對于功能2的實(shí)現(xiàn),通過Servlet實(shí)現(xiàn)。對于每個(gè)用戶發(fā)起的配置請求(Applet A發(fā)起),啟動一個(gè)新的線程完成對用戶配置數(shù)據(jù)的處理,實(shí)驗(yàn)數(shù)據(jù)配置生成模塊生成后臺模擬器運(yùn)行環(huán)境的運(yùn)行參數(shù)并將其提交給后臺模擬器運(yùn)行服務(wù)器,由后臺模擬器運(yùn)行服務(wù)器環(huán)境負(fù)責(zé)虛擬實(shí)驗(yàn)環(huán)境的建立。由于存在多個(gè)用戶同時(shí)進(jìn)行實(shí)驗(yàn),這里需要采用多線程處理。
(3) 通信模塊
對于功能3的實(shí)現(xiàn),也通過Servlet實(shí)現(xiàn),當(dāng)功能2的Servlet完成工作后,創(chuàng)建一個(gè)新的線程完成Applet B與后臺虛擬設(shè)備之間通信轉(zhuǎn)接。
通信模塊負(fù)責(zé)與客戶端的通信,這里由一個(gè)線程池來完成,線程負(fù)責(zé)將Applet B發(fā)來的命令轉(zhuǎn)發(fā)到后臺虛擬設(shè)備上,同時(shí)將后臺虛擬設(shè)備的輸出轉(zhuǎn)發(fā)至Applet B。
4.4后臺環(huán)境管理模塊
實(shí)驗(yàn)管理模塊完成對正在進(jìn)行實(shí)驗(yàn)的管理,清理不必要的數(shù)據(jù)。
4.5具體實(shí)現(xiàn)
客戶交互模塊根據(jù)用戶提交的配置數(shù)據(jù),啟動一個(gè)新的線程完成對用戶配置數(shù)據(jù)的處理,實(shí)驗(yàn)數(shù)據(jù)配置生成模塊生成后臺模擬器運(yùn)行環(huán)境的運(yùn)行參數(shù)并通過通信模塊將其提交給后臺模擬器運(yùn)行服務(wù)器,由后臺模擬器運(yùn)行服務(wù)器環(huán)境負(fù)責(zé)虛擬實(shí)驗(yàn)環(huán)境的建立。由于存在多個(gè)用戶同時(shí)進(jìn)行實(shí)驗(yàn),這里需要采用多線程處理。
生成后臺模擬器運(yùn)行環(huán)境的運(yùn)行參數(shù)舉例如下:
dynamips-wxp.exe -T 2001 -P 7200 -r 128 --disk0 4 -t npe- 400-c 0x2142 -p 0:C7200-IO-FE -p 1:PA-2FE-TX- s0:0:gen_eth:"DeviceNPF_{953246C0-1275-426B-9803-B4C