隨飛揚,王杰鋒,馬維駿,楊 帆
(肇慶學(xué)院 計算機學(xué)院,廣東 肇慶 526061)
與其他專業(yè)的計算機實驗室相比,高校網(wǎng)絡(luò)工程專業(yè)的實踐教學(xué)環(huán)境在設(shè)備種類、設(shè)備數(shù)量、設(shè)備利用率、設(shè)備造價等方面有明顯的專業(yè)性,在實驗內(nèi)容和實驗基礎(chǔ)知識方面也有一定的特殊性[1]。首先,設(shè)備種類包含PC、交換、路由、防火墻等多種設(shè)備,學(xué)生獨立完成實驗時需要多臺PC及兩臺以上網(wǎng)絡(luò)設(shè)備互聯(lián)才能形成基本網(wǎng)絡(luò)。設(shè)備種類和設(shè)備數(shù)量多與設(shè)備造價高和設(shè)備利用率低的特點形成了實驗室建設(shè)中的主要矛盾,導(dǎo)致實驗教學(xué)環(huán)境在設(shè)備臺、套數(shù)方面無法滿足學(xué)生“同時、獨立”實驗的教學(xué)要求。其次,網(wǎng)絡(luò)工程專業(yè)的大多數(shù)實驗是前后相關(guān)的,具有實驗連續(xù)性;但傳統(tǒng)的“2課時”單元實驗?zāi)J綗o法為學(xué)生提供連續(xù)實驗的能力。第三,網(wǎng)絡(luò)工程實驗需要的基礎(chǔ)知識繁雜,涉及設(shè)備硬件、操作系統(tǒng)、協(xié)議、操作命令以及實驗網(wǎng)絡(luò)的相關(guān)配置信息等多方面內(nèi)容,因此每個實驗的實驗任務(wù)相對較重,需要更多的實驗準(zhǔn)備或?qū)嶒灂r間;但固定的實驗場所和固定的實驗時間限制了學(xué)生行為,無法滿足學(xué)生“隨時隨地”進行實驗的要求。為此,一些學(xué)校也采用了虛擬網(wǎng)絡(luò)仿真實驗[2]方法,但因為缺乏對虛擬網(wǎng)絡(luò)可遷移性問題的研究,使得實驗只能在固定機器上完成,缺乏遷移和相互交流的能力。另外,教師的網(wǎng)絡(luò)教學(xué)采用“靜態(tài)圖片”解釋動態(tài)網(wǎng)絡(luò)運行,網(wǎng)絡(luò)實驗的測試僅限于網(wǎng)絡(luò)層的“PING”通,缺乏形象逼真的動態(tài)演示。
本文提出了一種基于網(wǎng)絡(luò)模擬器和虛擬機技術(shù)的可“攜帶”實驗網(wǎng)絡(luò)環(huán)境。通過有效集成,為師生建立可攜帶、可重載、可配置、可反復(fù)使用的網(wǎng)絡(luò)實驗環(huán)境;提供實驗網(wǎng)絡(luò)環(huán)境的遷移和攜帶能力,教師可以“攜帶”網(wǎng)絡(luò)到任何場所,為學(xué)生動態(tài)演示網(wǎng)絡(luò)原理和工作過程;學(xué)生可“攜帶”網(wǎng)絡(luò)在實驗室和宿舍等場所,隨時隨地獨立完成搭建網(wǎng)絡(luò)拓?fù)?、配置網(wǎng)絡(luò)、測試網(wǎng)絡(luò)、分析結(jié)果等技能訓(xùn)練。所搭建的虛擬網(wǎng)絡(luò)可以在不同的虛擬網(wǎng)絡(luò)環(huán)境下運行,不僅解決了實驗設(shè)備不足、實驗時間不連續(xù)的問題,提供隨時隨地反復(fù)實驗的能力,還為提高網(wǎng)絡(luò)工程專業(yè)相關(guān)課程的理論和實踐教學(xué)效果探索了一條新路。
便攜網(wǎng)絡(luò)實驗環(huán)境涉及網(wǎng)絡(luò)模擬器、虛擬機、虛擬網(wǎng)絡(luò)等三部分技術(shù)內(nèi)容,關(guān)鍵技術(shù)在于它們之間的集成關(guān)系、調(diào)用關(guān)系以及網(wǎng)絡(luò)連接關(guān)系。
網(wǎng)絡(luò)模擬器是通過軟件技術(shù)模擬特定網(wǎng)絡(luò)設(shè)備、網(wǎng)絡(luò)傳輸介質(zhì)以及組網(wǎng)過程的一種專用軟件,常見的網(wǎng)絡(luò)模擬器軟件有Dynamips、Cisco packet tracer、Boson NetSim、GNS3等。其中,以 GNS3最為靈活[3],具有以下顯著特點:
1)功能強大。GNS3集成了 Winpcap、Dynamips、VPCS、Qemu虛擬機、VirtualBOX虛擬機、Wireshark等軟件,不僅可通過加載Cisco IOS提供不同系列Cisco路由設(shè)備的模擬能力,還可通過集成Qemu虛擬技術(shù)和配置相應(yīng)的OS鏡像,提供Qemu客戶機、PIX防火墻、ASA防火墻、Juniper路由器以及IDS和IPS內(nèi)核的虛擬仿真能力;加上其他輔助功能,使得GNS3可提供網(wǎng)絡(luò)拓?fù)鋱D設(shè)計、網(wǎng)絡(luò)運行、網(wǎng)絡(luò)協(xié)議數(shù)據(jù)包捕獲與分析等綜合實驗?zāi)芰Α?/p>
2)連接能力強。GNS3對于不同網(wǎng)絡(luò)設(shè)備可首先配置不同數(shù)量和種類的接口模塊,提供不同處理能力和組網(wǎng)能力,可連接VPCS虛擬機、Qemu虛擬機、VirtualBOX虛擬機、VMWare虛擬機以及運行GNS3的真實機器,進而提供虛擬網(wǎng)絡(luò)與真實網(wǎng)絡(luò)的連接能力。
3)運行環(huán)境可配置。GNS3的運行環(huán)境分為“General”“Dynamips”“Capture”“Qemu”和“Virtual-BOX”等五項,如表1所示。只要運行GNS3模擬器的真實PC環(huán)境配置了相同的目錄參數(shù),所設(shè)計的GNS3虛擬網(wǎng)絡(luò)就可以在不同的真實機器上運行,也就是說,這些目錄參數(shù)的合理配置為GNS3虛擬網(wǎng)絡(luò)的遷移(復(fù)制、重載、編輯與運行)奠定了基礎(chǔ)。
虛擬機是利用軟件技術(shù)虛擬特定主機硬件的一種專用軟件。常見的虛擬機軟件有VPCS、Qemu Manager、Oracle VM VirtualBOX、Virtual PC、VM-ware Workstation等。從構(gòu)建便攜網(wǎng)絡(luò)環(huán)境的需要分析,Oracle VM VirtualBox具有與GNS3更好的集成性,可虛擬化基于x86架構(gòu)的PC硬件[4],其管理器還向用戶提供了更為方便的“全局設(shè)定”和虛擬機安裝、配置、控制、遷移(導(dǎo)入/導(dǎo)出)等操作。其突出特點是小巧、簡便、易用,這些特點為虛擬機的遷移奠定了基礎(chǔ)。與VirtualBOX相比,VPCS則不是真正意義上的“虛擬機”,而只是一個通過UDP端口模擬網(wǎng)絡(luò)連接的能執(zhí)行多個命令的簡單命令行程序,其目的只是為了執(zhí)行主機在網(wǎng)絡(luò)層的連通性測試。其突出特點是虛擬機數(shù)量多(9臺)、體積小、免安裝、簡便易用。
表1 GNS3(0.8.3.1版)的運行環(huán)境主要參數(shù)表
1.3.1 虛擬機的聯(lián)網(wǎng)方式
虛擬機均提供較為靈活的網(wǎng)絡(luò)連接能力,其中VPCS通過UDP端口實現(xiàn)與虛擬網(wǎng)絡(luò)的連接,而VirtualBOX虛擬機則有以下四種聯(lián)網(wǎng)方式:
1)NAT模式。最簡單的實現(xiàn)虛擬機聯(lián)網(wǎng)的方式,無需配置,默認(rèn)選擇即可接入網(wǎng)絡(luò),可提供瀏覽Web網(wǎng)頁、下載文件以及查閱電子郵件等功能。該模式需要在虛擬機上建立完整的TCP/IP協(xié)議棧,系統(tǒng)開銷較大,因此網(wǎng)絡(luò)訪問性能較差,外網(wǎng)不能訪問虛擬機。
2)Bridged Adapter(網(wǎng)橋)模式??梢蕴摂M出一個獨立的網(wǎng)卡,有獨立的IP地址;虛擬機的網(wǎng)絡(luò)功能和一般主機一樣,可作為網(wǎng)絡(luò)服務(wù)器使用,能夠互相訪問,實現(xiàn)文件的傳遞和共享。當(dāng)此模式啟用時,VirtualBox虛擬機與主機上安裝的網(wǎng)卡建立連接,繞過主機操作系統(tǒng)中的網(wǎng)絡(luò)協(xié)議棧,直接轉(zhuǎn)發(fā)網(wǎng)絡(luò)數(shù)據(jù)包。需要說明的是:Windows 7系統(tǒng)選擇網(wǎng)橋模式時,需要手動安裝VirtualBox的橋接服務(wù)驅(qū)動。
3)Internal(內(nèi)部網(wǎng)絡(luò))模式。這是一種用軟件模擬的網(wǎng)絡(luò),虛擬機之間可以相互聯(lián)網(wǎng),但不能與外網(wǎng)或真實主機之間聯(lián)網(wǎng),相當(dāng)于虛擬機之間架設(shè)了一個獨立的局域網(wǎng)。這種方式比較適合于連接GNS3創(chuàng)建的模擬網(wǎng)絡(luò)。
4)Host-only Adapter(主機)模式。這種模式可用于創(chuàng)建一種能連接真實主機和一組虛擬機的網(wǎng)絡(luò),無需使用真實主機上的物理網(wǎng)絡(luò)接口,而是通過在真實主機上建立虛擬網(wǎng)絡(luò)接口(如Loopback接口)的方法,在虛擬主機和真實主機之間提供網(wǎng)絡(luò)連接。
1.3.2 網(wǎng)絡(luò)模擬器GNS3的聯(lián)網(wǎng)方式
網(wǎng)絡(luò)模擬器GNS3本身集成VPCS、Qemu和VirtualBOX,可通過“NIO UDP”分配不同的UDP端口連接不同的VPCS虛擬機;對于Qemu虛擬機、VirtualBOX虛擬機和VMWare虛擬機,可根據(jù)各虛擬機網(wǎng)絡(luò)連接模式的不同,在GNS3中選擇“以太網(wǎng) NIO”“NIO UDP”“NIO TAP”“NIO Unix”“NIO VDE”和“NIO Null”等不同連接方式,實現(xiàn)與不同虛擬機或真實主機的網(wǎng)絡(luò)連接。
便攜網(wǎng)絡(luò)實驗環(huán)境由便攜網(wǎng)絡(luò)環(huán)境和便攜網(wǎng)絡(luò)兩部分組成,它建立在真實的宿主機上。便攜網(wǎng)絡(luò)環(huán)境由GNS3網(wǎng)絡(luò)模擬器、VirtualBOX虛擬機以及相應(yīng)的映像文件組成,經(jīng)過有效集成和配置,使其具備攜帶和遷移能力,形成可攜帶的網(wǎng)絡(luò)運行環(huán)境;而便攜網(wǎng)絡(luò)則是在GNS3網(wǎng)絡(luò)模擬器控制下,使用者根據(jù)網(wǎng)絡(luò)設(shè)計需求,經(jīng)過連接、配置、運行測試等環(huán)節(jié)構(gòu)建的由虛擬設(shè)備、虛擬連接和虛擬配置組成的虛擬網(wǎng)絡(luò)。
1)安裝 GNS3及其組件。包括 WinPCAP 4.1.2、Wireshark 1.6.8、 Dynamips0.2.8 RC3 Community、Dynamips 0.2.8 RC4 Community、Qemu 0.11.0 Patched、Pemu、VPCS 0.4B2、GNS3、Translations語言翻譯等組件。
2)選擇虛擬設(shè)備的IOS。GNS3能夠模擬的所有網(wǎng)絡(luò)設(shè)備均需配置相應(yīng)的IOS文件。由于一種設(shè)備的IOS文件版本較多,功能、性能、內(nèi)存開銷等有差異,因此需要進行大量的測試實驗工作,從中選擇運行穩(wěn)定、開銷小、功能強的IOS,避免學(xué)生各自隨意使用IOS導(dǎo)致的運行不穩(wěn)定或操作不相同等問題的出現(xiàn)。
3)配置GNS3運行參數(shù)。這是GNS3設(shè)計創(chuàng)建的虛擬網(wǎng)絡(luò)(.net項目文件)能否復(fù)制、遷移、編輯、運行的關(guān)鍵。由于GNS3允許對表1的參數(shù)進行靈活配置,這可能導(dǎo)致實驗室建立的GNS3運行環(huán)境以及學(xué)生各自配置的GNS3運行環(huán)境各不相同,使得.net項目文件中虛擬設(shè)備IOS以及其他文件的引用位置不同,無法實現(xiàn)虛擬網(wǎng)絡(luò)在不同實驗環(huán)境(學(xué)生宿舍與實驗室、學(xué)生之間等)之間的遷移、編輯和運行操作。因此,只有預(yù)先規(guī)定統(tǒng)一的安裝位置和配置參數(shù),要求實驗室、學(xué)生、教師等都按照統(tǒng)一規(guī)定配置參數(shù),才能創(chuàng)造虛擬網(wǎng)絡(luò)復(fù)制、遷移、編輯、運行的“便攜”條件。為減少操作工作量和人為失誤,專門開發(fā)了GNS3運行參數(shù)設(shè)置程序SET_GNS3_PAR,自動完成GNS3運行環(huán)境參數(shù)的統(tǒng)一配置。
虛擬機提供虛擬網(wǎng)絡(luò)連通性和網(wǎng)絡(luò)應(yīng)用功能的測試能力,依據(jù)不同需求,可分別構(gòu)建簡單虛擬機、低配虛擬機和高配虛擬機三種類型。簡單虛擬機僅完成網(wǎng)絡(luò)連通性測試,工作于網(wǎng)絡(luò)層,一般由GNS3內(nèi)嵌的VPCS來充當(dāng)。低配和高配虛擬機均需要通過VirtualBOX虛擬機管理器進行創(chuàng)建和配置,并在學(xué)生、教師以及實驗室的主機環(huán)境中統(tǒng)一安裝。
為便于實驗教學(xué)和虛擬網(wǎng)絡(luò)遷移,提供合適的虛擬機性能和統(tǒng)一規(guī)范的網(wǎng)絡(luò)連接能力,創(chuàng)建、配置虛擬機時,必須對相應(yīng)參數(shù)進行規(guī)范,要求學(xué)生、教師、實驗室管理員根據(jù)自己的教學(xué)需要創(chuàng)建虛擬機,嚴(yán)格按照規(guī)定參數(shù)標(biāo)志虛擬機并命名虛擬機文件;命名規(guī)則為“操作系統(tǒng)(+虛擬機功能標(biāo)志+內(nèi)存容量 +硬盤容量)”,如“Winxp(PC192MB10G).ova”表示本虛擬機安裝了 Windows XP操作系統(tǒng),在網(wǎng)絡(luò)中用作PC客戶機,分配了192 MB的內(nèi)存容量和10 GB的硬盤容量。這樣的命名便于師生在復(fù)制遷移虛擬機時不必運行虛擬機就可快速知道虛擬機的基本配置。虛擬機配置的標(biāo)準(zhǔn)化為“攜帶”和遷移虛擬網(wǎng)絡(luò)創(chuàng)造了條件。
在GNS3虛擬網(wǎng)絡(luò)模擬器和虛擬機的支持下,可以搭建虛擬網(wǎng)絡(luò)。圖1是搭建的一個HSRP熱備份路由網(wǎng)絡(luò),主體是由虛擬網(wǎng)絡(luò)設(shè)備(交換機、路由器)和虛擬網(wǎng)絡(luò)線路組成的虛擬網(wǎng)絡(luò)。為了實現(xiàn)對網(wǎng)絡(luò)連通性和網(wǎng)絡(luò)應(yīng)用功能的測試,需要在網(wǎng)絡(luò)的邊緣連接不同的虛擬機。特別需要強調(diào)的是,用于連接虛擬機的邊緣子網(wǎng)應(yīng)該設(shè)置(預(yù)留)固定的子網(wǎng)地址,分配(預(yù)留)固定的物理端口,這樣既容易記憶,又有利于虛擬機IP參數(shù)的標(biāo)準(zhǔn)化,提供虛擬機與虛擬網(wǎng)絡(luò)之間“即插即用”的能力,同時使虛擬網(wǎng)絡(luò)拓?fù)涓右?guī)范。
圖1 HSRP熱備份路由網(wǎng)絡(luò)
以《計算機網(wǎng)絡(luò)工程》課程為例,在講解網(wǎng)絡(luò)設(shè)計相關(guān)內(nèi)容時,教師在課前搭建好合適的網(wǎng)絡(luò)拓?fù)洌⑦M行相應(yīng)的配置;攜帶“網(wǎng)絡(luò)”進課堂,需要時運行搭建好的網(wǎng)絡(luò),動態(tài)演示網(wǎng)絡(luò)工作情況;同過改變拓?fù)浠蚺渲糜^察網(wǎng)絡(luò)的運行變化。圖2是用VRRP協(xié)議設(shè)計熱備份路由的教學(xué)演示網(wǎng)絡(luò),R1為主動路由器;R2則為被動路由器。當(dāng)R2檢測不到R1的Hello數(shù)據(jù)包時,則認(rèn)為R1故障;R2則變?yōu)橹鲃勇酚善鳎^續(xù)維持網(wǎng)絡(luò)連接的暢通。教學(xué)過程中,教師可在網(wǎng)絡(luò)運行的同時,認(rèn)為斷開R1的連接或關(guān)閉R1的電源,造成R1鏈路的故障,向?qū)W生全程演示VRRP的工作過程。目前已經(jīng)構(gòu)建了十多個典型網(wǎng)絡(luò),如表2所示,每個網(wǎng)絡(luò)由應(yīng)用背景、主要知識點、網(wǎng)絡(luò)拓?fù)?、設(shè)備配置命令、測試與演示說明、注意事項等內(nèi)容構(gòu)成,可直接用于課堂教學(xué)演示、實踐教學(xué)案例以及科研模擬等。
在實驗教學(xué)方面,學(xué)生可以“攜帶”已構(gòu)建的典型網(wǎng)絡(luò)在實驗室、學(xué)生宿舍、圖書館等場所,隨時獨立進行相關(guān)網(wǎng)絡(luò)實驗,并通過這些典型網(wǎng)絡(luò)的演示、對比、分析,快速理解和掌握相關(guān)技術(shù),構(gòu)建新的逼真的網(wǎng)絡(luò)應(yīng)用及測試環(huán)境。不僅可以測試網(wǎng)絡(luò)的連通性,還可以直接觀察網(wǎng)絡(luò)訪問效果(如WWW瀏覽、FTP下載等)和面向應(yīng)用的網(wǎng)絡(luò)訪問控制效果(如ACL、防火墻、NAT、負(fù)載均衡等),更能詳細(xì)掌控全網(wǎng)的技術(shù)內(nèi)容。在實驗實訓(xùn)教學(xué)的組織管理方面,打破傳統(tǒng)的“分組2學(xué)時”單元實驗?zāi)J剑峁╇S時隨地連續(xù)獨立實驗的能力。
表2 已構(gòu)建的典型網(wǎng)絡(luò)
圖2 熱備份路由的教學(xué)演示網(wǎng)絡(luò)
便攜網(wǎng)絡(luò)實驗環(huán)境為網(wǎng)絡(luò)工程專業(yè)的相關(guān)課程,如《計算機網(wǎng)絡(luò)》《網(wǎng)絡(luò)操作系統(tǒng)》《網(wǎng)絡(luò)協(xié)議分析》《計算機網(wǎng)絡(luò)工程》和《網(wǎng)絡(luò)攻防技術(shù)》等提供了一個可遷移的網(wǎng)絡(luò)實驗平臺,具備搭建網(wǎng)絡(luò)、配置網(wǎng)絡(luò)、測試網(wǎng)絡(luò)、捕獲數(shù)據(jù)包、協(xié)議分析等實驗功能。不僅解決了網(wǎng)絡(luò)實驗教學(xué)條件在時間和設(shè)備方面不能滿足學(xué)生需要的問題,還把實驗測試從網(wǎng)絡(luò)層的“Ping”通提升到了應(yīng)用層的“形象展示”,同時,還提供了課堂動態(tài)演示網(wǎng)絡(luò)工作原理的能力。教學(xué)實踐證明,理論課堂的動態(tài)演示,增加了學(xué)生對網(wǎng)絡(luò)的感性認(rèn)識,加深了對網(wǎng)絡(luò)原理內(nèi)容的理解,實踐課的獨立操作、逼真的結(jié)果展示和全程經(jīng)歷,使學(xué)生實踐訓(xùn)練的成就感倍增,再次激發(fā)了學(xué)生的學(xué)習(xí)興趣和探索欲望,達(dá)到了訓(xùn)練基本技能和培養(yǎng)創(chuàng)新能力的目的。
[1]蔡皖東,張勝兵.網(wǎng)絡(luò)工程實踐教學(xué)改革與實驗室建設(shè)[J].實驗室研究與探索,2008,27(12):93-95.
[2]汪慶淼.GNS3在計算機網(wǎng)絡(luò)實驗教學(xué)中的應(yīng)用[J].高校實驗室工作研究,2012(2):65-70.
[3]GNS3 Introduction to GNS3[EB/OL].[2012 -11 -20].http://www.gns3.net/gns3-introduction/.
[4]the VirtualBox User Manual[EB/OL].[2012 -12 -10].https://www.virtualbox.org/manual/ch01.html.