吳文燕,姜 鑫,王曉鋒,劉 淵
(1.江南大學 物聯(lián)網(wǎng)工程學院,江蘇 無錫 214122; 2.江南計算技術(shù)研究所,江蘇 無錫 214083;3.江南大學 數(shù)字媒體學院,江蘇 無錫 214122)
網(wǎng)絡與信息系統(tǒng)安全評估平臺為網(wǎng)絡安全評估與計算機系統(tǒng)安全評估提供了有力支撐,而網(wǎng)絡復現(xiàn)技術(shù)[1]是整個平臺的基石。近年來,圍繞著如何復現(xiàn)大規(guī)模網(wǎng)絡這個問題,關(guān)鍵技術(shù)主要集中在網(wǎng)絡模擬、網(wǎng)絡仿真和實物測試床三個方面。網(wǎng)絡模擬技術(shù)具有高度的可擴展性,可模擬超大規(guī)模的網(wǎng)絡;美國倫斯勒理工學院曾經(jīng)就基于并行離散事件模擬技術(shù),模擬了百萬節(jié)點至十億節(jié)點級規(guī)模的網(wǎng)絡[2];但網(wǎng)絡模擬技術(shù)依靠相關(guān)模型僅僅是模擬系統(tǒng)的一部分功能,難以支撐現(xiàn)實用戶的操作和實際網(wǎng)絡應用的部署,所構(gòu)建的虛擬網(wǎng)絡在逼真度上具有局限性。相比網(wǎng)絡模擬,網(wǎng)絡仿真和實物測試床能夠有效滿足網(wǎng)絡實驗和評估中對逼真度的要求,但是實物測試床存在成本高、靈活性差等缺點,難以支持大規(guī)模網(wǎng)絡的研究。加拿大維多利亞大學的Case Lab曾基于1 000個物理服務器仿真了具有10 000臺虛擬機規(guī)模的網(wǎng)絡[3];網(wǎng)絡仿真雖然在規(guī)模上依舊難以與網(wǎng)絡模擬相比,但是超出實物測試床很多。綜上而言,網(wǎng)絡仿真技術(shù)擯棄網(wǎng)絡模擬和實物測試床的缺點,集成二者的優(yōu)點,是一種較為優(yōu)秀的網(wǎng)絡復現(xiàn)技術(shù),但是,如何進一步提高網(wǎng)絡研究實驗中的大規(guī)模性和高逼真性是目前亟須解決的問題,網(wǎng)絡模擬與網(wǎng)絡仿真融合的網(wǎng)絡復現(xiàn)技術(shù)可以有效解決以上問題。
融合網(wǎng)絡復現(xiàn)技術(shù)結(jié)合了網(wǎng)絡模擬、網(wǎng)絡仿真各自的優(yōu)點,可有效兼顧復現(xiàn)網(wǎng)絡的規(guī)模和逼真度。文獻[4]綜合分布式網(wǎng)絡模擬技術(shù)以及基于虛擬化的網(wǎng)絡仿真技術(shù),實現(xiàn)了模擬、仿真相融合的實驗平臺,重點研究了網(wǎng)絡模擬與網(wǎng)絡仿真的同步問題,但缺乏考慮網(wǎng)絡仿真中的鏈路仿真。文獻[5]重點研究了網(wǎng)絡模擬與網(wǎng)絡仿真的同步技術(shù)以及高性能仿真模型,同樣實現(xiàn)了模擬與仿真相結(jié)合的實驗平臺。文獻[6] 針對網(wǎng)絡實驗中路由器仿真的規(guī)模性、擴展性以及逼真度的問題,結(jié)合虛擬化技術(shù)和軟件路由技術(shù),提出了一種虛擬化的路由仿真平臺設計方法,但是多個虛擬路由器實例會各自維護多個獨立的路由表,導致平臺的存儲空間開銷很高,并隨著規(guī)模的擴大而急劇增長。文獻[7]結(jié)合高性能大規(guī)模網(wǎng)絡模擬和高保真網(wǎng)絡仿真,使真正的網(wǎng)絡應用及協(xié)議的實例能在實際操作環(huán)境上運行并在模擬的網(wǎng)絡設置上被測試,但運行與測試的協(xié)議比較單一、缺乏多樣性。文獻[8-9]結(jié)合虛擬化平臺技術(shù),通過將物理資源虛擬化,并將多個全功能網(wǎng)絡節(jié)點和模擬通信鏈路實體部署在虛擬機層面,設計了一種網(wǎng)絡仿真準實驗床系統(tǒng)。文獻[10]提出了一個集成了輕量級的仿真系統(tǒng)和并行離散事件網(wǎng)絡模擬器的網(wǎng)絡測試平臺,設計了一個全球同步的算法來管理虛擬時間與仿真時間的轉(zhuǎn)換。OpenStack[11]作為當前云計算平臺的代表,可實現(xiàn)全虛擬化、輕量級虛擬化仿真,但在兩種虛擬化融合的網(wǎng)絡仿真方面缺乏考慮,且忽視了數(shù)字仿真與上述兩種虛擬化仿真無縫融合的問題。當前網(wǎng)絡模擬與仿真融合的復現(xiàn)技術(shù)重點關(guān)注了網(wǎng)絡模擬與網(wǎng)絡仿真間的同步機制,缺乏對模擬與仿真融合網(wǎng)絡的任意靈活構(gòu)建與融合網(wǎng)絡規(guī)模性的考慮。
本文針對上述方法和技術(shù)存在的缺陷提出了一種基于OpenStack的輕量級虛擬化、全虛擬化和數(shù)字仿真三種尺度無縫融合的網(wǎng)絡復現(xiàn)技術(shù)。首先描述了該技術(shù)的體系架構(gòu);其次詳細介紹了通過該技術(shù)構(gòu)建多尺度融合仿真系統(tǒng)的具體過程以及關(guān)鍵技術(shù);接著對融合仿真系統(tǒng)的透明性、并發(fā)性、靈活性、擴展性四個特性進行了詳細說明,并通過實驗驗證了以上四個特性;然后在所構(gòu)建的大規(guī)模多尺度融合仿真系統(tǒng)上進行多種協(xié)議的通信測試,證明大規(guī)模融合仿真系統(tǒng)的實用性;最后通過一個簡單的網(wǎng)安實驗驗證了融合仿真系統(tǒng)效果評估的有效性。
如圖1所示,虛擬化與數(shù)字仿真融合的多尺度復現(xiàn)體系架構(gòu)是一個基于OpenStack云平臺,融合了輕量級虛擬化、全虛擬化、數(shù)字仿真三個尺度的網(wǎng)絡體系架構(gòu)。OpenStack的基本架構(gòu)包括一個控制節(jié)點、一個網(wǎng)絡節(jié)點和若干個計算節(jié)點(本文中是3個計算節(jié)點),控制節(jié)點負責系統(tǒng)的管控功能,網(wǎng)絡節(jié)點負責提供諸如動態(tài)主機配置協(xié)議(Dynamic Host Configuration Protocol, DHCP)服務和路由服務等網(wǎng)絡服務,計算節(jié)點負責為虛擬主機的建立提供資源;其中網(wǎng)絡節(jié)點只有一塊外網(wǎng)網(wǎng)卡,用來連接實物主機,網(wǎng)絡節(jié)點和控制節(jié)點相互獨立開來。在OpenStack的計算節(jié)點上進行面向三個尺度融合的多粒度配置,融合性多粒度配置是構(gòu)建多尺度無縫融合仿真系統(tǒng)的基礎。無縫融合策略則是連接虛擬化與數(shù)字仿真層面和底層OpenStack的橋梁,無縫融合策略配置是否成功,關(guān)系著整個平臺能否正常運行。
虛擬化與數(shù)字仿真技術(shù)已然成為當今計算機領(lǐng)域的熱門技術(shù),目前的虛擬化包括完全虛擬化、半虛擬化和基于容器的虛擬化等,其中半虛擬化和基于容器的虛擬化統(tǒng)稱為輕量級虛擬化。全虛擬化以基于內(nèi)核的虛擬機(Kernel-based Virtual Machine, KVM)[12]為代表,KVM虛擬化技術(shù)依賴物理CPU和內(nèi)存,是硬件級別的,功能強大,比較適用于高性能計算服務的云計算環(huán)境中作為基礎設施即服務(Infrastructure As A Service, IAAS)層的虛擬化部署工作。輕量級虛擬化中以Docker[13]容器作為代表,利用Linux容器(LinuX Container, LXC)實現(xiàn)了類似KVM的功能,從而利用更加節(jié)省的硬件資源提供給用戶更多的計算資源。和KVM方式不同,LXC不是一套硬件虛擬化方法,而是一個共享Kernel的操作系統(tǒng)級虛擬化方法。通過在執(zhí)行時不重復加載內(nèi)核,且虛擬容器與宿主機之間共享內(nèi)核來提高啟動速度和減少內(nèi)存消耗,減少了系統(tǒng)開銷,提高了資源利用率。數(shù)字仿真以NS3(Network Simulator version 3)[14-16]為代表,NS3是一個極具特色的新型網(wǎng)絡模擬器,具有完備性、開源性、易用性和可擴展性等方面的特色,優(yōu)于現(xiàn)有的大多數(shù)主流網(wǎng)絡模擬器。
KVM、Docker、NS3三種仿真技術(shù)各有優(yōu)劣,通過大量文獻與前人成果已知,KVM吞吐量、延時等性能優(yōu)于Docker,且前兩者吞吐量、延時等性能均優(yōu)于NS3,但是由于KVM與Docker占內(nèi)存大,在保證正常工作的情況下啟動個數(shù)受內(nèi)存大小和邏輯CPU個數(shù)所限制,所以一個計算節(jié)點能夠啟動的KVM與Docker路由器個數(shù)較少。為了滿足規(guī)模性,而同時又不丟失逼真性,本文創(chuàng)新地提出與實現(xiàn)了KVM、Docker、NS3三種仿真技術(shù)在OpenStack平臺上的融合。
圖1 虛擬化與數(shù)字仿真融合的多尺度體系架構(gòu) Fig. 1 Multi-scale architecture for fusion of virtualization and digital simulation
在OpenStack云平臺中構(gòu)建虛擬化與數(shù)字仿真融合的仿真系統(tǒng),關(guān)鍵在于解決融合性多粒度配置和無縫融合策略配置問題,而融合性多粒度配置問題又可分為虛擬化粒度配置問題和數(shù)字仿真粒度配置問題,因此該融合仿真系統(tǒng)的實現(xiàn)可分為以下5個模塊。
1)虛擬化粒度配置模塊:該模塊負責在OpenStack計算節(jié)點中根據(jù)目標網(wǎng)絡拓撲創(chuàng)建并啟動虛擬化節(jié)點,對兩種虛擬化節(jié)點的網(wǎng)段以及宿主機等進行設置。
2)遠程登錄模塊:該模塊負責在實物主機與虛擬化節(jié)點之間建立聯(lián)系,通過安全終端模擬程序訪問OpenStack網(wǎng)絡節(jié)點,輸入ip netns list列出網(wǎng)絡命名空間,選擇正確的網(wǎng)絡命名空間進行操作,然后登錄虛擬化節(jié)點。
3)數(shù)字仿真粒度配置模塊:該模塊負責基于全虛擬化粒度進行創(chuàng)建并啟動數(shù)字仿真節(jié)點操作,并對數(shù)字仿真節(jié)點的IP地址與MAC(Media Access Control)地址等進行設置。
4)無縫融合策略配置模塊:該模塊負責實現(xiàn)基于OpenStack云平臺的面向輕量級虛擬化、全虛擬化和數(shù)字仿真三個尺度的無縫融合策略配置,實現(xiàn)輕量級虛擬化、全虛擬化和數(shù)字仿真三個尺度的無縫安全連接。
5)動作執(zhí)行模塊:上述模塊完成以后,多尺度融合仿真系統(tǒng)拓撲就已創(chuàng)建完畢,動作執(zhí)行模塊負責根據(jù)源節(jié)點和目的節(jié)點的地址,進行從源地址到目的地址的通信行為。
各模塊之間的關(guān)系如圖2所示。
圖2 各模塊之間的聯(lián)系 Fig. 2 Relation of different modules
作為整個構(gòu)建仿真系統(tǒng)過程中最重要的兩個部分,融合性多粒度配置的作用是創(chuàng)建并啟動虛擬化節(jié)點與數(shù)字仿真節(jié)點,對虛擬化節(jié)點的網(wǎng)段、宿主機等進行設置,對數(shù)字仿真節(jié)點的IP地址、MAC地址等進行設置,完成多尺度融合網(wǎng)絡拓撲的構(gòu)建;無縫融合策略配置的作用主要是對OpenStack安全組、虛擬化粒度的路由信息、端口安全、網(wǎng)卡模式以及數(shù)字仿真拓撲的路由信息、運行協(xié)議等進行配置。這兩個部分使得所有節(jié)點之間的數(shù)據(jù)包傳輸可以正常進行,主要涉及到多尺度融合仿真系統(tǒng)的虛擬化粒度配置模塊、數(shù)字仿真粒度配置模塊以及無縫融合策略配置模塊;虛擬化粒度配置模塊在OpenStack的計算節(jié)點上進行,數(shù)字仿真粒度配置模塊在全虛擬化節(jié)點上進行,而無縫融合策略配置模塊則需要在OpenStack、虛擬化節(jié)點與數(shù)字仿真節(jié)點上同時進行。
虛擬化粒度配置是對應于網(wǎng)絡與宿主機的,每添加一個虛擬化節(jié)點都需要設置它的網(wǎng)絡與宿主機;數(shù)字仿真粒度配置則對應于IP地址與MAC地址,每添加一個數(shù)字仿真節(jié)點都需要對它的IP地址與MAC地址進行設置。多粒度配置的詳細步驟如下:
步驟1 遠程登錄OpenStack dashboard。
步驟2 判斷OpenStack云平臺中是否有網(wǎng)絡或是否有足夠的網(wǎng)絡,若有且網(wǎng)絡數(shù)量足夠則進行下一步,若沒有或網(wǎng)絡數(shù)量不足,則根據(jù)目標網(wǎng)絡拓撲需要創(chuàng)建網(wǎng)絡。
步驟3 虛擬化粒度宿主機配置,以KVM構(gòu)建全虛擬化節(jié)點,以Docker構(gòu)建輕量級虛擬化節(jié)點;選擇全虛擬化節(jié)點與輕量級虛擬化節(jié)點的宿主機,輕量級虛擬化節(jié)點的宿主機是設置成Docker模式的計算節(jié)點3,全虛擬化節(jié)點的宿主機則可以是計算節(jié)點1或2中任意一個。
步驟4 虛擬化粒度網(wǎng)絡配置,輕量級虛擬化節(jié)點與全虛擬化節(jié)點的網(wǎng)段均需要進行設置。在融合網(wǎng)絡拓撲中,作為虛擬主機的虛擬化節(jié)點的網(wǎng)絡配置較為簡單,虛擬主機一般只需要設置一個網(wǎng)段,而作為路由器的虛擬化節(jié)點的網(wǎng)絡配置較為復雜,路由器一般需要設置多個網(wǎng)段,以此來實現(xiàn)不同網(wǎng)段之間的互聯(lián)互通。
步驟5 配置完成,執(zhí)行創(chuàng)建虛擬化節(jié)點操作。
步驟6 遠程登錄作為虛擬主機的全虛擬化節(jié)點,此為遠程登錄模塊,不贅述。
步驟7 在作為虛擬主機的全虛擬化節(jié)點上以NS3構(gòu)建數(shù)字仿真節(jié)點,部署數(shù)字仿真節(jié)點的IP地址與MAC地址。
由以上步驟可知,本文中使用KVM虛擬化技術(shù)來部署虛擬化節(jié)點,KVM在Linux內(nèi)核部署,任何場景下都可以直接和硬件進行交互,而不需要修改虛擬化的操作系統(tǒng),可以方便控制虛擬化進程;使用Docker虛擬化技術(shù)來部署輕量級虛擬化節(jié)點,Docker 是一個開源的應用容器引擎,性能開銷很小,可以很容易地在機器和數(shù)據(jù)中心運行,而且Docker不依賴于任何語言、框架包括系統(tǒng);使用NS3仿真技術(shù)來部署數(shù)字仿真節(jié)點,NS3是一個極具特色的新型網(wǎng)絡模擬器,具有完備性、開源性、易用性和可擴展性等方面的特色,優(yōu)于現(xiàn)有的大多數(shù)主流網(wǎng)絡模擬器。此外,KVM是操作系統(tǒng)級仿真,Docker是輕量級仿真,NS3是數(shù)字仿真,已知KVM逼真度優(yōu)于Docker優(yōu)于NS3,但是規(guī)模性是NS3優(yōu)于Docker優(yōu)于KVM,所以面向全虛擬化、輕量級虛擬化和數(shù)字仿真三種尺度無縫融合的網(wǎng)絡復現(xiàn)技術(shù),可有效滿足融合網(wǎng)絡的逼真性和可伸縮性需求。
融合性多粒度配置流程如圖3所示。
圖3 多粒度配置流程 Fig. 3 Flow chart of multi-granularity configuration
與此同時,無縫融合策略配置則是對應于OpenStack、虛擬化粒度和數(shù)字仿真粒度的,不論是OpenStack云平臺還是輕量級虛擬化節(jié)點、全虛擬化節(jié)點亦或數(shù)字仿真節(jié)點,都需要進行無縫融合策略配置,其詳細步驟如下:
步驟1 登錄OpenStack云平臺,添加新的iptable或在原有iptable上添加新的規(guī)則,一個安全組就是網(wǎng)絡訪問規(guī)則的組合,比如防火墻策略,這些訪問規(guī)則指定了哪些傳入網(wǎng)絡流量應該被發(fā)送與接收,哪些流量則應該被丟棄。用戶可以隨時修改安全組的規(guī)則,所有運行中的實例以及從那時起啟動的實例將強制使用這些新的規(guī)則。
步驟2 遠程登錄輕量級虛擬化節(jié)點與全虛擬化節(jié)點,此為遠程登錄模塊,不贅述,并且命令輸出所有虛擬化節(jié)點的IP地址與MAC地址。
步驟3 完成作為虛擬主機的全虛擬化節(jié)點的網(wǎng)卡模式配置,網(wǎng)卡模式設置成混雜模式。
步驟4 完成作為虛擬主機的虛擬化節(jié)點上的默認路由設置,虛擬主機轉(zhuǎn)發(fā)數(shù)據(jù)包的下一跳指定為與該虛擬主機相連的路由器接口。
步驟5 完成作為虛擬路由器的虛擬化節(jié)點的靜態(tài)路由設置,虛擬路由器需要為數(shù)字仿真拓撲中的網(wǎng)段設置靜態(tài)路由,因為虛擬路由器之間的路由信息可以相互學習,但是數(shù)字仿真拓撲與虛擬路由器之間的路由信息不可以相互學習,所以必須在虛擬路由器上為數(shù)字仿真網(wǎng)絡設置靜態(tài)路由。
步驟6 完成全虛擬化節(jié)點與輕量級虛擬化節(jié)點上端口安全配置,訪問OpenStack控制節(jié)點,在控制節(jié)點上使用CURL執(zhí)行POST命令,每發(fā)送一個虛擬化節(jié)點MAC地址信息,則可以關(guān)閉該MAC地址對應端口安全組。
步驟7 完成數(shù)字仿真節(jié)點組成的數(shù)字仿真拓撲的路由信息設置以及運行協(xié)議設置,數(shù)字仿真拓撲的路由可以設置為默認路由也可以設置為靜態(tài)路由,拓撲內(nèi)部協(xié)議為開放式最短路徑優(yōu)先(Open Shortest Path First, OSPF)協(xié)議。
無縫融合策略配置流程如圖4所示。
圖4 無縫融合策略配置流程 Fig. 4 Flow chart of seamless fusion strategy configuration
融合性多粒度配置與無縫融合策略配置完成后,一個網(wǎng)段的虛擬化節(jié)點或數(shù)字仿真節(jié)點就可以與另一個網(wǎng)段的虛擬化節(jié)點或數(shù)字仿真節(jié)點進行正常的流量交互了。
依靠上述體系架構(gòu)和關(guān)鍵技術(shù)構(gòu)建的多尺度融合仿真系統(tǒng)具有并發(fā)性和可擴展性。
并發(fā)性是指多尺度融合網(wǎng)絡中虛擬化節(jié)點、數(shù)字仿真節(jié)點之間的流量交互不限于一對一的交互,本文實現(xiàn)多對虛擬化節(jié)點、數(shù)字仿真節(jié)點之間的數(shù)據(jù)包并發(fā)地發(fā)送與接收。擴展性包括兩方面:一是指能夠在虛擬化與數(shù)字仿真融合網(wǎng)絡中接入更多的輕量級虛擬化節(jié)點、全虛擬化節(jié)點與數(shù)字仿真節(jié)點,從而構(gòu)建更為復雜的網(wǎng)絡拓撲;二是指數(shù)字仿真節(jié)點組成的數(shù)字仿真拓撲的規(guī)模是可擴展的,這意味著不僅僅需要實現(xiàn)某網(wǎng)段多個獨立的數(shù)字仿真節(jié)點與另一網(wǎng)段多個獨立的數(shù)字仿真節(jié)點之間的通信,而是可以實現(xiàn)某網(wǎng)段多個數(shù)字仿真節(jié)點組成的數(shù)字仿真拓撲內(nèi)部通信以及與外部的通信,因此可以添加更多的數(shù)字仿真節(jié)點,從而構(gòu)成更為復雜的數(shù)字仿真拓撲,組成大規(guī)模的多尺度融合仿真網(wǎng)絡。
在本文中實現(xiàn)了兩個方面的靈活配置:一是虛擬化節(jié)點和數(shù)字仿真節(jié)點可靈活接入融合復現(xiàn)網(wǎng)絡;二是不同網(wǎng)段之間的流量可靈活控制。此外,本文實現(xiàn)的融合復現(xiàn)網(wǎng)絡還具有透明性特點,具體是指涉及到數(shù)字仿真節(jié)點的不同網(wǎng)段之間的數(shù)據(jù)包的發(fā)送與接收均對作為數(shù)字仿真節(jié)點宿主機的全虛擬化節(jié)點透明,跟蹤數(shù)據(jù)包轉(zhuǎn)發(fā)路徑可知作為虛擬主機的全虛擬化節(jié)點的IP地址對不同網(wǎng)段之間的流量透明。
在前文中通過融合性多粒度配置和無縫融合策略配置實現(xiàn)了虛擬化與數(shù)字仿真融合網(wǎng)絡的流量正常傳輸。在一些實驗中,實驗人員對仿真網(wǎng)絡間流量的流向有特定要求,本文中的環(huán)境可以實現(xiàn)流量限制以及網(wǎng)絡分流,例如指定某些網(wǎng)絡的流量只能流向指定網(wǎng)絡。
涉及到數(shù)字仿真節(jié)點的不同網(wǎng)段之間的數(shù)據(jù)包轉(zhuǎn)發(fā)對作為虛擬主機的全虛擬化節(jié)點完全透明,即對不同網(wǎng)段之間的流量交互,從源節(jié)點發(fā)出數(shù)據(jù)包到目的節(jié)點接收到數(shù)據(jù)包,路徑列表中不會顯示數(shù)字仿真節(jié)點所在的宿主虛擬主機,可以看成數(shù)字仿真節(jié)點的數(shù)據(jù)包不通過宿主虛擬主機,直接與外部拓撲通信。
運用本文中的多尺度融合復現(xiàn)技術(shù)可以在OpenStack中構(gòu)建一個透明、并發(fā)、靈活、可擴展的虛擬化與數(shù)字仿真融合的網(wǎng)絡環(huán)境,基于該環(huán)境可以進行面向多種協(xié)議的靈活并發(fā)通信。如圖5所示,該環(huán)境中擁有多個全虛擬化節(jié)點、輕量級虛擬化節(jié)點以及數(shù)字仿真節(jié)點,創(chuàng)建了多個仿真網(wǎng)絡,其中由數(shù)字仿真節(jié)點組成的網(wǎng)絡是虛擬網(wǎng)絡1,2,3。
圖5 實驗拓撲圖 Fig. 5 Experiment topology
如圖6所示的網(wǎng)絡拓撲,擁有2個全虛擬化節(jié)點、2個輕量級虛擬化節(jié)點和2個數(shù)字仿真節(jié)點。為了驗證虛擬化與數(shù)字仿真融合網(wǎng)絡的連通性,先讓兩個數(shù)字仿真節(jié)點互相執(zhí)行ping命令,再讓數(shù)字仿真節(jié)點與輕量級虛擬化節(jié)點互相執(zhí)行ping命令,最后讓兩個輕量級虛擬化節(jié)點互相執(zhí)行ping命令,結(jié)果顯示該融合網(wǎng)絡中三個尺度的節(jié)點之間可以無縫連通。表1是多尺度節(jié)點之間互ping結(jié)果(全虛擬化節(jié)點不用測試,因為不論是上述哪兩個節(jié)點進行測試均需經(jīng)過全虛擬化節(jié)點)。
圖6 連通性測試拓撲 Fig. 6 Topology for connectivity test 表1 連通性測試結(jié)果 Tab. 1 Result of connectivity test
源主機目的主機是否互通源主機目的主機是否互通NS3-1NS3-2是Docker1Docker2是NS3-1Docker1是
虛擬化與數(shù)字仿真融合網(wǎng)絡中的全虛擬化節(jié)點既可以作為虛擬路由器,又可以作為數(shù)字仿真節(jié)點的宿主虛擬主機,通過多尺度融合網(wǎng)絡復現(xiàn)技術(shù)實現(xiàn)的融合網(wǎng)絡使得數(shù)據(jù)包的轉(zhuǎn)發(fā)在此融合網(wǎng)絡中從總體效果上而言對作為虛擬主機的全虛擬化節(jié)點是透明的。
實驗證明,從一個數(shù)字仿真節(jié)點到另一個數(shù)字仿真節(jié)點,中間雖然經(jīng)過源數(shù)字仿真節(jié)點所在的宿主機以及目的數(shù)字仿真節(jié)點所在的宿主機,但是不會在數(shù)據(jù)包的路由路徑上多出兩跳。同理,數(shù)字仿真節(jié)點與虛擬化節(jié)點之間的數(shù)據(jù)包傳輸同樣對作為數(shù)字仿真節(jié)點宿主機的全虛擬化節(jié)點透明。如圖7所示,在本測試中選用NS3- 1和NS3- 2作為數(shù)據(jù)包傳輸?shù)脑垂?jié)點和目的節(jié)點,用traceroute命令跟蹤數(shù)據(jù)包的路由路徑,結(jié)果如圖8所示,路徑只有目的數(shù)字仿真節(jié)點這一跳,證明數(shù)據(jù)包傳輸對作為宿主機的全虛擬化節(jié)點的透明性。
圖7 透明性測試拓撲 Fig. 7 Topology for transparency test
圖8 traceroute的輸出結(jié)果 Fig. 8 Output of traceroute
接下來,加入虛擬路由器,參與測試的兩個數(shù)字仿真節(jié)點不屬于同一個網(wǎng)絡,中間經(jīng)過一個虛擬路由器,拓撲如圖9所示。在NS3- 1上以NS3- 2為目的地址執(zhí)行traceroute命令,結(jié)果如圖10所示,NS3- 1到NS3- 2之間的路徑只有虛擬路由器、目的數(shù)字仿真節(jié)點這兩跳,符合預期,證明透明性。其余情況下的透明性不再進行重復實驗。
圖9 加入虛擬路由的透明性測試拓撲 Fig. 9 Topology for transparency test with virtual router
圖10 加入虛擬路由后traceroute的輸出結(jié)果 Fig. 10 Output of traceroute with virtual router
為了驗證虛擬化與數(shù)字仿真融合網(wǎng)絡的并發(fā)性,在圖6所示原有拓撲的基礎上,在每個涉及到數(shù)字仿真節(jié)點的虛擬網(wǎng)絡中均新添加了一個數(shù)字仿真節(jié)點(并且為了接下來的靈活性測試實驗,又新添加了一個虛擬網(wǎng)絡),拓撲如圖11所示。
每個虛擬網(wǎng)絡中均有不止一個數(shù)字仿真節(jié)點,同一個虛擬網(wǎng)絡中的數(shù)字仿真節(jié)點相當于是通過交換機與虛擬路由器互聯(lián),為每一個數(shù)字仿真節(jié)點配置了固定的IP地址與MAC地址。發(fā)送數(shù)據(jù)包時指定源IP地址以及目的IP地址,就可以實現(xiàn)多對節(jié)點之間的并發(fā)通信。
圖11 并發(fā)性測試拓撲 Fig. 11 Topology for concurrency test
3.1節(jié)已經(jīng)實現(xiàn)了虛擬化與數(shù)字仿真融合網(wǎng)絡中三個尺度節(jié)點之間的無縫連通;在此基礎上實現(xiàn)不同網(wǎng)絡中三個尺度節(jié)點之間的并發(fā)通信。實驗結(jié)果如表2所示,NS3- 1與NS3- 3,NS3- 2與NS3- 4之間的通信可同時進行;NS3- 1與Docker2,NS3- 3與Docker1之間的通信也可同時進行;此外,NS3- 1與NS3- 3,Docker1與Docker2之間的通信同樣可以同時進行;由此驗證了虛擬化與數(shù)字仿真融合網(wǎng)絡的并發(fā)性。
表2 并發(fā)性測試結(jié)果Tab. 2 Results of concurrency test
如圖11所示拓撲,對比圖7所示拓撲,可以看出新添加了全虛擬化節(jié)點、輕量級虛擬化節(jié)點以及數(shù)字仿真節(jié)點,只需將這些節(jié)點的IP地址設置為想接入的網(wǎng)絡的IP地址中的地址即可,以上證明了虛擬化節(jié)點和數(shù)字仿真節(jié)點可靈活接入多尺度融合仿真網(wǎng)絡。
如圖11所示拓撲,不同網(wǎng)絡之間的流量可靈活控制。實驗驗證,虛擬網(wǎng)絡1中數(shù)字仿真節(jié)點NS3- 1可以和虛擬網(wǎng)絡2中數(shù)字仿真節(jié)點NS3- 3或NS3- 4互通,也可以與虛擬網(wǎng)絡3中數(shù)字仿真節(jié)點NS3- 5或NS3- 6互通,還可以與Docker1或Docker2互通;虛擬網(wǎng)絡1中數(shù)字仿真節(jié)點NS3- 1、NS3- 2可同時分別與虛擬網(wǎng)絡2中NS3- 3、虛擬網(wǎng)絡3中NS3- 5互通,也可同時分別與Docker1、Docker2互通;以上均證明了對虛擬化與數(shù)字仿真融合網(wǎng)絡流量的靈活控制。
此外,虛擬網(wǎng)絡1中數(shù)字仿真節(jié)點NS3- 1、NS3- 2可同時分別與虛擬網(wǎng)絡2中NS3- 3、虛擬網(wǎng)絡3中NS3- 5互通,也可同時分別與Docker1、Docker2互通,進一步驗證了3.3節(jié)中所述的并發(fā)性。
一方面,比較圖6所示簡單網(wǎng)絡拓撲和圖5所示復雜網(wǎng)絡拓撲,拓撲中的虛擬化節(jié)點與數(shù)字仿真節(jié)點的數(shù)量都有了明顯增加,證明了虛擬化與數(shù)字仿真融合網(wǎng)絡的可擴展性。
另一方面,對圖5所示拓撲,可以看出有多個由數(shù)字仿真節(jié)點組成的數(shù)字仿真拓撲,本文實現(xiàn)了數(shù)字仿真拓撲內(nèi)部通信以及不同數(shù)字仿真拓撲之間的通信。根據(jù)2.2節(jié)中無縫融合策略配置,對數(shù)字仿真拓撲運行OSPF協(xié)議以及進行路由設置。例如,虛擬網(wǎng)絡1中的所有數(shù)字仿真節(jié)點構(gòu)成了數(shù)字仿真拓撲1,虛擬網(wǎng)絡2中的所有數(shù)字仿真節(jié)點構(gòu)成了數(shù)字仿真拓撲2;拓撲1中的任一數(shù)字仿真節(jié)點想與拓撲2中任一數(shù)字仿真節(jié)點通信,不僅需在源節(jié)點和目的節(jié)點上添加路由信息,還需在邊界節(jié)點上配置轉(zhuǎn)發(fā)規(guī)則,因為數(shù)據(jù)包的傳輸要經(jīng)過兩個數(shù)字仿真拓撲中的邊界節(jié)點轉(zhuǎn)發(fā),而邊界節(jié)點的轉(zhuǎn)發(fā)依據(jù)是此節(jié)點上添加的路由信息或數(shù)字仿真拓撲運行的OSPF協(xié)議。數(shù)字仿真拓撲規(guī)模具有高度可擴展性,因此融合復現(xiàn)技術(shù)所復現(xiàn)的仿真網(wǎng)絡也具有可擴展性。
實驗環(huán)境:基于OpenStack分別部署在3臺物理服務器上的計算節(jié)點1、2、3,其中計算節(jié)點3為Docker模式,只能啟動輕量級虛擬化實例,計算節(jié)點1、2則可以啟動全虛擬化與數(shù)字仿真實例。計算節(jié)點1、2、3的配置都是24 VCPU,32 GB內(nèi)存,而全虛擬化節(jié)點的配置是2 VCPU,4 GB內(nèi)存。
經(jīng)過實驗驗證,面向圖5所示網(wǎng)絡拓撲,計算節(jié)點1、2中約可同時啟動16個全虛擬化節(jié)點(4個作為虛擬路由器和12個作為數(shù)字仿真節(jié)點宿主機)與4 800個數(shù)字仿真節(jié)點,并實現(xiàn)以上節(jié)點與計算節(jié)點3中輕量級虛擬化節(jié)點組成的三尺度融合網(wǎng)絡的大規(guī)模實例同時運行、通信,在有限的物理資源條件下,實現(xiàn)較大規(guī)模的虛擬化與數(shù)字仿真融合的多尺度復現(xiàn)網(wǎng)絡。
表3是在以上實驗環(huán)境下,分別使用全虛擬化技術(shù)、輕量級虛擬化技術(shù)、數(shù)字仿真技術(shù)以及三種尺度融合的復現(xiàn)技術(shù)創(chuàng)建的仿真網(wǎng)絡規(guī)模對比數(shù)據(jù)。由結(jié)果可以看出,三尺度融合復現(xiàn)技術(shù)所構(gòu)建的仿真網(wǎng)絡規(guī)模遠大于單一全虛擬化技術(shù)或輕量級虛擬化技術(shù)所構(gòu)建的仿真網(wǎng)絡規(guī)模,規(guī)模僅小于使用低逼真度的數(shù)字仿真技術(shù)所構(gòu)建的仿真網(wǎng)絡規(guī)模。
表3 規(guī)模對比Tab. 3 Contrast of scale
通過多尺度無縫融合復現(xiàn)技術(shù)構(gòu)建了如圖5所示大規(guī)模網(wǎng)絡,本文實現(xiàn)了該多尺度融合大規(guī)模網(wǎng)絡中基于多種協(xié)議的正常通信,該網(wǎng)絡中的虛擬化節(jié)點、數(shù)字仿真節(jié)點可以靈活并發(fā)地發(fā)送與接收傳輸控制協(xié)議(Transmission Control Protocol, TCP)、用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol, UDP)、Internet控制報文協(xié)議(Internet Control Message Protocol, ICMP)數(shù)據(jù)包,驗證了面向三種尺度無縫融合的大規(guī)模網(wǎng)絡的實用性。實驗結(jié)果如表4所示(“Y”表示報文正常,“N”表示報文有誤,“—”表示此報文不需要)。圖12是不同虛擬網(wǎng)絡中兩個數(shù)字仿真節(jié)點之間通信時,在通信鏈路上任取一個節(jié)點使用wireshark工具進行抓包的報文捕獲情況,可以看出仿真結(jié)果符合表4實驗結(jié)論。
表4 協(xié)議測試結(jié)果Tab. 4 Results of protocol test
圖12 捕獲到的三種協(xié)議報文 Fig. 12 Captured messages of three protocols
由3.6節(jié)可知,基于現(xiàn)有計算資源,面向圖5所示網(wǎng)絡拓撲,計算節(jié)點1、2、3中約可同時啟動16個全虛擬化節(jié)點(4個作為虛擬路由器和12個作為數(shù)字仿真節(jié)點宿主機)、4 800個數(shù)字仿真節(jié)點與200個輕量級虛擬化節(jié)點共5 000個仿真節(jié)點。虛擬網(wǎng)絡中有一節(jié)點A,IP地址為192.168.1.100,當此節(jié)點創(chuàng)建完畢并啟動運行時,整個融合網(wǎng)絡拓撲中任一節(jié)點都可以正常訪問仿真節(jié)點A,同一網(wǎng)段中節(jié)點B訪問節(jié)點A的結(jié)果如圖13所示。
融合網(wǎng)絡拓撲中除節(jié)點A、B以外所有節(jié)點不間斷地向節(jié)點A發(fā)送TCP、UDP或ICMP協(xié)議報文,此時仍選擇節(jié)點B來訪問節(jié)點A,由圖14可知節(jié)點B無法正常訪問節(jié)點A,結(jié)果顯示簡單流量攻擊實驗成功。
圖13 正常訪問結(jié)果 Fig. 13 Access result of normal situation
圖14 攻擊時訪問結(jié)果 Fig. 14 Access result of attacked situation
網(wǎng)絡復現(xiàn)是當前進行網(wǎng)絡研究的主要方法,本文在分析當前網(wǎng)絡復現(xiàn)技術(shù)存在的不足的前提下,提出了一種透明、并發(fā)、靈活、可擴展的虛擬化與數(shù)字仿真融合的多尺度網(wǎng)絡復現(xiàn)方法,并針對該方法的這四個特性進行了說明和實驗論證,然后在此基礎上實現(xiàn)了基于該方法所構(gòu)建的大規(guī)模融合網(wǎng)絡上多種協(xié)議的通信與流量攻擊實驗。本文重點研究了面向三種尺度無縫融合的網(wǎng)絡構(gòu)建技術(shù),在通過該技術(shù)所創(chuàng)建的大規(guī)模融合網(wǎng)絡上進行網(wǎng)安實驗方面還有不足,所以在下一步的研究中,將重點考慮在所創(chuàng)建的大規(guī)模融合網(wǎng)絡中進行多種復雜的網(wǎng)絡安全實驗,進一步提高融合網(wǎng)絡的規(guī)模性、實用性和逼真度。
參考文獻(References)
[1] 方濱興,賈焰,李愛平,等.網(wǎng)絡空間靶場技術(shù)研究[J].信息安全學報,2016,1(3):1-9. (FANG B X, JIA Y, LI A P, et al. Cyber ranges: state-of-the-art and research challenges [J]. Journal of Cyber Security, 2016, 1(3): 1-9.)
[2] LIU N, CAROTHERS C, COPE J, et al. Model and simulation of exascale communication networks [J]. Journal of Simulation, 2012, 6(4): 227-236.
[3] NEVILLE S W, LI K F. The rational for developing larger-scale 1000+ machine emulation-based research test beds [C]// WAINA ’09: Proceedings of the 2009 International Conference on Advanced Information Networking and Applications Workshops. Washington, DC: IEEE Computer Society, 2009: 1092-1099.
[4] JIN D, ZHENG Y, NICOL D M. A parallel network simulation and virtual time-based network emulation testbed [J]. Journal of Simulation, 2014, 8(3): 206-214.
[5] ERAZO M A, LIU J. Leveraging symbiotic relationship between simulation and emulation for scalable network experimentation [C]// SIGSIM PADS ’13: Proceedings of the 1st ACM SIGSIM Conference on Principles of Advanced Discrete Simulation. New York: ACM, 2013: 79-90.
[6] 黃敏桓,張堯?qū)W,許飛,等.基于虛擬化技術(shù)的路由仿真實驗平臺設計[J].系統(tǒng)仿真學報,2014,26(8):1672-1677. (HUANG M H, ZHANG Y X, XU F, et al. Design of virtualization platform for router emulation [J]. Journal of System Simulation, 2014, 26(8): 1672-1677.)
[7] ERAZO M A, RONG R, LIU J. Symbiotic network simulation and emulation [J]. ACM Transactions on Modeling and Computer Simulation, 2015, 26(1): Article No. 2.
[8] 黃錦松,楊藝,王文鼐.一種基于虛擬化平臺的網(wǎng)絡仿真準實驗床[J].計算機技術(shù)與發(fā)展,2015,25(8):208-212. (HUANG J S, YANG Y, WANG W N. A network simulation test bed based on the virtualization platform [J]. Computer Technology and Development, 2015, 25(8): 208-212.)
[9] 何新華,金國柱,王瓊.仿真試驗中的虛擬化技術(shù)應用[J].四川兵工學報,2011,32(8):71-73,82. (HE X H, JIN G Z, WANG Q. The simulation test of virtualization technology application [J]. Journal of Sichuan Ordnance, 2011, 32(8): 71-73, 82.)
[10] FUJIMOTO R M. Research challenges in parallel and distributed simulation [J]. ACM Transactions on Modeling & Computer Simulation, 2016, 26(4): Article No. 22.
[11] GE X, LIU Y, DU D H C, et al. OpenANFV: accelerating network function virtualization with a consolidated framework in OpenStack [C]// SIGCOMM ’14: Proceedings of the 2014 ACM Conference on SIGCOMM. New York: ACM, 2015: 353-354.
[12] LI Y, GUO L, LIN T, et al. Key technique research on virtual machine management based on KVM [C]// AsiaSim 2016, SCS AutumnSim 2016: Proceedings of the 2016 Asian Simulation Conference on Theory, Methodology, Tools and Applications for Modeling and Simulation of Complex Systems, CCIS 645. Berlin: Springer-Verlag, 2016: 540-546.
[13] MERKEL D. Docker: lightweight Linux containers for consistent development and deployment [J]. Linux Journal, 2014, 2014(239): 2.
[14] KIM B S, LEE D, CHOI T H. Performance evaluation for Modbus/TCP using network simulator NS3 [C]// TENCON 2015: Proceedings of the 2015 IEEE Region 10 Conference. Piscataway, NJ: IEEE, 2016: 1-5.
[15] RAJANKUMAR P, NIMISHA P, KAMBOJ P. A comparative study and simulation of AODV MANET routing protocol in NS2 & NS3 [C]// Proceedings of the 2014 IEEE International Conference on Computing for Sustainable Global Development. Piscataway, NJ: IEEE, 2014: 889-894.
[16] ALDALBAHI A, RAHAIM M, KHREISHAH A, et al. Extending NS3 to simulate visible light communication at network-level [C]// Proceedings of the 2016 3rd IEEE International Conference on Telecommunications. Piscataway, NJ: IEEE, 2016: 1-6.
This work is partially supported by the National Natural Science Foundation of China (61672264), the National Key Research and Development Program of China (2016YFB0800801).
WUWenyan, born in 1994, M. S. candidate. Her research interests include network emulation, network security.
JIANGXin, born in 1982, Ph. D., engineer. His research interests include network and information security.
WANGXiaofeng, born in 1978, Ph. D., associate professor. His research interests include network emulation, network security.
LIUYuan, born in 1967, M. S., professor. His research interests include computer network, network security.