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