盧志剛,姜政偉,劉寶旭
(中國科學(xué)院高能物理研究所計(jì)算中心,北京 100049)
云計(jì)算作為一種新興的IT 模式,以開放的標(biāo)準(zhǔn)和服務(wù)為基礎(chǔ),以互聯(lián)網(wǎng)為中心,使互聯(lián)網(wǎng)上的各種計(jì)算資源協(xié)同工作,共同組成數(shù)個龐大的數(shù)據(jù)中心和計(jì)算中心,為各類用戶提供安全、快速、便捷的數(shù)據(jù)存儲和網(wǎng)絡(luò)計(jì)算等特定服務(wù)。由于各企業(yè)級用戶向云計(jì)算模式轉(zhuǎn)移的步伐越來越快,數(shù)據(jù)中心作為大量虛擬數(shù)據(jù)的存儲地,已成為重要攻擊目標(biāo),這種單點(diǎn)攻擊所產(chǎn)生的危害程度遠(yuǎn)大于那些直接受攻擊的對象。因此,在云計(jì)算發(fā)展過程中,與云計(jì)算相關(guān)的信息安全問題成為重中之重。
研究表明,云計(jì)算的安全挑戰(zhàn)主要源于數(shù)據(jù)不在本地而在遠(yuǎn)端、計(jì)算資源和存儲資源高度集中、邊界模糊3 個方面[1-2]。云計(jì)算數(shù)據(jù)中心采用的服務(wù)器虛擬化技術(shù)使得虛擬網(wǎng)絡(luò)與物理網(wǎng)絡(luò)并存,如何對虛擬網(wǎng)絡(luò)內(nèi)部同一個VLAN 虛擬機(jī)間的流量進(jìn)行防護(hù)成為一個難題。通過對部署在虛擬化平臺上面的虛擬安全網(wǎng)關(guān)進(jìn)行訪問控制可實(shí)現(xiàn)面向某一個虛擬子網(wǎng)或者單臺虛擬機(jī)的訪問控制,是現(xiàn)有網(wǎng)絡(luò)設(shè)備的有益補(bǔ)充和增強(qiáng);同時(shí),虛擬安全網(wǎng)關(guān)深入虛擬網(wǎng)絡(luò)內(nèi)部,覆蓋物理安全設(shè)備無法獲取的網(wǎng)絡(luò)流量。由于在同一臺服務(wù)器內(nèi)部虛擬網(wǎng)絡(luò)流量可以不出物理網(wǎng)卡進(jìn)行通信,對物理安全設(shè)備而言不具備可視性,必須采用虛擬化的安全技術(shù)才可實(shí)現(xiàn)數(shù)據(jù)中心網(wǎng)絡(luò)的全覆蓋。因此,虛擬化網(wǎng)絡(luò)的安全和訪問控制是當(dāng)前熱門研究和發(fā)展課題之一。Kreeger 等人[3]提出使用控制協(xié)議,進(jìn)行虛擬網(wǎng)絡(luò)中由內(nèi)到外的地址映射,消除網(wǎng)絡(luò)中的洪泛問題。IEEE 的802.1Qbg[4]和DMTF[5]標(biāo)準(zhǔn)定義的端口配置文件自動遷移(AMPP),防止虛擬機(jī)遷移導(dǎo)致的安全策略變更。Elmeleegy[6-7]等人提出使用代理的方法對虛擬網(wǎng)絡(luò)中的ARP 和DHCP 的廣播流量進(jìn)行抑制,抑制同一個數(shù)據(jù)中心內(nèi)虛擬網(wǎng)絡(luò)IP多播消耗資源過多的問題。Nakagawa 等人提出在路由上使用OpenFlow[8-9]對虛擬網(wǎng)絡(luò)流量進(jìn)行轉(zhuǎn)發(fā)和控制。
上述研究在虛擬網(wǎng)絡(luò)訪問控制方面具有重要的意義,給本文研究提供的了借鑒和參考,但云計(jì)算中存在的跨數(shù)據(jù)中心的二層虛擬網(wǎng)絡(luò)訪問控制的問題,仍然無法解決。為此,本文給出一種利用虛擬可擴(kuò)展局域網(wǎng)(Virtual eXtensible Local Area Network,VXLAN)技術(shù)進(jìn)行隧道內(nèi)虛擬網(wǎng)絡(luò)訪問控制的方法,以實(shí)現(xiàn)跨數(shù)據(jù)中心虛擬機(jī)間的訪問控制與不同租戶或者業(yè)務(wù)之間的相互隔離。
隨著IT 組織向云計(jì)算和虛擬化的模式轉(zhuǎn)移,很多人逐漸發(fā)現(xiàn)目前的數(shù)據(jù)中心網(wǎng)絡(luò)連接體系結(jié)構(gòu)是一個限制因素,包括:
(1)缺乏靈活性:VLAN 和交換邊界既不靈活,也不易延展。隨著需求的增減,計(jì)算和存儲資源需要在無重大運(yùn)行開銷的情況下進(jìn)行分配。
(2)容錯操作效率低:高可用性技術(shù)(例如VMware Fault Tolerance)在第2 層網(wǎng)絡(luò)上最有效,但是創(chuàng)建和管理該體系結(jié)構(gòu)在操作上卻十分困難,尤其是在大規(guī)模操作時(shí)更是如此。
(3)VLAN 和IP 地址管理的局限性:IP 地址的維護(hù)和VLAN 限制成為數(shù)據(jù)中心擴(kuò)展的難題,特別是在隔離要求高的情況下更是如此。
為解決該難題,VMware 與領(lǐng)先的網(wǎng)絡(luò)連接和電子設(shè)備供應(yīng)商(包括Cisco Systems,Juniper)[10-11]合作,創(chuàng)建了VXLAN 技術(shù)。VXLAN 是一種在常用的網(wǎng)絡(luò)和虛擬基礎(chǔ)架構(gòu)的頂層“浮動”虛擬域的方法。通過利用行業(yè)標(biāo)準(zhǔn)的以太網(wǎng)技術(shù),在現(xiàn)有網(wǎng)絡(luò)之上可以創(chuàng)建大量虛擬域,并且它們彼此之間以及與底層網(wǎng)絡(luò)之間完全隔離。
VXLAN 通過添加包頭的方式封裝原始框架來實(shí)現(xiàn)以太網(wǎng)框架隧道:Outer Ethernet,Outer IP,Outer UDP,VXLAN headers。Outer IP header 包含VTEP(虛擬隧道終端),位于VXLAN 的起源或終端。
在VXLAN 中,廣播包被發(fā)往IP 多播組中,IP 多播組在VXLAN 中實(shí)現(xiàn)。為此,需要建立VXLAN VNI 和IP 多播組之間的映射。該映射在管理層完成,通過一個管理信道提供給各虛擬通道終端(VTEP)。使用該映射,VTEP 可以按需向上游交換機(jī)/路由器提供Join/Leave VXLAN 相關(guān)的IP 組播組IGMP 成員報(bào)告。IGMP 成員報(bào)告周期性地從VTEP發(fā)送到上游交換機(jī)/路由器中,保持成員的活動狀態(tài)。路由器之間的組播路由協(xié)議,例如協(xié)議無關(guān)組播-稀疏模式(Protocol Independent Multicast-Sparse Mode,PIM-SM)用來建立高效的組播轉(zhuǎn)發(fā)樹。在PIM-SM 中,使用加入/裁剪消息將成員信息傳送給匯聚點(diǎn)。
VXLAN 控制器是VXLAN 的管理層,同時(shí)也管理VTEP。VXLAN 控制器配置了VXLAN VNI 和IP多播組之間的映射。當(dāng)VM 遷移到VTEP 時(shí),VXLAN 控制器也配置將該VTEP 加入到IP 多播組。例如,VM1 被映射到VNI100,VTEP2。VNI100 被映射到IP 多播組202.38.128.216,然后VTEP2 發(fā)布IGMP 成員報(bào)告到上游路由器,加入IP 多播組202.38.128.216 (VNI100),上游路由器將VTEP2 添加到IP 多播組。此外,VTEP2 和路由器之間的網(wǎng)關(guān)檢測IGMP 成員報(bào)告,并將VTEP2 注冊到IP 多播組。
上游路由器每125 秒發(fā)送IGMP 成員查詢,每個VTEP 利用所在的IP 多播組在10 s 內(nèi)返回成員報(bào)告。在IP 多播組注冊完后,VM1 完成遷移,虛擬機(jī)管理程序會發(fā)送一個ARP 廣播包。該廣播數(shù)據(jù)包被發(fā)送到IP 多播組。接收到該包后,VM 的MAC 和VTEP 的IP 關(guān)聯(lián)關(guān)系就可以被發(fā)現(xiàn)。同時(shí)VTEP1 發(fā)送IGMP Leave 消息到上游路由器,向IP 多播組解除成員關(guān)系。對于Leave 消息,上游路由器發(fā)送特定IGMP 成員請求來驗(yàn)證是否有其他IP 多播組的VTEP。
圖1 中展示了根據(jù)以上規(guī)則,當(dāng)VM 遷移時(shí),VXLAN 分段將網(wǎng)絡(luò)流量進(jìn)行隔離的實(shí)例,其中,實(shí)線表示實(shí)際物理連接;虛線表示虛擬域的邏輯劃分和通信鏈接;L2 表示2 層的網(wǎng)絡(luò)交換設(shè)備;GW 為虛擬網(wǎng)關(guān)。
VXLAN 網(wǎng)關(guān)1 處有2 個端口組(PG1 和PG2)。PG1 的VLAN100 以及PG2 的VLAN 100 與聯(lián)結(jié)到VXLAN 網(wǎng)關(guān)2 的存儲進(jìn)行通信。為隔離用戶或群組,將PG1 的VLAN100 映射VNI10,將PG2 的VLAN 100 映射VNI30。VXLAN 網(wǎng)關(guān)2 分別映射VNI10以及VNI30 到VLAN100 和VLAN 200 以實(shí)現(xiàn)流量 隔 離。在 VXLAN 網(wǎng) 關(guān) 1 處 將 VLAN1~VLAN99 映射VNI40,使用VLAN 處理操作的“通過”模式以保持C-tag(內(nèi)部VLAN 標(biāo)簽)。Server-C(PG2)可使用位于用戶處的VLAN 與Server-D通信。
圖1 VXLAN 分段網(wǎng)絡(luò)流量隔離
VXLAN 中的隧道訪問控制節(jié)點(diǎn)VTEP 位于運(yùn)行虛擬機(jī)的物理服務(wù)器虛擬機(jī)監(jiān)視器上,它可放置在一個物理交換機(jī)上或物理服務(wù)器中。VTEP 將VNI分配給服務(wù)器上所運(yùn)行的VM,VTEP 負(fù)責(zé)生成指定的VNI 字段與進(jìn)行三層網(wǎng)絡(luò)通信的數(shù)據(jù)包頭信息。
VXLAN 隧道訪問控制場景如圖2 所示。
圖2 VXLAN 隧道訪問控制場景
具體的通信過程分為封裝、傳輸與解包3 個過程:
(1)數(shù)據(jù)封裝。服務(wù)器Server-A 中的虛擬機(jī)VM-A1 和另一個宿主機(jī)Server-C 中的虛擬機(jī)VM-D1進(jìn)行通信時(shí),首先發(fā)送一個普通的指向目標(biāo)VM-D1的以太網(wǎng)幀。VM-A1 所在的物理主機(jī)上的VTEP 查找出該虛擬機(jī)對應(yīng)的VNI,同時(shí)判斷目標(biāo)MAC 關(guān)聯(lián)的VNI 是否與源虛擬機(jī)在同個VXLAN 段中。如果判斷結(jié)果為真,VTEP 則在VM-A1 的原始MAC 幀之前加入如下的信息以封裝成新的以太網(wǎng)幀:外部以太網(wǎng)頭、外部IP 頭、外部UDP 頭與VXLAN 頭信息,并進(jìn)行發(fā)送。
(2)數(shù)據(jù)傳輸。封裝后的數(shù)據(jù),通過二層交換機(jī)進(jìn)行交換轉(zhuǎn)發(fā),到達(dá)三層路由器時(shí),以太網(wǎng)幀頭被取下,目標(biāo)IP 地址用于路由,最終到達(dá)遠(yuǎn)端對應(yīng)的VTEP。
(3)數(shù)據(jù)驗(yàn)證與解包。對應(yīng)于傳統(tǒng)UDP 校驗(yàn)和的處理,目標(biāo)VTEP 收到一個VXLAN 幀,其UDP 校驗(yàn)和是0 時(shí),即需要進(jìn)行解包,可以選擇驗(yàn)證校驗(yàn)值,如果校驗(yàn)未通過,這個包必須被丟棄。
目標(biāo)VTEP 收到數(shù)據(jù)幀后解包,先通過查看VXLAN 頭信息中的I 位Flags 是不是為1 以驗(yàn)證VNI值的合法性。如果合法,這個幀的數(shù)據(jù)頭被剝離,形成傳統(tǒng)的以太網(wǎng)數(shù)據(jù)包,并轉(zhuǎn)發(fā)給目標(biāo)虛擬機(jī),即目標(biāo)虛擬機(jī)接收到的是一個普通的二層以太網(wǎng)幀。
在上述的數(shù)據(jù)封裝、傳輸與驗(yàn)證、解包過程中,通信的虛擬機(jī)之間仍是進(jìn)行傳統(tǒng)的二層網(wǎng)絡(luò)中的數(shù)據(jù)發(fā)送與接收,而不知道它們處于VXLAN 中,VNI與VXLAN 邏輯隧道封裝、解包動作由VTEP 進(jìn)行,對虛擬機(jī)透明。
使用OpenFlow 的IP 組播管理模型如圖3 所示。模型包含VXLAN 控制器、用于VXLAN 網(wǎng)關(guān)的VTEP邊緣交換機(jī)以及OpenFlow 交換機(jī)。VTEP 可以安置在hypervisor 處,或者安置在邊緣交換機(jī)或路由器處。在模型中,本文在邊緣交換機(jī)處部署VTEP。
圖3 VXLAN 段IP 組播管理模型
OpenFlow 交換機(jī)提供由控制器管理的流表轉(zhuǎn)發(fā)模式。流表包含一系列流條目(根據(jù)報(bào)頭數(shù)值匹配數(shù)據(jù)包)、活動計(jì)數(shù)器,以及一系列匹配數(shù)據(jù)包應(yīng)用的操作。交換機(jī)處理的所有數(shù)據(jù)包都是對照流表的。如果發(fā)現(xiàn)匹配,根據(jù)條目對數(shù)據(jù)包進(jìn)行操作。例如,其操作可以是轉(zhuǎn)發(fā)數(shù)據(jù)包到指定的輸出端口。如果沒有發(fā)現(xiàn)匹配,數(shù)據(jù)包通過安全通道轉(zhuǎn)發(fā)至控制器處,控制器負(fù)責(zé)判定如何處理沒有有效流條目的數(shù)據(jù)包。
在應(yīng)用中,VXLAN 控制器管理VXLAN 段,并主動基于用戶信息對IP 組播群配置流表。由于所有VXLAN 段的條目都是主動配置的,因此并不需要Packet-In 信息。對于IP 組播地址所需要的操作是轉(zhuǎn)發(fā)數(shù)據(jù)包到一個或多個指定的端口處。但與全部轉(zhuǎn)發(fā)不同的是,OpenFlow 操作不提供對于多個目的地端口的數(shù)據(jù)包轉(zhuǎn)發(fā)。因此本文擴(kuò)展了輸出操作,引入了輸出端口矢量。對于IP 組播地址的操作如下:
VXLAN 控制器在OpenFlow 協(xié)議中使用流修改信息對流表進(jìn)行配置。這樣的輸出操作可以對應(yīng)到ASIC 功能。在Layer2 交換中,IP 組播的流表是映射到MAC 地址表,傳入數(shù)據(jù)包的目的地MAC 地址根據(jù)MAC 地址表進(jìn)行對照。在路由器中,IP 組播流表是映射到IP 組播表,目的地IP 組播地址根據(jù)IP 組播表進(jìn)行對照。
為驗(yàn)證上述方法的準(zhǔn)確性和效率,本文構(gòu)建如圖4 所示的實(shí)驗(yàn)網(wǎng)絡(luò)。由于在開發(fā)過程中對于傳輸?shù)募用懿]有進(jìn)行嚴(yán)格定義,系統(tǒng)缺乏有效的安全機(jī)制,因此只在局域網(wǎng)內(nèi)進(jìn)行實(shí)驗(yàn),但實(shí)驗(yàn)不需要考慮網(wǎng)絡(luò)對于Client 與Server 數(shù)據(jù)傳輸?shù)难舆t,對性能分析不會造成太大影響。
圖4 實(shí)驗(yàn)網(wǎng)絡(luò)結(jié)構(gòu)
在本文實(shí)驗(yàn)框架下,使用CloudSim[12]來仿真云計(jì)算平臺,分析網(wǎng)絡(luò)節(jié)點(diǎn)設(shè)備在加入VXLAN 協(xié)議解析和訪問控制策略后性能的影響。它可以模擬云平臺主要組件包括虛擬機(jī)、物理主機(jī)、網(wǎng)絡(luò)設(shè)備等,可以模擬虛擬機(jī)的創(chuàng)建、遷移、資源分配與任務(wù)調(diào)度等行為,支持各個仿真實(shí)體之間的實(shí)時(shí)通信。
在CloudSim 中構(gòu)建的簡單云平臺由1 個路由、9臺物理主機(jī)組成,各物理主機(jī)中的虛擬機(jī)數(shù)量集為{3,8,7,8,5,9,10,12,7}。通過路由器策略的設(shè)置,每個VXLAN 之間的通信都需要通過路由進(jìn)行轉(zhuǎn)發(fā),由此模擬跨數(shù)據(jù)中心的虛擬網(wǎng)絡(luò)在互聯(lián)網(wǎng)絡(luò)上相互通信的過程。
VXLAN 虛擬網(wǎng)關(guān)實(shí)現(xiàn)在VM 上對VXLAN 協(xié)議的管理以及VTEP 的配置。VXLAN 虛擬網(wǎng)關(guān)中包含一個映射表,其作用是維護(hù)VM 的MAC 地址與VXLAN VNI 之間的映射和IP 組播關(guān)系。當(dāng)虛擬機(jī)移動到另一個VTEP 中時(shí),VXLAN 虛擬網(wǎng)關(guān)控制IP組播和MAC 廣播,將新加入的VM 的MAC 地址與VNI 的映射加入到VTEP 中。
另一方面,使用高性能防火墻與VTEP 功能結(jié)合,作為VXLAN 網(wǎng)關(guān),在防火墻內(nèi)加入VXLAN 協(xié)議解析功能和VTEP 的映射策略,同時(shí)實(shí)現(xiàn)了VTEP 專用的VXLAN 策略控制器LeadsecManager,以及VXLAN 硬件防火墻與VXLAN 虛擬網(wǎng)關(guān)的策略映射與聯(lián)動。
VXLAN 網(wǎng)關(guān)的VTEP 的VNI 映射策略如表1 所示。VXLAN 網(wǎng)關(guān)的輸入幀可以是未加標(biāo)簽或已經(jīng)加入VXLAN 標(biāo)簽的數(shù)據(jù)幀。網(wǎng)關(guān)中有4 種映射的政策:VLAN 映射,端口映射,PG 映射和MAC 地址的映射。VLAN 映射將VLAN ID 映射到VNI。端口映射將端口號映射到VNI,端口映射傳遞將未標(biāo)記和標(biāo)記的數(shù)據(jù)包直接使用透明模式進(jìn)行傳遞。Pg 端口映射將端口組映射為VN,解決一個租戶使用多個端口的問題。Mac 映射將源MAC 地址和VLAN ID 進(jìn)行映射。
表1 VXLAN 網(wǎng)關(guān)映射策略
在網(wǎng)關(guān)內(nèi)核中啟用仿真VXLAN 的配置如下:
在實(shí)驗(yàn)過程中,對相互通信的2 個VM 之間通過IXIA 400T 插入140 Mb/s 的背景數(shù)據(jù)流,并根據(jù)VNI映射策略生成對應(yīng)的VXLAN 協(xié)議數(shù)據(jù)幀。通過IXIA400T 發(fā)送和接收數(shù)據(jù)包,分析VTEP 與VXLAN虛擬網(wǎng)關(guān)解析VXLAN 協(xié)議的有效性和效率。
圖5 分別展示了IXIA400T 每秒發(fā)送的字節(jié)數(shù)、包數(shù)以及VXLAN 網(wǎng)關(guān)解析協(xié)議幀的丟包數(shù)。
實(shí)驗(yàn)數(shù)據(jù)顯示,在以IXIA 為背景產(chǎn)生大量數(shù)據(jù)傳輸時(shí),加入VXLAN 協(xié)議解析和訪問控制策略后,并沒有造成網(wǎng)關(guān)處理效率的變化,沒有發(fā)生背景流量丟包的現(xiàn)象。
在進(jìn)行數(shù)據(jù)傳輸效率分析時(shí),由于系統(tǒng)自身資源的不穩(wěn)定性,硬件設(shè)備的不同,傳輸效率在測試過程中會出現(xiàn)一定的波動,例如系統(tǒng)服務(wù)的忽然啟動,這些會造成額外的開銷,對速率測試可能會產(chǎn)生影響。
圖5 IXIA400T 實(shí)驗(yàn)結(jié)果
本文面向虛擬網(wǎng)絡(luò)訪問控制的實(shí)際需求,研究并實(shí)現(xiàn)云計(jì)算虛擬網(wǎng)絡(luò)的訪問控制方法,并對跨數(shù)據(jù)中心的虛擬機(jī)通信提供隧道訪問技術(shù),達(dá)到對不同安全域的虛擬流量相互隔離的目的。今后將在此基礎(chǔ)上實(shí)現(xiàn)一個內(nèi)核層的虛擬網(wǎng)關(guān)模塊,并在相關(guān)網(wǎng)絡(luò)邊界設(shè)備上進(jìn)行測試,豐富和增強(qiáng)邊界網(wǎng)絡(luò)設(shè)備對云計(jì)算虛擬網(wǎng)絡(luò)的訪問控制功能。
[1]馮登國,張 敏,張 妍,等.云計(jì)算安全研究[J].軟件學(xué)報(bào),2011,22(1):71-83.
[2]Vastbinder J.Proposed Security Assessment &Authorization for U.S.[EB/OL].(2010-11-25).http://www.infoq.com/news/2010/11/us-govt-cloudcomputing.
[3]Kreeger L,Dutt D,Narten T,et al.Network Virtualization Overlay Control Protocol Requirements[J].Internet Draft,2012,13(1):17-21.
[4]IEEE.P802.1Qbg/D2.2 Draft Standard for Local and Metro-politan Area Networks——Virtual Bridged Local Area Net-works——Amendment XX:Edge Virtual Bridging[EB/OL].(2012-06-05).http://www.ieee802.org/1/pages/802.1bg.html.
[5]DMTF.Virtual Networking Management White Paper[Z].2012.
[6]Satyanarayanan M,Gilbert B.Pervasive Personal Computing in an Internet Suspend/Resume System[J].IEEE Internet Computing,2010,11(2):16-25.
[7]Nakagawa Y,Hyoudou K.Automated Migration of Port Profile for Multi-level Switches [C]//Proc.of DCCaVES'11.[S.l.]:IEEE Press,2011:22-29.
[8]Nakagawa Y,Shimizu T.A Single-Chip,10-Gigabit Ethernet Switch LSI for Energy-efficient Blade Servers[C]//Proc.of GreenCom'10.[S.l.]:IEEE Press,2010:404-411.
[9]McKeown N,Anderson T.OpenFlow:Enabling Innovation in Campus Networks[C]//Proc.of SIGCOMM CCR'08.[S.l.]:IEEE Press,2008:69-74.
[10]Cisco.Nexus 3064 Switch Data Sheet[EB/OL].[2013-04-07].http://www.cisco.com/en/US/prod/collateral/switches/ps9441/ps11541/data_sheet_c78-651097.html.
[11]Juniper.QFX3500 Switch Datasheet[EB/OL].[2013-04-07].http://www.juniper.net/us/en/products-services/switching/qfx-series/qfx3500/.
[12]CloudSim:A Framework For Modeling And Simulation of Cloud Computing Infrastructures And Services[EB/OL].[2013-04-07].http://www.cloudbus.org/cloudsim/.