陳曦 吳濤
[摘 要] 該文探討了網(wǎng)絡(luò)模擬仿真中存在的問題,提出在教學(xué)中以輕量級虛擬化技術(shù)作為網(wǎng)絡(luò)模擬手段,搭建高保真、易編程的實驗環(huán)境,提供虛擬網(wǎng)絡(luò)拓?fù)涞脑O(shè)計部署、用戶流量的靈活注入、網(wǎng)絡(luò)指標(biāo)的監(jiān)控統(tǒng)計等功能,支撐研究生和本科階段計算網(wǎng)絡(luò)教學(xué)。
[關(guān)鍵詞] 計算機網(wǎng)絡(luò);網(wǎng)絡(luò)模擬;網(wǎng)絡(luò)仿真;網(wǎng)絡(luò)虛擬化
[基金項目] 2017年度西南民族大學(xué)專業(yè)學(xué)位研究生教育專項項目(2017YJZX006);2015年度西南民族大學(xué)在線開放課程建設(shè)項目(2015KCJS07);2019年度國家民委“一帶一路”國別和區(qū)域研究中心東南亞研究中心項目(SE2019Y07);2019年度四川省科技計劃項目(2019YFG0110);2018年度中國博士后科學(xué)基金面上資助(2018M643448)
[作者簡介] 陳 曦(1985—),男,重慶永川人,西南民族大學(xué)計算機科學(xué)與工程學(xué)院副教授,電子科技大學(xué)信息與通信工程學(xué)院博士后,研究方向為計算機網(wǎng)絡(luò)、軟件定義網(wǎng)絡(luò);吳 濤(1984—),女,山東曲阜人,博士,成都信息工程大學(xué)計算機學(xué)院副教授(通信作者),主要從事邊緣計算、計算智能研究。
[中圖分類號] TP393? ? [文獻(xiàn)標(biāo)識碼] A? ? [文章編號] 1674-9324(2020)38-0371-02? ? [收稿日期] 2020-07-10
一、引言
研究生和本科階段的計算網(wǎng)絡(luò)教學(xué)離不開基于軟件的網(wǎng)絡(luò)驗證。網(wǎng)絡(luò)驗證主要包括以下兩大范疇:
1.網(wǎng)絡(luò)仿真(Simulation):利用軟件模仿真實網(wǎng)絡(luò)的運行過程。其優(yōu)點包括:執(zhí)行速度快,具備壓縮的時間軸,因而可快速得到實驗結(jié)果;由于網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)設(shè)備均用自定義的進(jìn)程替代,因此可以方便地通過程序腳本快速部署網(wǎng)絡(luò)拓?fù)浜蛻?yīng)用。其缺點包括:協(xié)議實現(xiàn)與真實協(xié)議有差異,并非真正運行協(xié)議本身,因而網(wǎng)絡(luò)運行的還原度較低。其典型的代表包括:OMNeT++、NS3、OPNET等。
2.網(wǎng)絡(luò)模擬(Emulation):利用軟件再現(xiàn)真實網(wǎng)絡(luò)的運行過程。其優(yōu)點包括:在協(xié)議方面,運行真實協(xié)議,發(fā)送標(biāo)準(zhǔn)分組,對網(wǎng)絡(luò)運行的還原度高;在設(shè)備方面,提供接近真實網(wǎng)絡(luò)設(shè)備的配置接口、調(diào)用接口。缺點包括:由于運行了基本完整的網(wǎng)絡(luò)協(xié)議棧,對運算資源需求較大,因此部署大規(guī)模網(wǎng)絡(luò)較為困難;操作上主要依賴于人工配置和運行;網(wǎng)絡(luò)協(xié)議棧不包含用戶流量生成模塊,因此不同流量模型下的大規(guī)模流量注入不便;需額外調(diào)用多種工具用于分析研究。其典型代表包括:Mininet[1]、GNS3、CISCO Packet Tracer、PlanetLab[2]等。
為克服上述局限性,本文研究將輕量級虛擬化技術(shù)如Docker[3]、SDN(Software-Defined Networking,軟件定義網(wǎng)絡(luò))[4]應(yīng)用在計算機網(wǎng)絡(luò)教學(xué)中,面向研究生和本科階段計算網(wǎng)絡(luò)教學(xué),搭建高保真、易編程的實驗環(huán)境。
二、輕量級虛擬化技術(shù)的應(yīng)用
1.網(wǎng)絡(luò)拓?fù)涞脑O(shè)計部署:Docker作為本系統(tǒng)虛擬網(wǎng)絡(luò)部署的核心技術(shù),將Docker容器作為虛擬網(wǎng)絡(luò)的網(wǎng)絡(luò)節(jié)點,并結(jié)合OVS(Open vSwitch)[5]交換機提供網(wǎng)絡(luò)節(jié)點的網(wǎng)絡(luò)連通性。首先,Docker容器完整地封裝了網(wǎng)絡(luò)協(xié)議棧,并進(jìn)行隔離運行,是對真實網(wǎng)絡(luò)協(xié)議的高保真再現(xiàn)。相對于傳統(tǒng)的采用虛擬機模擬網(wǎng)絡(luò)節(jié)點的方法,Docker容器在實現(xiàn)良好隔離的基礎(chǔ)上,對于資源要求更低,易于大規(guī)模部署和擴展。其次,Docker具有豐富的鏡像倉庫,有助于模擬功能復(fù)雜的網(wǎng)絡(luò)(防火墻、深度包檢測等),更接近真實Internet。同時,Docker本身提供豐富的網(wǎng)絡(luò)支持,包括bridge、host、none、overlay、macvlan等網(wǎng)絡(luò)驅(qū)動,Calico等第三方網(wǎng)絡(luò)解決方案,使得網(wǎng)絡(luò)部署具有良好的可編程性。前端配合利用jQuery和jsPlumb實現(xiàn)了典型拓?fù)淠0?用戶手動拖拽的虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)設(shè)計界面,提供了教學(xué)的直觀性和操作的易用性,可方便地進(jìn)行虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計和部署。
2.用戶流量的靈活注入:利用Docker和OVS等技術(shù)將虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)部署到物理宿主機資源池之后,若沒有用戶流量的注入,則無法對數(shù)據(jù)平面的性能進(jìn)行有效評估。這就要求能夠在數(shù)量眾多的虛擬網(wǎng)絡(luò)端系統(tǒng)上進(jìn)行大規(guī)模的數(shù)據(jù)請求和響應(yīng)。在網(wǎng)絡(luò)模擬工具中(如GNS3、Packet Tracer等),主要依賴人工登錄端系統(tǒng)來手動觸發(fā)數(shù)據(jù)平面流量(例如手動Ping操作、訪問網(wǎng)頁等)。一方面,這樣的操作所產(chǎn)生的數(shù)據(jù)量小,難以匹配實際網(wǎng)絡(luò)的流量規(guī)模,也無法長期手工執(zhí)行,造成教學(xué)過程的操作繁瑣,容易出錯;另一方面,當(dāng)虛擬網(wǎng)絡(luò)包含大量端系統(tǒng)時,手工操作變得不可行。相比之下,在網(wǎng)絡(luò)仿真工具中(如OMNeT++、NS3等),雖然能以特定流量模型批量調(diào)用大量端系統(tǒng)注入用戶流量,但是,如前所述,其運行的并非實際網(wǎng)絡(luò)協(xié)議,而是仿真進(jìn)程,因此還原度、保真度相對于網(wǎng)絡(luò)模擬工具又大打折扣。為解決這一問題,本系統(tǒng)利用Docker等輕量級虛擬化技術(shù),以Docker容器形式模擬運行虛擬網(wǎng)絡(luò)端系統(tǒng)。Docker提供了各主流編程語言的API支持,無需人工操作容器,Docker API可以方便地啟停容器、調(diào)用容器內(nèi)部功能,實現(xiàn)腳本式、規(guī)模化管控,因此,可將注入用戶流量的邏輯腳本批量運行在模擬端系統(tǒng)的Docker容器中,無需人工干預(yù),即可實現(xiàn)海量用戶流量的靈活注入,大大提升了流量注入的可編程性。本系統(tǒng)中,用戶流量注入工具采用了docker-py作為與虛擬網(wǎng)絡(luò)端系統(tǒng)進(jìn)行交互的編程接口,將需要運行的容器內(nèi)部應(yīng)用程序及其所需參數(shù),通過docker-py的exec_run命令發(fā)送給Docker容器,從而根據(jù)參數(shù)執(zhí)行應(yīng)用,產(chǎn)生流量注入網(wǎng)絡(luò)。
3.網(wǎng)絡(luò)指標(biāo)的監(jiān)控統(tǒng)計:Docker本身提供了命令行工具,支持Docker容器級別的監(jiān)控,同時,第三方容器集群框架(如Kubernetes[3])可實現(xiàn)集中式全局監(jiān)控,從而實現(xiàn)粗、細(xì)粒度監(jiān)控的廣泛覆蓋。而OVS交換機受控于SDN控制器,利用LLDP協(xié)議進(jìn)行拓?fù)浒l(fā)現(xiàn)和心跳維護(hù),若將設(shè)備本身的帶寬、時延等網(wǎng)絡(luò)指標(biāo)封裝在可擴展的LLDP協(xié)議分組中,則可利用LLDP協(xié)議實現(xiàn)捎帶網(wǎng)絡(luò)指標(biāo)監(jiān)控、統(tǒng)計,并有效降低監(jiān)控、統(tǒng)計帶來的流量開銷。
4.在教學(xué)中的應(yīng)用:本系統(tǒng)的測試版本已在西南民族大學(xué)計算機網(wǎng)絡(luò)相關(guān)課程中投入了試點應(yīng)用,相關(guān)專業(yè)的研究生和本科生普遍反映本系統(tǒng)具有直觀性高、操作方便、易于理解等優(yōu)勢,降低了計算機網(wǎng)絡(luò)模擬操作的門檻,相對于傳統(tǒng)網(wǎng)絡(luò)模擬/仿真工具,在實驗過程中的出錯概率也大大降低,取得了良好的教學(xué)效果。
三、結(jié)束語
綜上所述,本文研究將輕量級虛擬化技術(shù)如Docker、SDN等應(yīng)用于計算機網(wǎng)絡(luò)的教學(xué)當(dāng)中,可以有效地提供網(wǎng)絡(luò)拓?fù)涞脑O(shè)計部署、用戶流量的靈活注入、網(wǎng)絡(luò)指標(biāo)的監(jiān)控統(tǒng)計等功能,深入地幫助理解網(wǎng)絡(luò)協(xié)議的工作原理,有效支撐研究生和本科階段計算網(wǎng)絡(luò)教學(xué)。
參考文獻(xiàn)
[1]Lantz B,Heller B,Mckeown N.A Network in a Laptop:Rapid Prototyping for Software-defined Networks[C]//Proceedings of the 9th ACM SIGCOMM Workshop on Hot Topics in Networks.Monterey,California:ACM,2010:19:1-19:6.
[2]Chun B,Culler D,Roscoe T.Planet Lab:An Overlay Test bed for Broad-coverage Services[J].SIGCOMM Comput.Commun.Rev,2003,33(3):3-12.
[3]Bernstein D.Containers and Cloud:From LXC to Docker to Kubernetes[J].IEEE Cloud Computing,2014,1(3):81-84.
[4]Mckeown N,Anderson T,Balakrishnan H.Open Flow:Enabling Innovation in Campus Networks[J].ACM SIGCOMM Computer Communication Review,2008,38(2):69-74.
[5]Pfaff B,Pettit J,Koponen T.The Design and Implementation of Open Switch[C]//12th USENIX Symposium on Networked Systems Design and Implementation (NSDI).Oakland,CA:USENIX Association,2015,40:117-130.
Study on the Application of Lightweight Network Virtualization Technologies in the Teaching of Computer Networks
CHEN Xi1,3,WU Tao2
(1.School of Computer Science and Engineering,Southwest Minzu University,Chengdu,Sichuan 610041,China;2.School of Computer Science,Chengdu University of Information Technology,Chengdu,Sichuan 610225,China;3.School of Information and Communication Engineering,University of Electronic Science and Technology of China,Chengdu,Sichuan 611731,China)
Abstract:This paper discusses the issues seen in network emulations and simulations.Lightweight network virtualization technologies are proposed to be applied in network emulations to provide a high-fidelity and easy-to-program experimentation environment.Key features such as topology design and deployment,flexible injection of user traffic,monitoring and statistics of network metrics are provided to support the teaching of computer networks for postgraduates and undergraduates.
Key words:computer networks;network emulation;network simulation;network virtualization