文 / 江魁 張園紅 楊文玲
在計算機網絡相關課程的教學環節中,網絡設備的配置和管理是其中的重點,但由于路由器等專用網絡硬件設備數量有限,學生往往只能多人共用一套網絡設備,尤其對于需要多臺網絡設備完成的大型網絡實驗更是如此。由于數據在網絡傳輸過程中的相互影響與學生操作上的相互干擾,學生很難掌握網絡設備操作的實際技能,不能全面了解計算機網絡的運行機制。
基于虛擬化技術以軟件方式仿真各種網絡硬件設備,從而構建真實網絡的仿真實驗環境是解決這一問題的方法之一,不僅能節約硬件設備的購置資金,同時還能讓更多的學生同時進行實驗。本文在對各種主流網絡仿真軟件分析和比較的基礎上,基于Dynamips等仿真軟件構建了包括路由器、交換機、防火墻等各種網絡設備在內的網絡仿真環境,為學生和教師提供了一個與真實網絡體驗完全一致的學習和實驗環境,不僅能滿足計算機網絡相關課程實驗教學的需要,而且也為網絡工程技術人員提供了一個進行新技能學習與驗證真實環境下網絡配置的環境。
本文通過分析比較各種主流網絡仿真軟件,對基于虛擬化技術網絡仿真實驗環境體系結構的設計思路進行介紹,并在此基礎上闡述路由器、交換機和防火墻等主要網絡設備仿真的實現,最后對網絡仿真環境的實際應用情況進行說明。

根據實現機制與應用場景的不同,網絡仿真軟件主要可以分為3類:
1.網絡設備命令集仿真軟件:以Boson NetSim、Packet Tracer、eNSP、Gambit Mimic等軟件為代表,這類軟件的實現機制是通過預先編寫好的程序指令,對真實網絡設備的命令輸入/輸出(包括命令響應和調試信息等)進行精確模擬,在接收用戶的輸入命令后輸出相關命令的執行結果。其中Boson Netsim和Packet Tracer主要用于模擬思科路由器和交換機設備,Boson Netsim是業內首個商業化的網絡設備仿真軟件,對其他網絡仿真軟件的開發具有重要的啟示意義, Paccket Tracer是思科公司提供的網絡設備仿真軟件。eNSP是華為公司提供的網絡設備仿真軟件,Gambit Mimic是一個能夠同時實現思科和Juniper多廠家設備模擬的軟件。此類仿真軟件支持的命令集有限,甚至部分命令參數提供不全,只能是盡量接近真實設備的模擬,用戶看到的也是模擬的輸出結果,并不是網絡設備的真實運行情況。如果用戶輸入的命令和參數不在軟件預先設計的范圍內,則此類仿真軟件就無能為力,用戶只能在該環境下初步學習設備配置命令。
2.網絡設備運行環境仿真軟件:這類軟件以Dynamips、Simware、Pemu等為代表,其實現機制是模擬出真實網絡設備運行的硬件平臺,然后在該模擬平臺上運行真實網絡設備的操作系統。其中Dynamips用于模擬思科設備的運行環境,Simware用于模擬H3C設備的運行環境,Pemu主要用于模擬思科防火墻的硬件環境。由于用戶是在模擬出的硬件環境中直接運行真實設備的操作系統,所仿真的網絡設備具備物理設備的所有命令與功能特性。只要主機性能足夠,能夠再單臺主機上模擬出多臺網絡設備,并將它們連接成虛擬網絡,并與主機上的真實網卡或安裝的虛擬機(如Vmware和Qemu等)的虛擬網卡相連,具備很強的擴展性,仿真的網絡環境具有與真實網絡環境完全一致的響應。
3.網絡模型仿真軟件:這類軟件以Opnet、NS(包括NS2和NS3)、Qualnet等為代表,其實現機制是提供各種形式網絡模型庫和高級語言程序接口,模擬出需要的網絡模型進行網絡的優化設計、驗證和分析。其中Opnet是一款商業軟件,由ItDecisionGuru、Modeler、Modeler/Radio3個模塊嵌套組成,能夠為網絡的規劃設計提供可靠的定量依據,獲取定量的網絡性能預測數據。NS是一款開源的仿真工具,通過離散事件模擬技術實現仿真過程,沒有特定的設備模型,適用性較高。QualNet主要用于無線移動通信網絡的仿真,能夠對無線網絡的性能進行優化。此類軟件主要提供給從事網絡科研工作的人員使用,在網絡課程的實驗教學中不會用到。
經比較,第二類仿真軟件最適用于計算機網絡實驗教學仿真環境的構建,因此將重點介紹基于第二類軟件設計的網絡仿真環境體系結構。

