鄧 博,毛紅宇,王曉鋒,劉 淵
1(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122) 2(江南計算技術(shù)研究所,江蘇 無錫 214083) 3(江南大學(xué) 數(shù)字媒體學(xué)院,江蘇 無錫 214122)
當(dāng)前網(wǎng)絡(luò)仿真與效果評估平臺正成為新型網(wǎng)絡(luò)技術(shù)驗證與網(wǎng)絡(luò)安全技術(shù)評估的關(guān)鍵基礎(chǔ)設(shè)施,而網(wǎng)絡(luò)復(fù)現(xiàn)技術(shù)是整個平臺的基石[1].近年來,圍繞著如何復(fù)現(xiàn)大規(guī)模網(wǎng)絡(luò)這個問題,關(guān)鍵技術(shù)主要集中在網(wǎng)絡(luò)模擬、網(wǎng)絡(luò)仿真,和實物測試床三個方面.網(wǎng)絡(luò)模擬技術(shù)具有高度的可擴展性,可模擬超大規(guī)模的網(wǎng)絡(luò),美國倫斯勒理工學(xué)院曾經(jīng)就基于并行離散事件模擬技術(shù),模擬了百萬節(jié)點至十億節(jié)點級規(guī)模的網(wǎng)絡(luò)[2],但網(wǎng)絡(luò)模擬技術(shù)依靠相關(guān)模型僅僅是模擬系統(tǒng)的一部分功能,難以支撐現(xiàn)實用戶的操作和實際網(wǎng)絡(luò)應(yīng)用的部署,所構(gòu)建的虛擬網(wǎng)絡(luò)在逼真度上具有局限性.相比于網(wǎng)絡(luò)模擬,網(wǎng)絡(luò)仿真和實物測試床能夠有效滿足網(wǎng)絡(luò)實驗和評估中對逼真度的要求,加拿大維多利亞大學(xué)的Case Lab曾基于一千個物理服務(wù)器仿真了具有一萬臺虛擬機的網(wǎng)絡(luò)[3],不過網(wǎng)絡(luò)仿真在規(guī)模上仍難以與網(wǎng)絡(luò)模擬相比.實物測試床存在成本高、靈活性差等缺點,同樣難以支持大規(guī)模網(wǎng)絡(luò)的研究.因此,研究者提出虛實融合的實驗環(huán)境,即在基于網(wǎng)絡(luò)模擬或網(wǎng)絡(luò)仿真形成的虛擬網(wǎng)絡(luò)中接入實物設(shè)備,實現(xiàn)網(wǎng)絡(luò)模擬、網(wǎng)絡(luò)仿真、實物測試床的三層面融合,可同時滿足網(wǎng)絡(luò)研究對于規(guī)模性和逼真度的要求.相關(guān)研究現(xiàn)狀如下:
文獻[4]綜合分布式網(wǎng)絡(luò)模擬技術(shù)以及基于虛擬化的網(wǎng)絡(luò)仿真技術(shù),實現(xiàn)了模擬、仿真相融合的實驗平臺,重點研究了網(wǎng)絡(luò)模擬與網(wǎng)絡(luò)仿真的同步問題;文獻[5]重點研究了網(wǎng)絡(luò)模擬與仿真的同步技術(shù)以及高性能仿真模型,同樣實現(xiàn)了模擬與仿真相結(jié)合的實驗平臺;文獻[6]基于CloudNet云平臺構(gòu)建了輕量級、大規(guī)模的虛擬網(wǎng)絡(luò).上述方法實現(xiàn)了多種網(wǎng)絡(luò)復(fù)現(xiàn)方法的融合,但并未考慮實物網(wǎng)絡(luò)的接入.
文獻[7]運用ARP欺騙、報文捕獲與構(gòu)造實現(xiàn)了并行模擬器與實物設(shè)備互聯(lián)互通;文獻[8]實現(xiàn)了QualNet模擬器與實物互聯(lián)互通的方法,重點關(guān)注基于隧道模式與解析模式的虛實報文互通;文獻[9]摒棄了HLA/RTI的同步機制,實現(xiàn)了模擬器與實物網(wǎng)絡(luò)交替推進同步的分布式模擬機制;文獻[10]通過虛擬網(wǎng)卡橋接的虛實對接設(shè)計完成物理網(wǎng)絡(luò)和仿真網(wǎng)絡(luò)邊界節(jié)點的連通.OpenStack*OpenStack Community.http://www.openstack.org/, 2011作為當(dāng)前云計算平臺的代表,可實現(xiàn)虛擬機與實物機的互聯(lián)互通.
文獻[7-10]所述方法以及OpenStack平臺可有效實現(xiàn)虛擬網(wǎng)絡(luò)與實物網(wǎng)絡(luò)的互聯(lián)互通,但缺乏考慮虛實網(wǎng)絡(luò)仿真在可擴展性、靈活性、透明性、隔離性上的需求.所謂可擴展性是指能夠在虛實融合的網(wǎng)絡(luò)中接入更多的實物主機從而構(gòu)建更為復(fù)雜的網(wǎng)絡(luò),文獻[7-10]中雖然可以依靠交換機實現(xiàn)實物主機的擴展接入,但在目標網(wǎng)絡(luò)中加入多余交換機無疑會造成數(shù)據(jù)包傳輸不透明,且OpenStack只有一塊網(wǎng)卡負責(zé)連接實物設(shè)備,限制了虛實網(wǎng)絡(luò)的擴展性.所謂靈活性是指可靈活構(gòu)建復(fù)雜虛擬網(wǎng)絡(luò)、實物設(shè)備可靈活接入任意虛擬網(wǎng)絡(luò)以及可對目標虛實網(wǎng)絡(luò)間的流量進行靈活控制,文獻[7,8]中接入的實物設(shè)備都需要在虛擬網(wǎng)絡(luò)中建立模擬節(jié)點與之映射,配置相對復(fù)雜,實物設(shè)備的接入不夠靈活,文獻[10]需要對虛擬節(jié)點的模擬網(wǎng)卡與宿主機虛擬網(wǎng)卡進行橋接,難以靈活構(gòu)建復(fù)雜的虛擬網(wǎng)絡(luò).所謂透明性是指數(shù)據(jù)包傳輸路徑中所涉及到的中間節(jié)點都是不可見的,其傳輸過程完全和真實環(huán)境中一樣,文獻[7-9]都需要對虛實報文進行相互轉(zhuǎn)換或者重構(gòu)才能保證實物主機和模擬節(jié)點之間的通信,而 OpenStack會改變數(shù)據(jù)包的源地址或目的地址,它們在透明性上都有一定限制.所謂隔離性是指即使存在多組完全相同的虛實融合的網(wǎng)絡(luò),數(shù)據(jù)包也能被送往正確的目的主機,多個實驗之間不會相互影響,文獻[7-10]均未考慮實驗的隔離性.
本文針對上述方法存在的不足,提出了一種可擴展、透明、可靈活配置且支持實驗隔離的虛實網(wǎng)絡(luò)融合的仿真方法,該仿真方法可以實現(xiàn)多臺實物主機同時接入任意虛擬網(wǎng)絡(luò)并同時進行通信,虛實網(wǎng)絡(luò)間的通信是透明的并且不會相互影響,可根據(jù)實際需要任意更改實物主機所接入的虛擬網(wǎng)絡(luò)以及可對虛實網(wǎng)絡(luò)間的流量進行靈活控制.
本方法首先搭建虛實互聯(lián)平臺,該平臺以O(shè)penStack云平臺為基礎(chǔ),擴展后能同時在虛擬網(wǎng)絡(luò)中接入多臺實物主機,實現(xiàn)多組虛實融合網(wǎng)絡(luò)的通信.
OpenStack虛實互聯(lián)的基本架構(gòu)主要包括虛擬網(wǎng)絡(luò)、虛實互聯(lián)服務(wù)器和實物主機,其中虛擬網(wǎng)絡(luò)基于OpenStack云平臺構(gòu)建,虛實互聯(lián)服務(wù)器為OpenStack網(wǎng)絡(luò)節(jié)點.OpenStack云平臺的基本架構(gòu)包括一個控制節(jié)點,一個網(wǎng)絡(luò)節(jié)點和若干個計算節(jié)點,控制節(jié)點負責(zé)系統(tǒng)的管控功能,網(wǎng)絡(luò)節(jié)點負責(zé)提供諸如DHCP和路由等網(wǎng)絡(luò)服務(wù),計算節(jié)點負責(zé)為虛擬主機的建立提供資源,其中網(wǎng)絡(luò)節(jié)點只有一塊外網(wǎng)網(wǎng)卡,該網(wǎng)卡用來連接實物主機.在本文中,使用Open vSwitch[11](OVS) 作為虛擬交換機,其根據(jù)流表規(guī)則來轉(zhuǎn)發(fā)數(shù)據(jù)包以及根據(jù)vlan tag來隔離流量的特點可以方便實現(xiàn)對數(shù)據(jù)包傳輸路徑的控制,各節(jié)點之間的通訊方式采用GRE隧道封裝,網(wǎng)絡(luò)節(jié)點和控制節(jié)點相互獨立開來.
OpenStack基本架構(gòu)中只含有一個虛實互聯(lián)服務(wù)器、一塊外網(wǎng)網(wǎng)卡的特性大大限制了虛實融合網(wǎng)絡(luò)的擴展性.在基本架構(gòu)的基礎(chǔ)上,可以通過添加虛實互聯(lián)服務(wù)器以及添加外網(wǎng)網(wǎng)卡來實現(xiàn)擴展.圖1為擁有兩個虛實互聯(lián)服務(wù)器,每個虛實互聯(lián)服務(wù)器擁有兩塊外網(wǎng)網(wǎng)卡的環(huán)境拓撲.本來只能直連一臺實物主機,擴展后能夠直連4臺實物主機,加入實物交換機和路由器之后可構(gòu)成復(fù)雜的實物網(wǎng)絡(luò)以接入系統(tǒng).
圖1 融合網(wǎng)絡(luò)仿真系統(tǒng)的拓撲Fig.1 Topology of the fusional network emulation system
如圖1中的拓撲,虛實互聯(lián)服務(wù)器2為擴展新添加的虛實互聯(lián)服務(wù)器,但由于OpenStack本身的機制同一時間只允許一臺虛實互聯(lián)服務(wù)器提供服務(wù),所以實物機3、實物機4并不能直接與虛擬網(wǎng)絡(luò)通信,并且虛實互聯(lián)過程中,數(shù)據(jù)包在虛實互聯(lián)服務(wù)器的router namespace中會進行地址轉(zhuǎn)換,造成數(shù)據(jù)包傳輸不透明.為了解決以上兩個問題,需對虛實互聯(lián)服務(wù)器中OVS的流表進行配置從而改變數(shù)據(jù)包的傳輸路徑,另外在虛擬網(wǎng)絡(luò)的構(gòu)建上本文摒棄OpenStack自帶的虛擬路由器,即上文中提到的route namespace,而使用文獻[12]中定義的虛擬路由器.
圖2 各模塊之間的聯(lián)系Fig.2 Relation between modules
虛實互聯(lián)服務(wù)器是整個虛實互聯(lián)系統(tǒng)的重要組成部分,其依托于OpenStack網(wǎng)絡(luò)節(jié)點,包含數(shù)據(jù)庫查詢模塊、流表配置模塊、流表匹配模塊和動作執(zhí)行模塊四個模塊,各模塊之間的聯(lián)系如圖2所示,各個模塊的介紹如下:
(a) 數(shù)據(jù)庫查詢模塊:該模塊負責(zé)查詢OpenStack 中的neutron數(shù)據(jù)庫和OVS中的ovs-db數(shù)據(jù)庫,首先從neutron數(shù)據(jù)庫中得到各個虛擬網(wǎng)絡(luò)的基本信息,再用這些信息作為關(guān)鍵字去ovs-db中查詢得到各個虛擬網(wǎng)絡(luò)的vlan tag;
(b) 流表配置模塊:該模塊根據(jù)數(shù)據(jù)庫查詢模塊得到的信息針對每個虛擬網(wǎng)絡(luò)自動配置OVS各個網(wǎng)橋中的流表,以實現(xiàn)所有網(wǎng)絡(luò)節(jié)點都能轉(zhuǎn)發(fā)虛實網(wǎng)絡(luò)間的數(shù)據(jù)包以及數(shù)據(jù)包的透明傳輸;
(c) 流表匹配模塊:該模塊負責(zé)將數(shù)據(jù)包進行解析,并把得到的相關(guān)信息依次與各條流表進行匹配;
(d) 動作執(zhí)行模塊:該模塊負責(zé)根據(jù)流表匹配模塊中所匹配到的流表對數(shù)據(jù)包執(zhí)行相關(guān)操作,常用操作包括轉(zhuǎn)發(fā)和丟棄.
作為整個系統(tǒng)中最重要的一個部分,流表配置的功能是實現(xiàn)所有網(wǎng)絡(luò)節(jié)點都能轉(zhuǎn)發(fā)虛實網(wǎng)絡(luò)間的數(shù)據(jù)包以及數(shù)據(jù)包的透明傳輸,主要涉及到數(shù)據(jù)庫查詢模塊和流表配置模塊,配置過程需要在每個虛實互聯(lián)服務(wù)器分別進行.
流表的配置是對應(yīng)于每一個虛擬網(wǎng)絡(luò)的,當(dāng)用戶添加虛擬網(wǎng)絡(luò)時,需要為新添加的虛擬網(wǎng)絡(luò)配置流表,其詳細步驟如下:
步驟1.遠程連接控制節(jié)點的neutron數(shù)據(jù)庫;
步驟2.判斷neutron數(shù)據(jù)庫中是否有虛實互聯(lián)映射表,該表在本文中被命名為flowInfo,如果有則進入下一步,否則建立該表,并在本網(wǎng)絡(luò)節(jié)點OVS中br-ex(br-ex為OVS中的一個網(wǎng)橋,負責(zé)內(nèi)部虛擬網(wǎng)絡(luò)與外部實物設(shè)備的通信)上添加流表,使所有從虛擬網(wǎng)絡(luò)進入的流量能夠被發(fā)送到實物網(wǎng)絡(luò);
步驟3.使用內(nèi)連接查詢,查詢neutron數(shù)據(jù)庫的ports表和subnets表,并與flowInfo表中的數(shù)據(jù)對比,查找flowInfo表里未記錄的網(wǎng)絡(luò)的IP地址、id和其對應(yīng)的DHCP接口的名字,這些網(wǎng)絡(luò)即為新添加的尚未處理過的網(wǎng)絡(luò),如果找到,進入下一步;
步驟4.根據(jù)上一步得到的接口名字查詢本虛實互聯(lián)服務(wù)器的ovs-db,找到該接口,得到其所在網(wǎng)絡(luò)的vlan tag;
步驟5.將網(wǎng)絡(luò)的id、IP地址和vlan tag以及自定義的節(jié)點名稱存入flowInfo表;
步驟6.根據(jù)得到的信息為每個網(wǎng)絡(luò)在虛實互聯(lián)服務(wù)器的OVS中br-int(br-int為OVS中的一個網(wǎng)橋,待轉(zhuǎn)發(fā)的數(shù)據(jù)包都會被送到這里)上建立兩條流表規(guī)則,對應(yīng)于IP協(xié)議和ARP協(xié)議,這兩條流表規(guī)則的功能是使所有從實物網(wǎng)絡(luò)進來的流量都根據(jù)數(shù)據(jù)包的源地址修改數(shù)據(jù)包的vlan tag.
同樣,用戶刪除虛擬網(wǎng)絡(luò)時,需要針對被刪除的虛擬網(wǎng)絡(luò)刪除對應(yīng)的流表規(guī)則和flowInfo表中的相關(guān)信息,其詳細步驟如下:
步驟1.在neutron數(shù)據(jù)庫中,以flowInfo表中網(wǎng)絡(luò)的IP地址為關(guān)鍵字查找本虛實互聯(lián)服務(wù)器中存在而subnets表里不存在的網(wǎng)絡(luò),記錄這些網(wǎng)絡(luò)的IP地址,這些網(wǎng)絡(luò)即為被刪除的網(wǎng)絡(luò);
步驟2.從flowInfo表中刪除這些網(wǎng)絡(luò)所在的行;
步驟3.根據(jù)步驟1中得到的IP地址,從本虛實互聯(lián)服務(wù)器中刪除對應(yīng)的流表規(guī)則.
為了操作方便,可將上述添加和刪除的過程組合成為一個流程,設(shè)計并編寫代碼實現(xiàn)自動化配置.組合后的流程如圖3所示.
圖3 操作流表的流程圖Fig.3 Process of operating flow rules
如圖1所示拓撲,配置完成后,相當(dāng)于把虛實互聯(lián)服務(wù)器的em2和em3、 em4直接相連,em2連接計算節(jié)點,相當(dāng)于與虛擬機相連,因此無論是實到虛還是虛到實的數(shù)據(jù)包都不會經(jīng)過router namespace,進而也不會進行地址轉(zhuǎn)換而造成數(shù)據(jù)包傳輸不透明;同樣的,數(shù)據(jù)包也不會被攔截,進而實現(xiàn)所有的虛實互聯(lián)服務(wù)器都可以轉(zhuǎn)發(fā)數(shù)據(jù)包.
流表匹配基于配置好的流表規(guī)則,依次將數(shù)據(jù)包的基本信息和相關(guān)流表條件進行匹配,匹配成功后執(zhí)行該條流表規(guī)則指定的相關(guān)操作.OVS支持多級流表,一個典型的匹配過程從table0里優(yōu)先級最大的規(guī)則開始匹配.
虛實互聯(lián)映射表存儲了流表配置所需的基本信息,流表配置模塊通過查詢該表可以獲得近期新添加的和被刪除的網(wǎng)絡(luò),其中存儲的主要信息除了虛擬網(wǎng)絡(luò)的id、虛擬網(wǎng)絡(luò)的IP地址和虛擬網(wǎng)絡(luò)對應(yīng)的vlan tag之外,還包括該條信息所對應(yīng)的虛實互聯(lián)服務(wù)器的唯一標識.在擴展成多虛實互聯(lián)服務(wù)器的情況下,即使是同一個虛擬網(wǎng)絡(luò),在不同的虛實互聯(lián)服務(wù)器也會對應(yīng)于不同的vlan tag,也就是說在虛實互聯(lián)映射表中,同一個虛擬網(wǎng)絡(luò)會對應(yīng)于多行信息,所以需要為不同的虛實互聯(lián)服務(wù)器定義唯一的標識,以保證在進行流表配置的時候能夠獲得對應(yīng)于當(dāng)前被操作的虛實互聯(lián)服務(wù)器的正確的信息.虛實互聯(lián)映射表的結(jié)構(gòu)如表1所示.
表1 虛實互聯(lián)映射表的結(jié)構(gòu)
Table 1 Structure of the mapping table for fusional network
在本文中實現(xiàn)了三個方面的靈活配置,一是可靈活構(gòu)建虛擬網(wǎng)絡(luò),二是實物機可靈活接入虛擬網(wǎng)絡(luò),三是虛實網(wǎng)絡(luò)間的流量可靈活控制.
基于OpenStack云平臺可任意啟動虛擬主機,OVS作為虛擬交換機可使同一虛擬網(wǎng)絡(luò)中的虛擬主機進行通信,利用文獻[12]中的虛擬路由器可以連通不同的虛擬網(wǎng)絡(luò),從而靈活構(gòu)建大規(guī)模、復(fù)雜的虛擬網(wǎng)絡(luò).
在前文中通過流表配置實現(xiàn)了虛實互聯(lián)服務(wù)器中流量的無縫傳輸.可以把虛實互聯(lián)服務(wù)器看作是一臺交換機,有多個虛擬網(wǎng)絡(luò)連接到該交換機上,實物機也通過外網(wǎng)網(wǎng)卡連接上去,因此實物機想與任意一個虛擬網(wǎng)絡(luò)中的虛擬機互聯(lián),只需把該實物機的IP地址配置成和虛擬機在同一網(wǎng)絡(luò)即可,改變實物機的IP地址就可以和不同虛擬網(wǎng)絡(luò)中的虛擬機互聯(lián),這便實現(xiàn)了實物機可靈活接入虛擬網(wǎng)絡(luò).如圖4所示,給PC機配置不同的IP地址以接入不同的虛擬網(wǎng)絡(luò).
圖4 靈活配置Fig.4 Flexible configuration
在某些實驗中,實驗人員對虛實網(wǎng)絡(luò)間流量的流向有特定要求,本文中的環(huán)境可以實現(xiàn)流量限制以及網(wǎng)絡(luò)分流.由于所有虛實網(wǎng)絡(luò)間的流量都會經(jīng)過虛實互聯(lián)服務(wù)器,所以同樣利用虛實互聯(lián)服務(wù)器上OVS的流表規(guī)則可以實現(xiàn)對流量的靈活控制,例如指定某些網(wǎng)絡(luò)的流量只能從某幾塊網(wǎng)卡進出.
在實際運用中,往往會存在多組完全一致的網(wǎng)絡(luò)仿真應(yīng)用,并同時進行仿真測試,即存在多組完全一致的虛實融合網(wǎng)絡(luò)共存的情況.這些網(wǎng)絡(luò)中作為數(shù)據(jù)包收發(fā)主機的虛擬機和實物機的IP地址分別相同,在這種情況下,實物機發(fā)出的數(shù)據(jù)包進入虛實互聯(lián)服務(wù)器后不能僅僅根據(jù)數(shù)據(jù)包的源地址和目的地址來修改vlan tag,同樣的,虛擬機發(fā)出的數(shù)據(jù)包也不能不經(jīng)判斷直接發(fā)送到實物網(wǎng)絡(luò),否則數(shù)據(jù)包很有可能被發(fā)送到錯誤的主機.
圖5 實驗隔離Fig.5 Experiment isolation
實物交換機可以使用vlan來隔離網(wǎng)絡(luò),給屬于不同網(wǎng)絡(luò)的接口配置上各不相同的vlan id后,即使是各主機都處于地址相同的網(wǎng)絡(luò),只要它們的vlan id不同也不能互相通信.本文參考實物交換機的這種特點,將流表的匹配條件具體到實物機所連接的端口.如果存在多組完全一致的虛實融合的網(wǎng)絡(luò),就根據(jù)實物機所連接的端口的編號來更改實物機發(fā)送的數(shù)據(jù)包的vlan tag,這樣一來,即使是存在多個地址相同的虛擬網(wǎng)絡(luò),一臺實物機也始終只能與一個虛擬網(wǎng)絡(luò)進行通信,同樣配置該虛擬網(wǎng)絡(luò)的數(shù)據(jù)包也只能從這個接口發(fā)出,起到了隔離網(wǎng)絡(luò)隔離實驗的目的.圖5所示是多實驗場景隔離的流程圖.
運用本文中的方法構(gòu)建一個可擴展、透明、可靈活配置且支持實驗隔離的虛實互聯(lián)環(huán)境,該環(huán)境中的多臺虛實互聯(lián)服務(wù)器管控所有虛實網(wǎng)絡(luò)間的流量.如圖6所示,環(huán)境中擁有兩臺虛實互聯(lián)服務(wù)器,每臺擁有兩塊外網(wǎng)網(wǎng)卡.創(chuàng)建兩個虛擬網(wǎng)絡(luò),虛擬網(wǎng)絡(luò)1的地址為192.168.100.0/24,虛擬網(wǎng)絡(luò)2的地址為172.18.146.0/24;創(chuàng)建4臺虛擬機,VM1和VM2接入虛擬網(wǎng)絡(luò)1,IP地址分別為192.168.100.3和192.168.100.4,VM3和VM4接入虛擬網(wǎng)絡(luò)2,IP地址分別為172.18.146.3和172.18.146.4;4臺實物機通過4塊外網(wǎng)網(wǎng)卡接入,分別配置IP地址,PC1為192.168.100.101,PC2為192.168.100.102,PC 3為172.18.146.101,PC4為172.18.146.102.
圖6 實驗拓撲圖Fig.6 Topology for the experiment
基于3.1中所述的流表配置與匹配方法,面向圖6所示實驗拓撲圖,設(shè)計了自動化配置代碼,自動為兩個虛擬網(wǎng)絡(luò)配置流表規(guī)則.配置完成后,查看虛實互聯(lián)映射表中的相關(guān)信息,其結(jié)果如表2所示,接著,在虛實互聯(lián)服務(wù)器1上用命令查看相關(guān)流表規(guī)則,結(jié)果如圖7所示.
表2 flowInfo表中的信息
Table 2 Information of flowInfo table
idipvlantagnoded211528a-6647-4a22-a338-c7598c6325eb192.168.100.0/242Network1e11f4a0d-9d35-44b9-bdcc-98608031468e172.18.146.0/243Network1d211528a-6647-4a22-a338-c7598c6325eb192.168.100.0/248Network2e11f4a0d-9d35-44b9-bdcc-98608031468e172.18.146.0/249Network2
圖7 br-int中的流表規(guī)則Fig.7 Flow rules in br-int
從結(jié)果可以看出,因為環(huán)境中有兩臺虛實互聯(lián)服務(wù)器,所以在表2中每個虛擬網(wǎng)絡(luò)都對應(yīng)兩行數(shù)據(jù),它們的vlan tag不同,node表示該行數(shù)據(jù)對應(yīng)的虛實互聯(lián)服務(wù)器.
如圖6所示的環(huán)境拓撲,為了驗證通過擴展后實物設(shè)備確實可以與同一網(wǎng)絡(luò)的虛擬機通信,用同屬一個網(wǎng)絡(luò)的實物機和虛擬機互相執(zhí)行ping命令,結(jié)果顯示同一網(wǎng)絡(luò)的實物機和虛擬機可以通過擴展后的環(huán)境互相通信,表3是PC1和各臺虛擬機互ping的結(jié)果.
表3 連通性測試結(jié)果
Table 3 Result of the connectivity test
源主機目的主機是否互通PC1VM1是PC1VM2是PC1VM3否PC1VM4否
基于3.1的配置,使得數(shù)據(jù)包在虛實互聯(lián)服務(wù)器中跳過地址轉(zhuǎn)換的同時能夠保證被發(fā)往目的主機,中間不經(jīng)過router namespace就不會在數(shù)據(jù)包的路由路徑上多出一跳.在本測試中選用PC1和VM1作為數(shù)據(jù)包傳輸?shù)脑粗鳈C和目的主機,查看數(shù)據(jù)包的路由路徑,結(jié)果如圖8(a)所示路由只有目的主機一跳,證明數(shù)據(jù)包傳輸?shù)耐该餍?
圖8 透明性測試Fig.8 Test for transparency
接下來,嘗試加入虛擬路由器,參與測試的實物機和虛擬機不屬于同一個網(wǎng)絡(luò).實物機選用PC1,虛擬機選用VM3,中間經(jīng)過一個虛擬路由器,拓撲如圖8(b)所示,查看數(shù)據(jù)包的路由路徑,結(jié)果如圖8(c)所示,PC1到VM3之間的路由有兩跳,符合預(yù)期,證明透明性.
如圖6所示拓撲,PC1接入虛擬網(wǎng)絡(luò)1可以和VM1、VM2互通.為了驗證靈活配置的有效性,基于3.3所述的配置策略,把PC1的IP地址更改為172.18.146.201,更改后PC1應(yīng)該是接入虛擬網(wǎng)絡(luò)2的.使用ping命令測試連通性,結(jié)果顯示PC1可以與VM3、VM4互通,證明實物機可靈活接入虛擬網(wǎng)絡(luò).為了進一步驗證實物主機可靈活接入,我們在環(huán)境中又添加了3個獨立的虛擬網(wǎng)絡(luò),在整個環(huán)境擁有5個虛擬網(wǎng)絡(luò)的情況下,把實物機分5次接入,每次通過更改實物機的IP地址來把實物機接入不同的虛擬網(wǎng)絡(luò),實驗結(jié)果均符合預(yù)期,即實物機可以且僅可與處于同一網(wǎng)絡(luò)中的虛擬機通信.
此外,在虛實互聯(lián)服務(wù)器中配置流表可實現(xiàn)流量限制.使網(wǎng)絡(luò)192.168.100.0/24的流量只能通過虛實互聯(lián)服務(wù)器1出入,網(wǎng)絡(luò)172.18.146.0/24的流量只能通過虛實互聯(lián)服務(wù)器2進出,測試各臺主機之間的連通性,結(jié)果符合預(yù)期,證明虛實網(wǎng)絡(luò)的流量可靈活控制.
為了驗證隔離性,在圖6所示拓撲的基礎(chǔ)上,再建立一個地址為192.168.100.0/24的虛擬網(wǎng)絡(luò),并加入一臺地址為192.168.100.3的虛擬機VM5,并將PC3的IP地址更改為192.168.100.101,拓撲如圖9所示.
圖9 隔離性測試的拓撲Fig.9 Topology for isolation test
如圖9所示,環(huán)境中存在兩組完全一致的虛實融合的網(wǎng)絡(luò).在4.1中所配置流表的基礎(chǔ)上,基于3.4的隔離策略,根據(jù)兩臺實物機所連接的eth1-1和eth2-1的編號再分別為兩臺實物機定制兩條流表,然后測試其連通性,結(jié)果如表4所示.結(jié)果顯示PC1只能與虛擬網(wǎng)絡(luò)1互通,PC3只能與虛擬網(wǎng)絡(luò)3互通,證明隔離性.
表4 隔離性測試結(jié)果
Table 4 Result of the isolation test
源主機目的主機是否互通PC1VM1是PC1VM5否PC3VM1否PC3VM5是
實驗中所用的兩個計算節(jié)點的配置分別為4核16G以及8核32G,基于這樣的配置,盡可能地構(gòu)建最大規(guī)模的虛擬網(wǎng)絡(luò).根據(jù)虛擬網(wǎng)絡(luò)中所生成的虛擬機的配置不同,所構(gòu)建的虛擬網(wǎng)絡(luò)的規(guī)模也會有所差異,在本實驗中,把虛擬機的配置分為三個等級,分別為小(內(nèi)存512M,磁盤1G)、中(內(nèi)存1G,磁盤10G)、大(內(nèi)存2G,磁盤20G).經(jīng)過測試,當(dāng)在環(huán)境中只存在某一種類型的虛擬機時,可以啟動的虛擬機數(shù)量為,小型140臺,中型59臺,大型29臺,通過擴展可以啟動更多虛擬機構(gòu)建大規(guī)模虛擬網(wǎng)絡(luò),而實物主機的擴展接入則可以通過增加虛實互聯(lián)服務(wù)器外網(wǎng)網(wǎng)卡或者直接增加虛實互聯(lián)服務(wù)器實現(xiàn),即可以通過擴展計算節(jié)點和虛實互聯(lián)服務(wù)器實現(xiàn)虛擬網(wǎng)絡(luò)和實物設(shè)備接入的擴展.基于本實驗中的環(huán)境,我們構(gòu)建了擁有4個虛擬網(wǎng)絡(luò)、3個虛擬路由器以及若干臺虛擬機的復(fù)雜虛擬網(wǎng)絡(luò),結(jié)合實物主機,針對同一個虛擬網(wǎng)絡(luò)、間隔一跳的虛實網(wǎng)絡(luò)和間隔四跳的虛實網(wǎng)絡(luò),從吞吐量、延時、丟包率三個方面測試了網(wǎng)絡(luò)的性能.
圖10是針對三種類型網(wǎng)絡(luò)的吞吐量測試柱狀圖,針對每一種類型網(wǎng)絡(luò),均測試10次然后取平均值.由于虛擬交換機本身支持萬兆網(wǎng),所以同一個虛擬網(wǎng)絡(luò)中,吞吐量可達到7495.17Mb/s,而環(huán)境中的服務(wù)器以及實物主機僅支持千兆網(wǎng),所以在虛實網(wǎng)絡(luò)中,吞吐量應(yīng)接近1000Mb/s,其中間隔一跳的虛實網(wǎng)絡(luò)為913.05Mb/s,間隔四跳的虛實網(wǎng)絡(luò)為912.92Mb/s,可見虛擬路由器的數(shù)量并沒有影響網(wǎng)絡(luò)的吞吐量.
圖11是針對三種類型網(wǎng)絡(luò)的延時測試柱狀圖,針對每一種類型網(wǎng)絡(luò),同樣均測試10次然后取平均值.從圖中可以看出同一個虛擬網(wǎng)絡(luò)中的延遲為72.22μs,而由于虛擬路由器的加入,在虛實網(wǎng)絡(luò)中延時有所增大,并且虛擬路由器越多延時越大,一跳和四跳的情況分別為205.78μs和495.32μs,但延時依然保持在極低的水平.
800070006000500040003000200010000Mbs/同一虛擬網(wǎng)絡(luò)一跳虛實網(wǎng)絡(luò)四跳虛擬網(wǎng)絡(luò)749517.91305.91292.同一虛擬網(wǎng)絡(luò)一跳虛實網(wǎng)絡(luò)四跳虛擬網(wǎng)絡(luò)6005004003002001000μs7222.20578.49532.同一虛擬網(wǎng)絡(luò)一跳虛實網(wǎng)絡(luò)四跳虛擬網(wǎng)絡(luò)19.17.15.13.11.09.07.05.03.01.0400500600700800Mbs/%圖10 吞吐量測試結(jié)果圖11 延時測試結(jié)果圖12 丟包率測試結(jié)果Fig.10 ResultsforthroughputtestFig.11 ResultsforlatencytestFig.12 Resultsforlossratiotest
圖12是針對三種類型網(wǎng)絡(luò)的丟包率測試,通過在成對的主機之間不斷發(fā)送UDP報文并不斷調(diào)整源主機的發(fā)送帶寬來找到網(wǎng)絡(luò)的瓶頸,針對每一種發(fā)送帶寬均進行10次測試并取平均值.由于在發(fā)送帶寬很小的情況下測出的丟包率沒有意義,所以本實驗中選取區(qū)間為200Mb/s至800Mb/s的發(fā)送帶寬,以100Mb/s遞增.從圖中可以看出,雖然網(wǎng)絡(luò)中存在不確定因素,但同一虛擬網(wǎng)絡(luò)中,200Mb/s至700Mb/s區(qū)間中丟包率保持在極低的水平,均未超過0.01%,但當(dāng)發(fā)送帶寬達到800Mb/s時,丟包率超過了0.1%,這種情況下的丟包率已經(jīng)處于較高水平.對于一跳虛實網(wǎng)絡(luò)和四跳虛實網(wǎng)絡(luò),瓶頸分別為800Mb/s和700Mb/s,雖然虛擬路由器的加入降低了發(fā)送帶寬的瓶頸,但在保持丟包率極低的情況下依然可以達到較高的發(fā)送帶寬.
從針對三種網(wǎng)絡(luò)分別進行的三項測試來看,本文提出的云平臺支撐下的虛實網(wǎng)絡(luò)融合仿真方法可以構(gòu)建一個可擴展且性能良好的虛實網(wǎng)絡(luò)融合系統(tǒng).
網(wǎng)絡(luò)仿真是當(dāng)前進行網(wǎng)絡(luò)研究的主要方法,虛實互聯(lián)的網(wǎng)絡(luò)仿真技術(shù)更是網(wǎng)絡(luò)仿真領(lǐng)域研究的熱點.本文在分析當(dāng)前網(wǎng)絡(luò)仿真技術(shù)存在的不足的基礎(chǔ)上,提出了一種透明、可擴展、可靈活配置、可隔離的虛實網(wǎng)絡(luò)融合的網(wǎng)絡(luò)仿真方法,針對這四個方面進行了虛實網(wǎng)絡(luò)融合仿真方法的設(shè)計以及實驗驗證.下一步工作將重點研究面向大規(guī)模虛實融合網(wǎng)絡(luò)仿真應(yīng)用的自動化、快速部署策略.
[1] Fang Bin-xing,Jia Yan,Li Ai-ping,et al.Cyber ranges:state-of-the-art and research challenges [J].Journal of Cyber Security,2016,1(3):1-9.
[2] Ning Liu,Christopher Carothers,Jason Cope,et al.Model and simulation of exascale communication networks [J].Journal of Simulation,2012,6(4):227-236.
[3] Stephen W Neville,Kin Fun Li.The rational for developing larger-scale 1000+ machine emulation-based research test beds [C].Proceedings of the 23rd International Conference on Advanced Information Networking and Applications (AINA′09),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(8):206-214.
[5] Miguel A Erazo,Jason Liu.Leveraging symbiotic relationship between simulation and emulation for scalable network experimentation [C].Proceedings of the 1st ACM SIGSIM Conference on Principles of Advanced Discrete Simulation (SIGSIM PADS′13),2013:79-90.
[6] Dutta A,Gnawali O.Large-scale network protocol emulation on commodity cloud[C].Proceedings of IEEE Global Communication Conference (GLOBECOM′14),2014:1114-1119.
[7] Fei Hai-qiang,Hao Zhi-yu,Yun Xiao-chun,et al.System and method for realizing seamless access network simulator of physical device,103078769A[P].2013-05-01.
[8] Li Ping,Gong Peng,Kong Jie-jun,et al.Physical access method for QualNet network HILS,103200190A[P].2013-07-10.
[9] Zhang Jian-jun,Wei Tao,Tian Yong-chun,et al.Distributed hardware-in-loop network simulation system and its hardware-in-loop interface control method,101645813[P].2010-02-10.
[10] Li Guang-rong.Design and implementation of the virtual and reality network system based on NS-3 [D].Harbin:Harbin Institute of Technology,2015.
[11] Pfaff B,Pettit J,Amidon K,et al.Extending networking into the virtualization layer [C].Proceedings of the 8th ACM Workshop on Hot Topics in Networks (HotNets′09),2009.
[12] Huang Min-huan,Zhang Yao-xue,Xu Fei,et al.Design of virtualization platform for router emulation [J].Journal of System Simulation,2014,26(8):1672-1677.
附中文參考文獻:
[1] 方濱興,賈 焰,李愛平,等.網(wǎng)絡(luò)空間靶場技術(shù)研究[J].信息安全學(xué)報,2016,1(3):1-9.
[7] 費海強,郝志宇,云曉春,等.一種實現(xiàn)實物設(shè)備無縫接入網(wǎng)絡(luò)模擬器的系統(tǒng)及方法:中國,103078769A[P].2013-05-01.
[8] 栗 蘋,龔 鵬,孔杰軍,等.一種面向QualNet網(wǎng)絡(luò)半實物仿真的實物接入方法:中國,103200190A[P].2013-07-10.
[9] 張建軍,韋 濤,田永春,等.分布式半實物網(wǎng)絡(luò)仿真系統(tǒng)及其半實物接口控制方法:中國,101645813[P].2010-02-10.
[10] 李廣榮.基于NS-3的虛實網(wǎng)絡(luò)結(jié)合系統(tǒng)的設(shè)計與實現(xiàn)[D].哈爾濱:哈爾濱工業(yè)大學(xué),2015.
[12] 黃敏桓,張堯?qū)W,許 飛,等.基于虛擬化技術(shù)的路由仿真實驗平臺設(shè)計[J].系統(tǒng)仿真學(xué)報,2014,26(8):1672-1677.