文 / 江魁 張園紅 楊文玲
在計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)課程的教學(xué)環(huán)節(jié)中,網(wǎng)絡(luò)設(shè)備的配置和管理是其中的重點(diǎn),但由于路由器等專用網(wǎng)絡(luò)硬件設(shè)備數(shù)量有限,學(xué)生往往只能多人共用一套網(wǎng)絡(luò)設(shè)備,尤其對(duì)于需要多臺(tái)網(wǎng)絡(luò)設(shè)備完成的大型網(wǎng)絡(luò)實(shí)驗(yàn)更是如此。由于數(shù)據(jù)在網(wǎng)絡(luò)傳輸過(guò)程中的相互影響與學(xué)生操作上的相互干擾,學(xué)生很難掌握網(wǎng)絡(luò)設(shè)備操作的實(shí)際技能,不能全面了解計(jì)算機(jī)網(wǎng)絡(luò)的運(yùn)行機(jī)制。
基于虛擬化技術(shù)以軟件方式仿真各種網(wǎng)絡(luò)硬件設(shè)備,從而構(gòu)建真實(shí)網(wǎng)絡(luò)的仿真實(shí)驗(yàn)環(huán)境是解決這一問(wèn)題的方法之一,不僅能節(jié)約硬件設(shè)備的購(gòu)置資金,同時(shí)還能讓更多的學(xué)生同時(shí)進(jìn)行實(shí)驗(yàn)。本文在對(duì)各種主流網(wǎng)絡(luò)仿真軟件分析和比較的基礎(chǔ)上,基于Dynamips等仿真軟件構(gòu)建了包括路由器、交換機(jī)、防火墻等各種網(wǎng)絡(luò)設(shè)備在內(nèi)的網(wǎng)絡(luò)仿真環(huán)境,為學(xué)生和教師提供了一個(gè)與真實(shí)網(wǎng)絡(luò)體驗(yàn)完全一致的學(xué)習(xí)和實(shí)驗(yàn)環(huán)境,不僅能滿足計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)課程實(shí)驗(yàn)教學(xué)的需要,而且也為網(wǎng)絡(luò)工程技術(shù)人員提供了一個(gè)進(jìn)行新技能學(xué)習(xí)與驗(yàn)證真實(shí)環(huán)境下網(wǎng)絡(luò)配置的環(huán)境。
本文通過(guò)分析比較各種主流網(wǎng)絡(luò)仿真軟件,對(duì)基于虛擬化技術(shù)網(wǎng)絡(luò)仿真實(shí)驗(yàn)環(huán)境體系結(jié)構(gòu)的設(shè)計(jì)思路進(jìn)行介紹,并在此基礎(chǔ)上闡述路由器、交換機(jī)和防火墻等主要網(wǎng)絡(luò)設(shè)備仿真的實(shí)現(xiàn),最后對(duì)網(wǎng)絡(luò)仿真環(huán)境的實(shí)際應(yīng)用情況進(jìn)行說(shuō)明。
根據(jù)實(shí)現(xiàn)機(jī)制與應(yīng)用場(chǎng)景的不同,網(wǎng)絡(luò)仿真軟件主要可以分為3類:
1.網(wǎng)絡(luò)設(shè)備命令集仿真軟件:以Boson NetSim、Packet Tracer、eNSP、Gambit Mimic等軟件為代表,這類軟件的實(shí)現(xiàn)機(jī)制是通過(guò)預(yù)先編寫好的程序指令,對(duì)真實(shí)網(wǎng)絡(luò)設(shè)備的命令輸入/輸出(包括命令響應(yīng)和調(diào)試信息等)進(jìn)行精確模擬,在接收用戶的輸入命令后輸出相關(guān)命令的執(zhí)行結(jié)果。其中Boson Netsim和Packet Tracer主要用于模擬思科路由器和交換機(jī)設(shè)備,Boson Netsim是業(yè)內(nèi)首個(gè)商業(yè)化的網(wǎng)絡(luò)設(shè)備仿真軟件,對(duì)其他網(wǎng)絡(luò)仿真軟件的開發(fā)具有重要的啟示意義, Paccket Tracer是思科公司提供的網(wǎng)絡(luò)設(shè)備仿真軟件。eNSP是華為公司提供的網(wǎng)絡(luò)設(shè)備仿真軟件,Gambit Mimic是一個(gè)能夠同時(shí)實(shí)現(xiàn)思科和Juniper多廠家設(shè)備模擬的軟件。此類仿真軟件支持的命令集有限,甚至部分命令參數(shù)提供不全,只能是盡量接近真實(shí)設(shè)備的模擬,用戶看到的也是模擬的輸出結(jié)果,并不是網(wǎng)絡(luò)設(shè)備的真實(shí)運(yùn)行情況。如果用戶輸入的命令和參數(shù)不在軟件預(yù)先設(shè)計(jì)的范圍內(nèi),則此類仿真軟件就無(wú)能為力,用戶只能在該環(huán)境下初步學(xué)習(xí)設(shè)備配置命令。
2.網(wǎng)絡(luò)設(shè)備運(yùn)行環(huán)境仿真軟件:這類軟件以Dynamips、Simware、Pemu等為代表,其實(shí)現(xiàn)機(jī)制是模擬出真實(shí)網(wǎng)絡(luò)設(shè)備運(yùn)行的硬件平臺(tái),然后在該模擬平臺(tái)上運(yùn)行真實(shí)網(wǎng)絡(luò)設(shè)備的操作系統(tǒng)。其中Dynamips用于模擬思科設(shè)備的運(yùn)行環(huán)境,Simware用于模擬H3C設(shè)備的運(yùn)行環(huán)境,Pemu主要用于模擬思科防火墻的硬件環(huán)境。由于用戶是在模擬出的硬件環(huán)境中直接運(yùn)行真實(shí)設(shè)備的操作系統(tǒng),所仿真的網(wǎng)絡(luò)設(shè)備具備物理設(shè)備的所有命令與功能特性。只要主機(jī)性能足夠,能夠再單臺(tái)主機(jī)上模擬出多臺(tái)網(wǎng)絡(luò)設(shè)備,并將它們連接成虛擬網(wǎng)絡(luò),并與主機(jī)上的真實(shí)網(wǎng)卡或安裝的虛擬機(jī)(如Vmware和Qemu等)的虛擬網(wǎng)卡相連,具備很強(qiáng)的擴(kuò)展性,仿真的網(wǎng)絡(luò)環(huán)境具有與真實(shí)網(wǎng)絡(luò)環(huán)境完全一致的響應(yīng)。
3.網(wǎng)絡(luò)模型仿真軟件:這類軟件以O(shè)pnet、NS(包括NS2和NS3)、Qualnet等為代表,其實(shí)現(xiàn)機(jī)制是提供各種形式網(wǎng)絡(luò)模型庫(kù)和高級(jí)語(yǔ)言程序接口,模擬出需要的網(wǎng)絡(luò)模型進(jìn)行網(wǎng)絡(luò)的優(yōu)化設(shè)計(jì)、驗(yàn)證和分析。其中Opnet是一款商業(yè)軟件,由ItDecisionGuru、Modeler、Modeler/Radio3個(gè)模塊嵌套組成,能夠?yàn)榫W(wǎng)絡(luò)的規(guī)劃設(shè)計(jì)提供可靠的定量依據(jù),獲取定量的網(wǎng)絡(luò)性能預(yù)測(cè)數(shù)據(jù)。NS是一款開源的仿真工具,通過(guò)離散事件模擬技術(shù)實(shí)現(xiàn)仿真過(guò)程,沒(méi)有特定的設(shè)備模型,適用性較高。QualNet主要用于無(wú)線移動(dòng)通信網(wǎng)絡(luò)的仿真,能夠?qū)o(wú)線網(wǎng)絡(luò)的性能進(jìn)行優(yōu)化。此類軟件主要提供給從事網(wǎng)絡(luò)科研工作的人員使用,在網(wǎng)絡(luò)課程的實(shí)驗(yàn)教學(xué)中不會(huì)用到。
經(jīng)比較,第二類仿真軟件最適用于計(jì)算機(jī)網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)仿真環(huán)境的構(gòu)建,因此將重點(diǎn)介紹基于第二類軟件設(shè)計(jì)的網(wǎng)絡(luò)仿真環(huán)境體系結(jié)構(gòu)。
圖1 網(wǎng)絡(luò)仿真環(huán)境體系結(jié)構(gòu)
計(jì)算機(jī)網(wǎng)絡(luò)是利用通信鏈路和網(wǎng)絡(luò)設(shè)備將處于不同地理位置的計(jì)算機(jī)連接起來(lái),在網(wǎng)絡(luò)操作系統(tǒng)的控制下實(shí)現(xiàn)資源共享與信息交換的系統(tǒng)。構(gòu)建網(wǎng)絡(luò)仿真環(huán)境的關(guān)鍵包括實(shí)現(xiàn)網(wǎng)絡(luò)操作系統(tǒng)的仿真、網(wǎng)絡(luò)設(shè)備的仿真以及通信鏈路的仿真,可以通過(guò)虛擬化技術(shù)和網(wǎng)絡(luò)仿真軟件達(dá)到目的。在以上比較分析各類網(wǎng)絡(luò)仿真軟件的基礎(chǔ)上,按照層次化原則基于虛擬化技術(shù)設(shè)計(jì)了網(wǎng)絡(luò)仿真環(huán)境的體系結(jié)構(gòu),如圖1所示。
從圖1中可見,網(wǎng)絡(luò)仿真環(huán)境的底層是計(jì)算機(jī)系統(tǒng)的硬件,包括內(nèi)存、硬盤、顯卡、網(wǎng)卡等,第二層是運(yùn)行在其上的主機(jī)系統(tǒng)(包括Windows、Linux和MAC等),第三層則是網(wǎng)絡(luò)操作系統(tǒng)虛擬化軟件(包括Vmware和Qemu),通過(guò)引入虛擬化技術(shù)能夠在在主機(jī)系統(tǒng)中仿真出不同的客戶系統(tǒng),模擬出不同規(guī)模的網(wǎng)絡(luò)仿真環(huán)境。第四層是網(wǎng)絡(luò)設(shè)備硬件運(yùn)行環(huán)境仿真軟件(包括Dynamips/Dynamgen、Pemu等),其中Dynamips/Dynagen主要用于路由器與交換機(jī)的仿真,Pemu用于硬件防火墻的仿真。第五層是整個(gè)體系結(jié)構(gòu)的最高層,主要用于圖形化的界面管理,也提供通信鏈路仿真的功能,并在一定程度上提供對(duì)網(wǎng)絡(luò)操作系統(tǒng)的仿真支持。由此可見,按照層次化原則設(shè)計(jì)的基于虛擬化技術(shù)的網(wǎng)絡(luò)仿真環(huán)境體系結(jié)構(gòu)具有很強(qiáng)的擴(kuò)展性與適應(yīng)性,必要時(shí)更能夠通過(guò)分布式部署實(shí)現(xiàn)對(duì)大規(guī)模網(wǎng)絡(luò)仿真環(huán)境的支持,能夠適用于不同規(guī)模的網(wǎng)絡(luò)仿真需求。下面闡述路由器、交換機(jī)和防火墻等主要網(wǎng)絡(luò)設(shè)備部件仿真的實(shí)現(xiàn)過(guò)程。
基于Dynamips的路由器與交換機(jī)仿真
路由器是一個(gè)完整的硬件和軟件結(jié)合的平臺(tái),底層是硬件,上層是操作系統(tǒng)。Dynamips是法國(guó)UTC大學(xué) (University of Technology of Compiegn)的Christophe Fillot開發(fā)的一個(gè)路由器硬件環(huán)境模擬軟件,可以運(yùn)行在Windows、Linux以及Mac平臺(tái)上,Vmware和Qemu等虛擬化軟件是在物理機(jī)上虛擬出邏輯機(jī),而Dynamips是在主機(jī)系統(tǒng)(也可以是主機(jī)系統(tǒng)上虛擬化出來(lái)的客戶系統(tǒng))上模擬出獨(dú)立的路由器硬件環(huán)境,在此環(huán)境下直接運(yùn)行思科公司的路由器操作系統(tǒng)IOS,可以在一個(gè)或多個(gè)物理計(jì)算機(jī)上建立多個(gè)虛擬路由器,這些虛擬路由器具有真實(shí)路由器的所有命令與功能特性。通過(guò)winpcap的支持,Dynamips還能夠?qū)⒅鳈C(jī)系統(tǒng)上的物理網(wǎng)卡或客戶系統(tǒng)上的虛擬網(wǎng)卡作為模擬出路由器的通信接口,不同的路由器可以同時(shí)運(yùn)行并且互聯(lián)成網(wǎng)絡(luò),并能與真實(shí)網(wǎng)絡(luò)通信。目前支持的思科路由器型號(hào)主要有7200、3600系列(包括3620、3640和3660)、3700系列 (包括3725和3745)、2600系列(包括2691、2610到2650XM)以及1700系列等。由于思科路由器是業(yè)內(nèi)應(yīng)用最為廣泛的路由器平臺(tái),其他廠家路由器的工作原理與之類似,區(qū)別只是在于命令的不同,掌握了思科路由器的配置方法基本就掌握了其他廠家路由器的配置方法。因此,網(wǎng)絡(luò)仿真實(shí)驗(yàn)環(huán)境下主要基于Dynamips實(shí)現(xiàn)了對(duì)思科路由器的仿真。
通過(guò)執(zhí)行“/bin/dynamips/dynamipswxp.exe”即可啟動(dòng)Dynamips仿真平臺(tái)。Dynamips雖然不直接支持思科Catalyst交換機(jī)的仿真,但是支持在2600、3600和3700等路由器(需要12.2(8)T以上的iOS版本支持)上添加NM-16ESW模塊來(lái)實(shí)現(xiàn)交換機(jī)常見功能的模擬。NM-16ESW是一塊16口具備交換功能的網(wǎng)絡(luò)模塊,將該模塊插入到路由器的NM模塊插槽中,路由器就能提供16個(gè)以太網(wǎng)接口,得到一個(gè)模擬的16口交換機(jī),在仿真出的交換機(jī)上能夠完成包括生成樹、VLAN劃分配置、QoS等在內(nèi)的各種交換實(shí)驗(yàn)。
文本控制前端
由于Dynamips配置需要手工編寫很長(zhǎng)的命令,設(shè)定各種參數(shù)及upd端口號(hào)等才能啟動(dòng)路由器,當(dāng)網(wǎng)絡(luò)規(guī)模較大時(shí),拓?fù)浣Y(jié)構(gòu)參數(shù)的修改和配置更為復(fù)雜。Dynagen是基于Python語(yǔ)言開發(fā)的一個(gè)用來(lái)簡(jiǎn)化Dynamips配置的文本控制前端程序,基于模塊化設(shè)計(jì),支持主流操作系統(tǒng),通過(guò)使用Dynamips提供的OOP API接口,按照規(guī)范編寫配置文件就能完成各種網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì),更改需要路由器的數(shù)目、型號(hào)、模塊數(shù)量和IOS等。
通過(guò)執(zhí)行/bin/dynagen/dynagen.exe etlab.net將啟動(dòng)配置文件lab.net中指定的拓?fù)?,還可用通過(guò)list、start、stop等命令行列出、啟動(dòng)、停止所仿真的設(shè)備,如果需要登錄某臺(tái)設(shè)備,只需要Telnet本地機(jī)器的相應(yīng)端口(該端口在net配置文件中指定)。Dynagen不僅簡(jiǎn)化了網(wǎng)絡(luò)仿真環(huán)境的創(chuàng)建工作,而且能夠與多臺(tái)主機(jī)上的Dynamips主機(jī)通信,支持分布式Dynamips的部署。
圖形控制前端
在運(yùn)行很多臺(tái)路由器時(shí),修改Dynagen配置文件仍然顯得復(fù)雜,在Dynagen的基礎(chǔ)上繼續(xù)開發(fā)了Dynamips的圖形化控制前端,主要有DynamipsGUI、GNS3等軟件,此類軟件能夠通過(guò)圖形界面配置向?qū)尚枰負(fù)浣Y(jié)構(gòu)的配置文件,使用起來(lái)更為簡(jiǎn)便。
DynamipsGUI是支持自定義網(wǎng)絡(luò)拓?fù)涞膱D形界面前端,運(yùn)行于Windows平臺(tái),不僅支持思科路由器與交換機(jī)的仿真,也通過(guò)VPCS(Virtual PC Simulator)支持主機(jī)的模擬,同時(shí)提供多種連接方式(如PSTN、ISDN、PPP等)的仿真。用戶只要通過(guò)圖形界面就能自主完成網(wǎng)絡(luò)拓?fù)涞脑O(shè)計(jì),同時(shí)生成相應(yīng)的bat文件,通過(guò)執(zhí)行bat文件即可啟用網(wǎng)絡(luò)仿真環(huán)境。
GNS3是基于python開發(fā)的開源軟件,能夠運(yùn)行在多平臺(tái)(包括Windows、Linux、和 MacOS等),與DynamipsGUI相比,功能更為強(qiáng)大。由于其圖形部分通過(guò)PyQt使用Qt庫(kù),采用SVG技術(shù)(擴(kuò)展的向量圖形)提供高質(zhì)量的圖標(biāo)用于網(wǎng)絡(luò)拓?fù)湓O(shè)計(jì),因此在創(chuàng)建、更改和保存網(wǎng)絡(luò)拓?fù)浞矫娓鼮榉奖?,用戶可以在圖形用戶界面上直接使用拖曳方法建立網(wǎng)絡(luò)拓?fù)洹NS3還能通過(guò)配置cCloud與本地網(wǎng)卡或虛擬網(wǎng)卡連接,支持從仿真設(shè)備的接口上捕獲分組到libpcap文件,再通過(guò)協(xié)議分析軟件WireShark對(duì)其進(jìn)行分析,這樣可以進(jìn)一步了解數(shù)據(jù)包在網(wǎng)絡(luò)中處理的詳細(xì)過(guò)程,實(shí)時(shí)觀察網(wǎng)絡(luò)運(yùn)行情況。GNS3不僅支持VPCS模擬PC,而且內(nèi)置了集成Linux微內(nèi)核的鏡像,能夠避免虛擬主機(jī)占用更多的內(nèi)存,提高了系統(tǒng)的性能。
通過(guò)一些優(yōu)化措施,在一臺(tái)物理主機(jī)上能夠通過(guò)Dynamips仿真出10臺(tái)左右網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)環(huán)境,基本能滿足各種網(wǎng)絡(luò)實(shí)驗(yàn)的需求。這些措施包括:避免使用最新的IOS,如在滿足實(shí)驗(yàn)需求的前提下,用12.2版本代替12.4版本,能夠節(jié)約內(nèi)存和CPU的使用;在使用多個(gè)路由器時(shí),通過(guò)Sparemen只為虛擬路由器正在使用的IOS分配虛擬內(nèi)存;通過(guò)Ghostios使得內(nèi)存中只需要存放一個(gè)IOS鏡像即可支持多臺(tái)路由器,降低了對(duì)內(nèi)存的消耗;合理計(jì)算idlepc值降低CPU利用率等。
基于Qemu的防火墻仿真
Qemu是一套類似Vmware的操作系統(tǒng)虛擬化軟件,雖然Qemu基于文字指令和參數(shù)使用,其易用性遠(yuǎn)遠(yuǎn)不如Vmware的圖形用戶界面,但仿真的客戶系統(tǒng)運(yùn)行效率更高,更適用于主機(jī)硬件資源有限的網(wǎng)絡(luò)仿真環(huán)境。Qemu仿真出的虛擬客戶系統(tǒng)擁有獨(dú)立的虛擬硬件設(shè)備,從各個(gè)虛擬客戶系統(tǒng)角度看,它們都是一個(gè)完整的系統(tǒng),但從主機(jī)系統(tǒng)的角度來(lái)看,每個(gè)客戶系統(tǒng)都是其上獨(dú)立運(yùn)行的應(yīng)用進(jìn)程,它們分別采用獨(dú)立的地址空間,彼此之間沒(méi)有任何關(guān)聯(lián)。虛擬客戶系統(tǒng)的資源都來(lái)自于物理機(jī),只要主機(jī)系統(tǒng)的內(nèi)存足夠大,CPU性能足夠好,理論上在主機(jī)系統(tǒng)中可以虛擬出不限數(shù)目的客戶系統(tǒng)。
Pemu是運(yùn)行在Qemu軟件上的一個(gè)防火墻運(yùn)行環(huán)境仿真軟件,與Dynamips類似,模擬出的是防火墻的硬件環(huán)境,在該環(huán)境下運(yùn)行思科防火墻的操作系統(tǒng),通過(guò)編輯pemu.ini配置文件執(zhí)行pix.sh,對(duì)思科防火墻PIX 525和ASA5520等安全設(shè)備提供了仿真支持,可以通過(guò)橋接方式將仿真防火墻網(wǎng)卡與真實(shí)網(wǎng)卡連接,實(shí)現(xiàn)與真實(shí)網(wǎng)絡(luò)環(huán)境通信。
目前,我校在該仿真環(huán)境下開展了“計(jì)算機(jī)網(wǎng)絡(luò)”、“中級(jí)網(wǎng)絡(luò)管理”、“網(wǎng)絡(luò)與系統(tǒng)原理”、“IPv6與下一代互聯(lián)網(wǎng)”等多門網(wǎng)絡(luò)課程的實(shí)驗(yàn)教學(xué),與傳統(tǒng)的網(wǎng)絡(luò)實(shí)驗(yàn)環(huán)境相比,基于虛擬化技術(shù)構(gòu)建的網(wǎng)絡(luò)仿真實(shí)驗(yàn)環(huán)境具有以下優(yōu)點(diǎn):1.能夠減少購(gòu)買專門的網(wǎng)絡(luò)硬件設(shè)備,降低了計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)課程實(shí)驗(yàn)教學(xué)的成本;2.能夠更簡(jiǎn)便高效地完成之前需要多臺(tái)網(wǎng)絡(luò)設(shè)備才能完成的網(wǎng)絡(luò)實(shí)驗(yàn),讓更多的學(xué)生同時(shí)進(jìn)行實(shí)驗(yàn);3.只需要通過(guò)備份和恢復(fù)網(wǎng)絡(luò)拓?fù)渑渲梦募纯赏瓿删W(wǎng)絡(luò)實(shí)驗(yàn)拓?fù)涞谋4媾c創(chuàng)建,大大提高了網(wǎng)絡(luò)實(shí)驗(yàn)教學(xué)的效率。
實(shí)踐證明,學(xué)生不僅能在該環(huán)境下快速搭建所需要的各種拓?fù)浣Y(jié)構(gòu),學(xué)習(xí)各種網(wǎng)絡(luò)設(shè)備、操作系統(tǒng)和協(xié)議分析軟件的配置方法,深入理解與掌握網(wǎng)絡(luò)管理技術(shù),達(dá)到理論與實(shí)踐結(jié)合目的。網(wǎng)絡(luò)工程技術(shù)人員也能在該環(huán)境下迅速方便地測(cè)試和驗(yàn)證真實(shí)網(wǎng)絡(luò)環(huán)境下的設(shè)備配置與設(shè)備特性,利用該環(huán)境學(xué)習(xí)新的網(wǎng)絡(luò)知識(shí)技能。最后需要指出的是,網(wǎng)絡(luò)仿真環(huán)境雖然是網(wǎng)絡(luò)課程學(xué)習(xí)和實(shí)驗(yàn)的重要輔助工具,但是只能模擬出真實(shí)網(wǎng)絡(luò)設(shè)備的功能,并不能模擬出真實(shí)網(wǎng)絡(luò)設(shè)備的性能,由于運(yùn)行在虛擬平臺(tái)之上,快速轉(zhuǎn)發(fā)能力等性能指標(biāo)遠(yuǎn)遠(yuǎn)不如真實(shí)設(shè)備,不能在生產(chǎn)性網(wǎng)絡(luò)中替代真實(shí)的網(wǎng)絡(luò)設(shè)備。?