王曉鋒 吳文燕 孔軍 蔣敏
摘 要 基于OpenStack云平臺,構建計算機網絡課程仿真實驗,可滿足可擴展、高逼真、開放式的實踐教學需要。分析OpenStack云平臺在計算機網絡實驗教學中面臨的問題,研究虛擬路由器、虛擬鏈路等關鍵要素的構建方法。面向路由協議以及TCP協議等實踐教學環節,構建典型的仿真場景,驗證基于云平臺仿真實驗的有效性。
關鍵詞 計算機網絡課程;OpenStack云平臺;仿真實驗
中圖分類號:TP391.9 文獻標識碼:B
文章編號:1671-489X(2018)02-0123-04
1 前言
計算機網絡課程是高等學校計算機科學與技術專業的核心課程,具有實踐性強的特點。為加深學生對計算機網絡課程理論知識的理解,培養學生對計算機網絡領域的實踐與創新能力,各高校計算機網絡課程都設置了實驗與實踐課程。以各種交換機、路由器等物理設備構建的實驗環境存在運維成本高、靈活性低等缺點;基于各種網絡模擬與仿真軟件構建的虛擬仿真平臺,成為計算機網絡實踐教學的重要支撐[1]。
基于經典的NS2、NS3等開源的網絡模擬軟件,可構建面向計算機網絡實驗的虛擬仿真場景[2],但存在真實計算機網絡應用軟件無法加載,仿真界面效果差等缺點,導致教學實驗可操作性差;OPNET、Qualnet等網絡模擬軟件盡管具有良好的用戶界面,但是由于是收費的商業軟件,這制約了這些軟件在計算機網絡實驗教學中的使用[3]。思科公司的Packet Tracer網絡仿真軟件具有良好的用戶界面,被廣泛應用于計算機網絡實驗教學與培訓中[4],但僅是單機版網絡仿真軟件,在可擴展性與開放性方面存在不足,且存在真實計算機網絡應用軟件無法加載的問題。
鑒于上述問題,本文基于OpenStack[5]云計算平臺,研究計算機網絡課程仿真實驗的構建方法。OpenStack云平臺隨著自身的不斷完善與發展,逐漸成為主流云平臺,其相關優勢有助于構建可擴展、高逼真、開放式的計算機網絡課程仿真實驗平臺。本文首先分析OpenStack在計算機網絡仿真實驗方面的優勢與不足,接著有針對性地研究虛擬路由器、虛擬鏈路的構建方法,最后面向路由協議以及TCP協議等教學內容,構建相應的仿真實驗,驗證有效性。
2 基于OpenStack的網絡仿真實驗分析
OpenStack云平臺介紹 OpenStack是一個開源的基礎架構即服務(IaaS)云計算平臺,其目標是為大規模的共有云和小規模的私有云提供一個易于擴展的、彈性云計算服務。它給用戶提供一個Web交互接口的控制面板(Dash-board),管理一個或多個數據中心的所有計算資源池、存儲資源池、網絡資源池等硬件資源,且支持多種不同的Hypervisor(如QEMU/KVM、Xen、VMware、Hyper-V、LXC等)。OpenStack云平臺的基礎架構如圖1所示。
Openstack云平臺物理環境主要由控制節點、網絡節點與若干計算節點組成。控制節點負責管控整個平臺,提供包括資源分配、虛擬機管理、平臺實時監管等功能,并向用戶提供名為Dashboard的圖形管理界面,用于管理平臺中的虛擬網絡和服務器集群。網絡節點提供各種網絡服務,其中router-namespace提供路由服務和地址轉換服務(NAT),dhcp可自動為各個虛擬機分配IP地址。計算節點為虛擬機的建立提供各種資源,在一個基礎架構中可以包含多個計算節點,計算節點越多,可以構建的虛擬網絡的規模越大。
計算節點和網絡節點均有Open vSwitch(OVS)模塊,是支持軟件定義功能的虛擬交換機。OVS由各個網橋構成,分別為br-tun、br-ex和br-int。br-tun作為接口用于連接分布在不同節點中的OVS,實現平臺的分布式架構。br-ex只存在于網絡節點的OVS中,它和網絡節點外網網卡相連,用于接入外部實物網絡。br-int是數據包的中繼站,所有的虛擬機和OVS中其他的兩種網橋都與br-int相連,保證了同一虛擬網絡的連通性,待轉發的數據包都會進入br-int進行流表匹配并執行相關操作。OVS支持VLAN功能,可實現虛擬網絡的相互隔離。
Openstack云平臺中由物理服務器網卡所連接形成的網絡分為三種,分別為管理網、隧道網和外網。管理網用于控制節點對各個節點進行管控以及下達操作虛擬網絡的命令;隧道網連接各個節點,用于構建分布式平臺;外網即外部物理網絡,可與實物網絡互聯。
OpenStack的網絡仿真實驗能力分析 基于上述介紹,對OpenStack用于網絡仿真實驗的優勢進行分析。
1)擴展性:通過擴展OpenStack計算節點個數,可實現大規模網絡拓撲的教學實驗以及實現多個教學實驗任務的并發展開;OpenStack平臺支持輕量級虛擬化,可在單臺物理服務器上構建具有上百個甚至上千個節點規模的仿真網絡;通過OpenStack的br-ex,可實現虛擬網絡與實物網絡的互聯互通,為構建半實物計算機網絡實驗場景提供支撐。
2)逼真性:OpenStack融合了虛擬化技術,可無縫融合各類操作系統并支持各種真實計算機網絡軟件加載,可為計算機網絡教學實驗提供逼真的終端環境;此外,Open-Stack支持三層網絡,可為各類鏈路層與網絡層教學實驗提供逼真的環境。
3)開放可用性:基于云計算技術,可構建遠程開放式云端計算機網絡虛擬實驗室[6],可為學生提供全天候實驗教學服務,學生利用任意一臺連接到網絡的計算機,即可遠程連接進行計算機網絡實驗場景的生成與教學實驗;Open-
Stack的Dashboard提供圖形管理界面,方便管理計算機網絡仿真實驗場景。
4)多實驗隔離性:OpenStack支持VLAN等安全隔離方式,可為計算機網絡課程提供多個教學實驗場景間的安全隔離。
5)實驗場景多樣性:基于OpenStack現有的網絡層與鏈路層基本功能,可支持諸如VLAN、NAT、DHCP、ARP、數據包捕獲與解析、基本網絡命令操作等計算機網絡實驗。
然而,盡管OpenStack具有上述優勢,其本身并不是為計算機網絡仿真而專門開發的,在計算機網絡仿真實驗上存在一定的局限性。
1)OpenStack的neutron網絡組件盡管可支持三層網絡,但只能滿足最基礎的IP報文轉發服務,所提供的虛擬路由器qrouter只能夠轉發與其直連的網絡流量,無法構建復雜的仿真網絡,也不支持各類動態路由協議,這制約了復雜網絡拓撲實驗、路由協議實驗等教學場景的構建。
2)OpenStack中各個虛擬機都被連接到OVS上,可實現虛擬網絡的連通性。依靠OVS的可定義配置,可靈活構建虛擬機間的虛擬鏈路。但是,所構建的虛擬鏈路僅僅是連通性,缺乏對虛擬鏈路帶寬、延遲等參數的仿真,這制約了與鏈路參數有關的教學實驗場景(如TCP協議的流量控制等)的構建。
為此,針對上述問題,本文第3、4節,分別研究了虛擬路由器與虛擬鏈路的構建方法,實現對OpenStack相關仿真模型的擴展,滿足計算機網絡仿真實驗的需求。
3 虛擬路由器構建方法
基于KVM虛擬機以及Quagga軟件,可構建支持路由協議且支持復雜網絡仿真的虛擬路由器,并可集成到OpenStack
云平臺中。Quagga是一款功能強大的開源路由軟件,可支持rip、ripng、ospfv2、ospfv3、bgp等協議的仿真,而且Quagga的命令行界面與主要路由器廠商思科的基本一致。
基于OpenStack的虛擬路由器的具體構建方法:
首先,基于KVM虛擬化技術,構建具有多虛擬網卡的虛擬機,每一個虛擬網卡分別連接不同的虛擬網絡;
其次,基于該虛擬機,安裝可仿真各類路由協議的Quagga軟件,形成動態路由協議仿真引擎;
最后,構建虛擬網絡,配置嗅探模塊,可自動獲得虛擬機的IP地址等信息,并對動態路由協議仿真引擎進行自動化配置,啟動RIP、OSPF、BGP協議的仿真。
值得注意的是,上述虛擬路由器構建方法形成的虛擬機可制作成虛擬路由器鏡像并存儲于OpenStack鏡像庫中。當需要構建計算機網絡仿真實驗場景時,可基于鏡像進行按需部署,自動化形成可支持各類路由協議仿真且可互聯不同虛擬網絡的虛擬路由器。
4 虛擬鏈路構建方法
如第2節所述,基于OVS可靈活構建虛擬機間的虛擬鏈路,具體構建方式:每建一個虛擬機,OpenStack會自動為該虛擬機在OVS的br-int上建立一個端口并將該虛擬機連接到這個端口上,接著在OVS中添加相關流表規則。流表規則保證了該虛擬機能夠正常收發數據包。
上述操作相當于為該虛擬機建立了一條接入虛擬交換機的鏈路。由于所有的虛擬機都被接入OVS,因此,相當于在同一虛擬網絡中,任意一對虛擬機之間都有一條虛擬鏈路,這保證了虛擬機之間的連通性。
基于上述方法所構建的虛擬鏈路,依靠Linux操作系統中的流量控制器TC(Traffic Control),可以進一步構建帶有帶寬、延遲特性的虛擬鏈路。TC通過建立處理數據包的隊列,實現對流量的控制,并可仿真出復雜的互聯網傳輸性能,諸如帶寬、傳輸延遲、丟包等。在仿真虛擬鏈路的特性時,可根據實際需要,將TC仿真命令添加到虛擬鏈路對應的虛擬機的虛擬網卡上即可。如通過下列命令,可設置虛擬鏈路的帶寬為100 Mbps,傳播延遲為10 ms:
tc qdisc add dev eth0 handle 1: root htb
tc class add dev eth0 parent 1: classid 1:1 htb rate 100Mbps
tc qdisc add dev eth0 root netem delay 10ms
5 計算機網絡仿真實驗場景驗證
為驗證OpenStack云平臺對典型計算機網絡教學實驗的支持能力,構建典型的路由協議實驗場景以及TCP協議實驗場景進行驗證。值得一提的是,這兩個實驗場景也重點驗證了新構建的虛擬路由器以及虛擬鏈路對仿真實驗的支撐能力。
路由協議實驗 所構建的虛擬網絡拓撲圖如圖2所示,共有六個虛擬路由器(分別標志為R1、R2、R3、R4、R5、R6)以及四個虛擬主機(分別標志為H1、H2、H3、H4)。
以經典的域內路由協議OSPF為代表,進行路由協議實驗,其主要實驗步驟如下。
1)配置IP地址。以路由器R3為例,其IP地址具體配置過程如圖3所示,其他路由器的IP地址配置過程類似。
2)配置OSPF協議。以路由器R3為例,其OSPF協議的具體配置過程如圖4所示。
3)查看路由表。通過OSPF協議的一段時間學習后,可以查看新學習到的路由信息。路由器R3的路由信息查看命令與顯示結果如圖5所示。
4)路由路徑測試。通過traceroute命令測試各個主機之間的連通性以及路由信息的正確性,其中主機H1到H3的路由路徑測試結果如圖6所示,表明主機H1到H3的路由路徑為R1、R3、R4、R5,這驗證了基于OSPF協議構建的路由表的有效性。
通過該實驗,可以讓學生掌握IP地址的配置、OSPF協議的配置、路由信息的查詢與顯示以及路由路徑等相關知識,提升實踐能力。此外,該實驗也驗證了本文所提出的虛擬路由器構建方法具備支持路由協議仿真的能力。
TCP協議實驗 針對圖2中的虛擬網絡拓撲,進一步開展TCP協議實驗。由于TCP協議的擁塞控制過程是計算機網絡課程的難點和重點,為此以TCP協議擁塞控制實驗為對象,進行相關實驗演示。由于擁塞控制與鏈路的帶寬、延遲等參數相關,為此基于圖2首先設置所有鏈路的帶寬和延遲:R3與R4的鏈路設置為瓶頸鏈路,其帶寬設置為20 Mbps,傳播延遲為160 ms;其余路由器間的所有鏈路帶寬均設置為100 Mbps,傳播延遲為160 ms;所有主機到相連路由器的鏈路帶寬設置為100 Mbps,傳播延遲為10 ms。
在主機H1、H3上安裝了Iperf網絡性能測試工具,啟動主機H1到H3的TCP流量發送,并實時記錄吞吐量,其前50秒的實時吞吐量如圖7所示。
依靠圖7,可以演示TCP的擁塞控制過程。
在第0~20秒之間,TCP的吞吐量急劇上升,表明此階段為TCP的慢開始階段和擁塞避免階段。在這兩個階段,每經過一個輪次,TCP吞吐量就會提升,其中第0~14秒吞吐量提升較快,因為處于慢開始階段;第14~20秒提升較慢,因為處于擁塞避免階段。
在第20~26秒,TCP實時吞吐量維持在一個較穩定的值,接近瓶頸鏈路的額定帶寬。
從第26秒開始,TCP的實時吞吐量急劇下降,主要是在第25~35秒,主機H2到H4通過Iperf啟動UDP流量傳輸,傳輸速率為10 Mbps。因此,R3、R4間的瓶頸鏈路出現嚴重的擁塞,導致TCP分組丟失而執行了“乘法減小”策略。
在第36秒,UDP流量停止,TCP的實時吞吐量繼續增加,逐漸接近瓶頸鏈路的額定帶寬。
通過該實驗,可以讓學生掌握TCP協議流量控制涉及的慢開始、擁塞避免、“乘法減小”等知識,提升實踐能力。此外,該實驗也驗證了本文所提出的虛擬鏈路構建方法具備支持與鏈路參數有關的教學實驗的能力。
6 結語
本文分析了基于OpenStack云平臺構建計算機網絡仿真實驗,具有擴展性、逼真性、開放可用性、多實驗隔離性、實驗場景多樣性等優勢,并構建了虛擬路由器、虛擬鏈路等仿真模塊,進一步增強了OpenStack在計算機網絡仿真實驗方面的能力。基于OpenStack云平臺,構建了路由協議仿真實驗教學場景以及TCP協議仿真實驗教學場景,驗證了OpenStack云平臺以及虛擬路由器、虛擬鏈路構建方法的有效性。通過云計算平臺可任意靈活構建各類豐富的計算機網絡課程實驗場景,能讓學生更加輕松地學習網絡理論知識,提升學生的鉆研興趣以及創新實踐能力。
參考文獻
[1]李英杰.虛擬仿真實驗在計算機網絡教學中的有效運用[J].信息與電腦:理論版,2017(1):214-216.
[2]王曉鋒,毛力.NS2在TCP協議教學中的應用研究[J].中國教育技術裝備,2012(3):13-15.
[3]顏慶茁,葉添福.基于OPNET的計算機網絡仿真實驗教學研究[J].集美大學學報:教育科學版,2014(3):111-114.
[4]薛琴.基于Packet Tracer的計算機網絡仿真實驗教學[J].實驗室研究與探索,2010(2):57-59.
[5]OpenStack Community. OpenStack[EB/OL].[2017-02-01].http://www.OpenStack.org/.
[6]徐林,盧廣宇,楊凱,等.遠程開放式云端虛擬實驗室建設初探[J].教育教學論壇,2014(43):254-256.