隨著虛擬化技術(shù)的成熟和x86 CPU性能的發(fā)展,越來越多的數(shù)據(jù)中心開始向虛擬化轉(zhuǎn)型。數(shù)據(jù)中心虛擬化的基礎(chǔ)網(wǎng)絡(luò)技術(shù)趨勢,延續(xù)了傳統(tǒng)數(shù)據(jù)中心性能、安全、永續(xù)的基本需求,而且進(jìn)一步簡化網(wǎng)絡(luò)架構(gòu),更有力支撐應(yīng)用層面虛擬化,降低運維復(fù)雜度,提高了靈活性。
當(dāng)前數(shù)據(jù)中心虛擬化發(fā)展面臨許多關(guān)鍵性問題,而安全問題首當(dāng)其沖,并且隨著云計算的不斷普及,安全問題的重要性呈現(xiàn)逐步上升趨勢,已成為制約其發(fā)展的重要因素。
在虛擬化當(dāng)中有一種重大威脅,即同一個物理服務(wù)器上的多個虛擬機(jī)彼此之間的通信都是在虛擬交換機(jī)上進(jìn)行的,這一點是防火墻、入侵檢測、預(yù)防系統(tǒng)和異常行為檢測器,這些針對物理服務(wù)器網(wǎng)絡(luò)流量的外部網(wǎng)絡(luò)安全工具視若無睹的。
針對這些安全問題,本文旨在設(shè)計出一種合理的與數(shù)據(jù)中心虛擬機(jī)通信方式,以解決目前安全方面的盲點。虛擬以太網(wǎng)端口匯聚器((Virtual Ethernet Port Aggregator,VEPA)是最新IEEE 802.1Qbg草案標(biāo)準(zhǔn)化工作的一個組成部分,其設(shè)計目標(biāo)是降低與高度虛擬化部署有關(guān)的復(fù)雜性和提高數(shù)據(jù)的安全性。運用VEPA技術(shù),能有效解決虛擬機(jī)之間相互通訊無法監(jiān)控的問題,為云架構(gòu)數(shù)據(jù)中心的實現(xiàn)提供安全的屏障。
1 云計算數(shù)據(jù)中心架構(gòu)概述
云計算系統(tǒng)分成兩部分:前端和后端,二者一般通過網(wǎng)絡(luò)互相連接。前端指的是用戶的計算機(jī)或客戶端,后端指的是系統(tǒng)中的計算機(jī)群,也就是前端包括用戶計算機(jī)(或計算機(jī)網(wǎng)絡(luò))以及云計算系統(tǒng)登陸程序。不同的云計算系統(tǒng)具有不同的用戶界面。后端是各種各樣的計算機(jī)、服務(wù)器和數(shù)據(jù)存儲系統(tǒng),它們共同組成了云計算系統(tǒng)中的云。理論上,任何應(yīng)用程序都可以在云計算系統(tǒng)中運行。
一般來說,每個應(yīng)用程序都有其專用的服務(wù)器。管理整個系統(tǒng)的是中央服務(wù)器,它監(jiān)管流量和用戶需求并確保一切運行順利。中央服務(wù)器遵循一套被稱為協(xié)議的規(guī)則,并使用一種被稱為中間件(middleware)的專門軟件。中間件可以使聯(lián)網(wǎng)的計算機(jī)互相通訊。
VMware和微軟公司的Hyper-V是目前支持云計算完全虛擬化的主流產(chǎn)品。以WM ware為例,在完全虛擬化的環(huán)境下,VMware ESXi運行在裸硬件上,充當(dāng)主機(jī)操作系統(tǒng)。在裝有WM ware Esxj的物理主機(jī)上虛擬出虛擬服務(wù)器,運行客戶端操作系統(tǒng)。整個WMvare ESXi的物理主機(jī)集群由一臺VMware vCenter Server來管理。如圖1所示。
圖1 VMware私有云架構(gòu)
2 基于VEPA技術(shù)改進(jìn)的虛擬通信解決方案
2.1 虛擬以太網(wǎng)端口匯聚器(VEPA)
VEPA是IEEE 802.1Qbg標(biāo)準(zhǔn)草案的核心部分。VEPA的核心機(jī)制就是兩條:修改生成樹協(xié)議、重用Q-in-Q。
VEPA是虛擬機(jī)管理器內(nèi)的一個分層,它采用一種新型轉(zhuǎn)發(fā)模式融人物理交換機(jī)中,使流量能夠從來時的端口“原路返回”。VEPA能接納所有虛擬機(jī)之間的傳輸資料,然后直接傳送到外部的交換機(jī),在物理交換機(jī)上查表處理后,再回到目的虛擬機(jī)上,從而簡化同一服務(wù)器上虛擬機(jī)之間的通信。
當(dāng)兩個處于同一服務(wù)器內(nèi)的虛擬機(jī)要交換數(shù)據(jù)時,從虛擬機(jī)出來的數(shù)據(jù)幀首先會經(jīng)過服務(wù)器網(wǎng)卡送往上聯(lián)交換機(jī),上聯(lián)交換機(jī)通過查看幀頭中帶的MAC地址(虛擬機(jī)MAC地址)發(fā)現(xiàn)目的主機(jī)在同一臺物理服務(wù)器中,因此又將這個幀送回原服務(wù)器,完成尋址轉(zhuǎn)發(fā)。
整個數(shù)據(jù)流好像一個發(fā)卡一樣在上聯(lián)交換機(jī)上繞了一圈,因此這個行為又稱作“發(fā)卡彎”。“發(fā)卡彎”實現(xiàn)了對虛擬機(jī)的數(shù)據(jù)轉(zhuǎn)發(fā),但這個行為違反了生成樹協(xié)議的一項重要原則,即數(shù)據(jù)幀不能發(fā)往收到這個幀的端口,而目前虛擬接人環(huán)境基本是屬于二層,因此,在接人層,不可能使用路由來實現(xiàn)這個功能,這就造成了VEPA的機(jī)制與生成樹協(xié)議之間的矛盾。
針對VEPA和生成樹協(xié)議相矛盾的體制,在IEEE 802.1Qbg標(biāo)準(zhǔn)草案中,重寫了生成樹協(xié)議,即在下聯(lián)端口上強(qiáng)制進(jìn)行反射數(shù)據(jù)幀的行為(ReflectiveRelay),通過強(qiáng)制性的方法解決了二者機(jī)制上的沖突。
圖2對比了使用虛擬交換機(jī)和VEPA兩種不同的虛擬機(jī)通信方式。左圖中,虛擬機(jī)之間通訊通過虛擬交換機(jī)完成;右圖虛擬機(jī)之間通信由外部交換機(jī)完成。
圖2 虛擬交換機(jī)和VEPA轉(zhuǎn)發(fā)比較圖
2.2 VI AN翻譯技術(shù)簡介
VLAN翻譯(VLAN Translation)又叫VLAN映射,主要用于城域網(wǎng)中,它允許不同VLAN的主機(jī)通過交換機(jī)翻譯實現(xiàn)通信。借助于VLAN翻譯,VLAN1網(wǎng)絡(luò)通過交換機(jī)發(fā)送數(shù)據(jù)包時,源地址將被轉(zhuǎn)換成初始設(shè)置的合法VLAN2地址,不同虛擬局域網(wǎng)只需使用少量IP地址(甚至是1個)即可實現(xiàn)不同VLAN內(nèi)所有計算機(jī)互相通信的需求。
VLAN翻譯的實現(xiàn)方式有兩種,即靜態(tài)翻譯和動態(tài)轉(zhuǎn)換。
靜態(tài)翻譯是指將VLAN1的IP地址轉(zhuǎn)換為VLAN2的IP地址,IP地址對是一對一的,是一成不變的。借助于靜態(tài)翻譯,可以VLAN1網(wǎng)絡(luò)對VLAN2網(wǎng)絡(luò)中某些特定設(shè)備(如服務(wù)器)的訪問。
動態(tài)轉(zhuǎn)換是指將VLAN1網(wǎng)絡(luò)的IP地址轉(zhuǎn)換為VLAN2的IP地址時,IP地址是不確定的,是隨機(jī)的,所有被授權(quán)的VLAN1的私有IP地址可隨機(jī)轉(zhuǎn)換為任何指定可用的VLAN2IP地址。也就是說,只要指定哪些地址可以進(jìn)行轉(zhuǎn)換,以及用哪些地址作為轉(zhuǎn)換地址時,就可以進(jìn)行動態(tài)轉(zhuǎn)換。
2.3 設(shè)計實現(xiàn)方案
圖3 基于VEPA交換技術(shù)服務(wù)器邏輯結(jié)構(gòu)的示意圖
圖3是采用VEPA交換技術(shù)后服務(wù)器邏輯結(jié)
構(gòu)的示意圖,其中P1 、P2 為轉(zhuǎn)發(fā)端口,C、D、E、F分別為虛擬機(jī)接入端口,Z為外網(wǎng)機(jī)器端口。設(shè)計中各端口網(wǎng)段劃分和端口說明如表1所示。
表1 VLAN端口和出口列表
在交換機(jī)Adjacent Bridge中,設(shè)置各VLAN是否采用反射數(shù)據(jù)幀的行為(Reflective Relay),設(shè)置結(jié)果如表2所示。
表2 反射數(shù)據(jù)幀支持表
假設(shè)虛擬機(jī)C要和同一VLAN的虛擬機(jī)F通信,C發(fā)出的數(shù)據(jù)經(jīng)VEPA技術(shù)首先傳送到下行交換機(jī)上。C所在的VLAN3設(shè)置了Reflective Relay,且和目的虛擬機(jī)F屬同
一物理主機(jī),所以下行交換機(jī)直接將數(shù)據(jù)傳至目的主機(jī)F。通信流程如圖4所示。
圖4 C向F通信示意圖
當(dāng)虛擬機(jī)F要和外網(wǎng)主機(jī)Z通信,F(xiàn)發(fā)出的數(shù)據(jù)經(jīng)VEPA技術(shù)首先傳送到下行交換機(jī)上。因為F所在的VLAN4設(shè)置了Reflective Relay,且目的主機(jī)Z與F不在同一物理主機(jī)上,所以數(shù)據(jù)被反射回轉(zhuǎn)發(fā)端口P2*。P2 和P1*通過虛擬橋相連,由于P1*所在VLAN1沒有Reflective Relay,最終數(shù)據(jù)通過下行交換機(jī)發(fā)送至目的主機(jī)Z。通信流程如圖5所示。
圖5 F向Z通信示意圖
當(dāng)外部主機(jī)Z向該臺物理機(jī)上所有虛擬機(jī)廣播通信時,Z首先經(jīng)過外聯(lián)交換向外接端口P1*發(fā)送數(shù)據(jù)。P1*收到數(shù)據(jù)后通過虛擬網(wǎng)橋轉(zhuǎn)發(fā)給端口P2*,P2*收到數(shù)據(jù)再轉(zhuǎn)發(fā)給外聯(lián)交換機(jī)。P2*端口所在VLAN2支持Reflective Relay,所以交換機(jī)把數(shù)據(jù)反射回C、D、E、F端口,如圖6所示。
圖6 Z廣播通信示意圖
在加人人侵檢測模塊之后,設(shè)計采用雙層協(xié)議模式,P1*、P2*、P3*端口工作在虛擬橋連接模式(VEB)下,虛擬機(jī)工作在VEPA模式下。這樣設(shè)計的好處是將虛擬機(jī)和入侵檢測設(shè)備隔離,不影響通信效率。各端口劃分如表3所示。
在下行交換機(jī)中,設(shè)置各VLAN反射數(shù)據(jù)幀的行為,還要在加入一個VLAN翻譯功能,設(shè)置結(jié)果如表4所示。
表3 VLAN端口和出口列表
表4 反射數(shù)據(jù)幀和VLAN翻譯支持表
當(dāng)外部主機(jī)z向F通信時,數(shù)據(jù)包首先抵達(dá)端口P1*,經(jīng)過VEB轉(zhuǎn)發(fā)給P2*和P3*端口。通過入侵檢測后,會在下行交換機(jī)上進(jìn)行初始設(shè)置的VLAN翻譯,將數(shù)據(jù)包發(fā)送給虛擬機(jī)F。整個流程如圖7所示。
圖7 帶有IDS功能的Z向F通信示意圖
VEPA除了用Q-in-Q基本的802.1q標(biāo)記外,又增加一層虛擬機(jī)MAC地址加子系統(tǒng)廠商識別碼SVID的標(biāo)識。這樣在VLAN之外,VEPA還能夠通過Qin-Q和唯一的標(biāo)識來區(qū)分不同的虛擬機(jī),只要服務(wù)器網(wǎng)卡能夠給數(shù)據(jù)幀打上Q-in-Q標(biāo)記,上聯(lián)交換機(jī)能夠處理Qin-Q幀,基本就可以將不同的虛擬機(jī)流量區(qū)分開來,并進(jìn)行處理。
2.3 采用VEPA的優(yōu)點
VEPA技術(shù)的實現(xiàn),將為虛擬化的數(shù)據(jù)中心帶來以下優(yōu)點:
(1)提升性能、降低復(fù)雜性
VEPA將交換功能移出了服務(wù)器,并且將其放回物理網(wǎng)絡(luò)中,而且讓外部網(wǎng)絡(luò)交換機(jī)能夠看到所有的虛擬機(jī)流量。通過將虛擬機(jī)交換移回物理網(wǎng)絡(luò),基于VEPA的方法使現(xiàn)有的網(wǎng)絡(luò)工具和流程可以在虛擬化和非虛擬化環(huán)境以及監(jiān)視程序技術(shù)中以相同的方式自由使用。
(2)保持低成本電路
防火墻和IDS/IPS等基于網(wǎng)絡(luò)的設(shè)備,以及訪問控制列表(ACL)、服務(wù)質(zhì)量(QoS)和端口監(jiān)視等成熟的網(wǎng)絡(luò)交換機(jī)功能都可以直接用于虛擬機(jī)流量和虛擬機(jī)之間的交換,因此減少和消除了對虛擬網(wǎng)絡(luò)設(shè)備重新進(jìn)行昂貴的質(zhì)量判定、測試和部署的需求。
(3)清晰管理邊界
VEPA降低服務(wù)器管理人員的網(wǎng)絡(luò)配置要求和配置復(fù)雜性,將網(wǎng)絡(luò)管理控制層重新交給了網(wǎng)絡(luò)管理員,為所有與虛擬機(jī)相關(guān)聯(lián)網(wǎng)功能的供應(yīng)、監(jiān)視和故障查找提供了一個單一控制點。
3 結(jié)束語
云數(shù)據(jù)中心是未來發(fā)展的方向,其安全問題的重要性更是呈現(xiàn)逐步上升趨勢。本文的設(shè)計降低了高度虛擬化部署有關(guān)的復(fù)雜性和提高了數(shù)據(jù)的安全性。對于中小型云數(shù)據(jù)中心安全部署,此設(shè)計提供了一個性價比較高方法,不失為一種務(wù)實高效的解決方案。