圖1 網絡仿真環境體系結構
計算機網絡是利用通信鏈路和網絡設備將處于不同地理位置的計算機連接起來,在網絡操作系統的控制下實現資源共享與信息交換的系統。構建網絡仿真環境的關鍵包括實現網絡操作系統的仿真、網絡設備的仿真以及通信鏈路的仿真,可以通過虛擬化技術和網絡仿真軟件達到目的。在以上比較分析各類網絡仿真軟件的基礎上,按照層次化原則基于虛擬化技術設計了網絡仿真環境的體系結構,如圖1所示。
從圖1中可見,網絡仿真環境的底層是計算機系統的硬件,包括內存、硬盤、顯卡、網卡等,第二層是運行在其上的主機系統(包括Windows、Linux和MAC等),第三層則是網絡操作系統虛擬化軟件(包括Vmware和Qemu),通過引入虛擬化技術能夠在在主機系統中仿真出不同的客戶系統,模擬出不同規模的網絡仿真環境。第四層是網絡設備硬件運行環境仿真軟件(包括Dynamips/Dynamgen、Pemu等),其中Dynamips/Dynagen主要用于路由器與交換機的仿真,Pemu用于硬件防火墻的仿真。第五層是整個體系結構的最高層,主要用于圖形化的界面管理,也提供通信鏈路仿真的功能,并在一定程度上提供對網絡操作系統的仿真支持。由此可見,按照層次化原則設計的基于虛擬化技術的網絡仿真環境體系結構具有很強的擴展性與適應性,必要時更能夠通過分布式部署實現對大規模網絡仿真環境的支持,能夠適用于不同規模的網絡仿真需求。下面闡述路由器、交換機和防火墻等主要網絡設備部件仿真的實現過程。
基于Dynamips的路由器與交換機仿真
路由器是一個完整的硬件和軟件結合的平臺,底層是硬件,上層是操作系統。Dynamips是法國UTC大學 (University of Technology of Compiegn)的Christophe Fillot開發的一個路由器硬件環境模擬軟件,可以運行在Windows、Linux以及Mac平臺上,Vmware和Qemu等虛擬化軟件是在物理機上虛擬出邏輯機,而Dynamips是在主機系統(也可以是主機系統上虛擬化出來的客戶系統)上模擬出獨立的路由器硬件環境,在此環境下直接運行思科公司的路由器操作系統IOS,可以在一個或多個物理計算機上建立多個虛擬路由器,這些虛擬路由器具有真實路由器的所有命令與功能特性。通過winpcap的支持,Dynamips還能夠將主機系統上的物理網卡或客戶系統上的虛擬網卡作為模擬出路由器的通信接口,不同的路由器可以同時運行并且互聯成網絡,并能與真實網絡通信。目前支持的思科路由器型號主要有7200、3600系列(包括3620、3640和3660)、3700系列 (包括3725和3745)、2600系列(包括2691、2610到2650XM)以及1700系列等。由于思科路由器是業內應用最為廣泛的路由器平臺,其他廠家路由器的工作原理與之類似,區別只是在于命令的不同,掌握了思科路由器的配置方法基本就掌握了其他廠家路由器的配置方法。因此,網絡仿真實驗環境下主要基于Dynamips實現了對思科路由器的仿真。
通過執行“/bin/dynamips/dynamipswxp.exe”即可啟動Dynamips仿真平臺。Dynamips雖然不直接支持思科Catalyst交換機的仿真,但是支持在2600、3600和3700等路由器(需要12.2(8)T以上的iOS版本支持)上添加NM-16ESW模塊來實現交換機常見功能的模擬。NM-16ESW是一塊16口具備交換功能的網絡模塊,將該模塊插入到路由器的NM模塊插槽中,路由器就能提供16個以太網接口,得到一個模擬的16口交換機,在仿真出的交換機上能夠完成包括生成樹、VLAN劃分配置、QoS等在內的各種交換實驗。
文本控制前端
由于Dynamips配置需要手工編寫很長的命令,設定各種參數及upd端口號等才能啟動路由器,當網絡規模較大時,拓撲結構參數的修改和配置更為復雜。Dynagen是基于Python語言開發的一個用來簡化Dynamips配置的文本控制前端程序,基于模塊化設計,支持主流操作系統,通過使用Dynamips提供的OOP API接口,按照規范編寫配置文件就能完成各種網絡拓撲結構的設計,更改需要路由器的數目、型號、模塊數量和IOS等。
通過執行/bin/dynagen/dynagen.exe etlab.net將啟動配置文件lab.net中指定的拓撲,還可用通過list、start、stop等命令行列出、啟動、停止所仿真的設備,如果需要登錄某臺設備,只需要Telnet本地機器的相應端口(該端口在net配置文件中指定)。Dynagen不僅簡化了網絡仿真環境的創建工作,而且能夠與多臺主機上的Dynamips主機通信,支持分布式Dynamips的部署。
圖形控制前端
在運行很多臺路由器時,修改Dynagen配置文件仍然顯得復雜,在Dynagen的基礎上繼續開發了Dynamips的圖形化控制前端,主要有DynamipsGUI、GNS3等軟件,此類軟件能夠通過圖形界面配置向導生成需要拓撲結構的配置文件,使用起來更為簡便。
DynamipsGUI是支持自定義網絡拓撲的圖形界面前端,運行于Windows平臺,不僅支持思科路由器與交換機的仿真,也通過VPCS(Virtual PC Simulator)支持主機的模擬,同時提供多種連接方式(如PSTN、ISDN、PPP等)的仿真。用戶只要通過圖形界面就能自主完成網絡拓撲的設計,同時生成相應的bat文件,通過執行bat文件即可啟用網絡仿真環境。
GNS3是基于python開發的開源軟件,能夠運行在多平臺(包括Windows、Linux、和 MacOS等),與DynamipsGUI相比,功能更為強大。由于其圖形部分通過PyQt使用Qt庫,采用SVG技術(擴展的向量圖形)提供高質量的圖標用于網絡拓撲設計,因此在創建、更改和保存網絡拓撲方面更為方便,用戶可以在圖形用戶界面上直接使用拖曳方法建立網絡拓撲。GNS3還能通過配置cCloud與本地網卡或虛擬網卡連接,支持從仿真設備的接口上捕獲分組到libpcap文件,再通過協議分析軟件WireShark對其進行分析,這樣可以進一步了解數據包在網絡中處理的詳細過程,實時觀察網絡運行情況。GNS3不僅支持VPCS模擬PC,而且內置了集成Linux微內核的鏡像,能夠避免虛擬主機占用更多的內存,提高了系統的性能。
通過一些優化措施,在一臺物理主機上能夠通過Dynamips仿真出10臺左右網絡設備的網絡環境,基本能滿足各種網絡實驗的需求。這些措施包括:避免使用最新的IOS,如在滿足實驗需求的前提下,用12.2版本代替12.4版本,能夠節約內存和CPU的使用;在使用多個路由器時,通過Sparemen只為虛擬路由器正在使用的IOS分配虛擬內存;通過Ghostios使得內存中只需要存放一個IOS鏡像即可支持多臺路由器,降低了對內存的消耗;合理計算idlepc值降低CPU利用率等。
基于Qemu的防火墻仿真
Qemu是一套類似Vmware的操作系統虛擬化軟件,雖然Qemu基于文字指令和參數使用,其易用性遠遠不如Vmware的圖形用戶界面,但仿真的客戶系統運行效率更高,更適用于主機硬件資源有限的網絡仿真環境。Qemu仿真出的虛擬客戶系統擁有獨立的虛擬硬件設備,從各個虛擬客戶系統角度看,它們都是一個完整的系統,但從主機系統的角度來看,每個客戶系統都是其上獨立運行的應用進程,它們分別采用獨立的地址空間,彼此之間沒有任何關聯。虛擬客戶系統的資源都來自于物理機,只要主機系統的內存足夠大,CPU性能足夠好,理論上在主機系統中可以虛擬出不限數目的客戶系統。
Pemu是運行在Qemu軟件上的一個防火墻運行環境仿真軟件,與Dynamips類似,模擬出的是防火墻的硬件環境,在該環境下運行思科防火墻的操作系統,通過編輯pemu.ini配置文件執行pix.sh,對思科防火墻PIX 525和ASA5520等安全設備提供了仿真支持,可以通過橋接方式將仿真防火墻網卡與真實網卡連接,實現與真實網絡環境通信。
目前,我校在該仿真環境下開展了“計算機網絡”、“中級網絡管理”、“網絡與系統原理”、“IPv6與下一代互聯網”等多門網絡課程的實驗教學,與傳統的網絡實驗環境相比,基于虛擬化技術構建的網絡仿真實驗環境具有以下優點:1.能夠減少購買專門的網絡硬件設備,降低了計算機網絡相關課程實驗教學的成本;2.能夠更簡便高效地完成之前需要多臺網絡設備才能完成的網絡實驗,讓更多的學生同時進行實驗;3.只需要通過備份和恢復網絡拓撲配置文件即可完成網絡實驗拓撲的保存與創建,大大提高了網絡實驗教學的效率。
實踐證明,學生不僅能在該環境下快速搭建所需要的各種拓撲結構,學習各種網絡設備、操作系統和協議分析軟件的配置方法,深入理解與掌握網絡管理技術,達到理論與實踐結合目的。網絡工程技術人員也能在該環境下迅速方便地測試和驗證真實網絡環境下的設備配置與設備特性,利用該環境學習新的網絡知識技能。最后需要指出的是,網絡仿真環境雖然是網絡課程學習和實驗的重要輔助工具,但是只能模擬出真實網絡設備的功能,并不能模擬出真實網絡設備的性能,由于運行在虛擬平臺之上,快速轉發能力等性能指標遠遠不如真實設備,不能在生產性網絡中替代真實的網絡設備。?