一種虛擬機(jī)隔離方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信技術(shù)領(lǐng)域,特別涉及一種虛擬機(jī)(Virtual Machine, VM)隔離方法和裝置。
【背景技術(shù)】
[0002]虛擬私有云(Virtual Private Clouds,VPC)是一個(gè)公共云計(jì)算資源的動(dòng)態(tài)配置池,需要使用加密協(xié)議、隧道協(xié)議和其他安全程序,在用戶和云服務(wù)提供商之間傳輸數(shù)據(jù)。
[0003]在現(xiàn)有實(shí)現(xiàn)中,同一物理服務(wù)器上可能會(huì)部署多個(gè)VM,多個(gè)VM被劃分到不同的VPC中,當(dāng)在物理服務(wù)器和網(wǎng)關(guān)之間使用通用路由協(xié)議封裝(Generic RoutingEncapsulat1n,GRE)協(xié)議進(jìn)行數(shù)據(jù)傳輸時(shí),不同VPC之間的VM無法實(shí)現(xiàn)數(shù)據(jù)隔離。
[0004]具體參見圖1,圖1是現(xiàn)有技術(shù)一種VPC組網(wǎng)示意圖,物理服務(wù)器中有虛擬機(jī)VM1、VM2、VM3、VM4,其中,VM1、VM2 被劃分到 VPC1,VM3、VM4 被劃分到 VPC2。由于 VM1、VM2、VM3、VM4部署在同一物理服務(wù)器,VPCl和VPC2共用一個(gè)網(wǎng)關(guān)。當(dāng)物理服務(wù)器和網(wǎng)關(guān)之間建立GRE隧道并通過GRE隧道傳輸VM的數(shù)據(jù)流,數(shù)據(jù)流走相同的GRE隧道時(shí),VM1、VM2、VM3、VM4的數(shù)據(jù)流量無法實(shí)現(xiàn)隔離。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明的目的在于一種VM隔離方法和裝置,可以使用GRE隧道在VM所在物理服務(wù)器與網(wǎng)關(guān)設(shè)備之間傳輸數(shù)據(jù)時(shí)實(shí)現(xiàn)不同VPC的VM之間的數(shù)據(jù)隔離。
[0006]為了達(dá)到上述目的,本發(fā)明提供了如下技術(shù)方案:
[0007]—種VM隔離方法,應(yīng)用于多個(gè)VPC共用的網(wǎng)關(guān)設(shè)備,其中,所述多個(gè)VPC分別屬于不同VPN,網(wǎng)關(guān)設(shè)備中存儲有各VPC信息及其所屬VPN信息;各VPC的VM所在物理服務(wù)器與網(wǎng)關(guān)設(shè)備與之間建立有GRE隧道,該方法包括:
[0008]網(wǎng)關(guān)設(shè)備接收到用戶側(cè)的報(bào)文時(shí),確定報(bào)文所屬VPN,對報(bào)文進(jìn)行GRE隧道封裝并將該VPN對應(yīng)的VPC信息攜帶在GRE封裝報(bào)文頭部,將GRE封裝報(bào)文發(fā)往目的VM所在物理服務(wù)器;
[0009]網(wǎng)關(guān)設(shè)備接收到VM側(cè)的GRE封裝報(bào)文時(shí),根據(jù)GRE封裝報(bào)文的頭部攜帶的VPC信息確定解封裝報(bào)文所屬VPN并解封裝GRE封裝報(bào)文,基于解封裝報(bào)文所屬VPN發(fā)送解封裝報(bào)文。
[0010]—種VM隔離裝置,應(yīng)用于多個(gè)VPC共用的網(wǎng)關(guān)設(shè)備,其中,所述多個(gè)VPC分別屬于不同VPN,網(wǎng)關(guān)設(shè)備中存儲有各VPC信息及其所屬VPN信息;網(wǎng)關(guān)設(shè)備與各VPC的VM所在物理服務(wù)器之間建立有GRE隧道,該裝置應(yīng)用于網(wǎng)關(guān)設(shè)備,包括:接收單元、處理單元、發(fā)送單元;
[0011]所述接收單元,用于接收用戶側(cè)的報(bào)文;用于接收VM側(cè)的GRE封裝報(bào)文;
[0012]處理單元,用于接收單元接收到來自用戶側(cè)的報(bào)文時(shí),確定報(bào)文所屬VPN,對報(bào)文進(jìn)行GRE隧道封裝并將該VPN對應(yīng)的VPC信息攜帶在GRE封裝報(bào)文的頭部,指示發(fā)送單元將GRE封裝報(bào)文發(fā)往目的VM所在物理服務(wù)器;用于接收單元接收到VM側(cè)的GRE封裝報(bào)文時(shí),解封裝GRE封裝報(bào)文并根據(jù)GRE封裝報(bào)文的頭部攜帶的VPC信息確定解封裝報(bào)文所屬VPN,指示發(fā)送單元基于解封裝報(bào)文所屬VPN發(fā)送解封裝報(bào)文。
[0013]由上面的技術(shù)方案可知,本發(fā)明中,網(wǎng)關(guān)設(shè)備與VM所在物理服務(wù)器之間通過GRE隧道傳輸VM的報(bào)文時(shí),在GRE封裝報(bào)文的頭部攜帶VPC信息,通過GRE封裝報(bào)文的頭部攜帶的VPC信息的不同,將屬于不同VPC的VM的報(bào)文區(qū)分開來,因此可以實(shí)現(xiàn)不同VPC的VM之間的流量隔離。
【附圖說明】
[0014]圖1是現(xiàn)有技術(shù)一種VPC組網(wǎng)不意圖;
[0015]圖2是現(xiàn)有技術(shù)GRE封裝報(bào)文的頭部格式示意圖;
[0016]圖3是本發(fā)明實(shí)施例GRE封裝報(bào)文的頭部格式示意圖;
[0017]圖4是本發(fā)明實(shí)施例一 VM隔離方法流程圖;
[0018]圖5是本發(fā)明實(shí)施例二 VM隔離方法流程圖;
[0019]圖6是本發(fā)明實(shí)施例VM隔離方法流程圖;
[0020]圖7是本發(fā)明實(shí)施例VM隔離裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0021]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,下面結(jié)合附圖并據(jù)實(shí)施例,對本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說明。
[0022]本發(fā)明中,網(wǎng)關(guān)設(shè)備與VM所在物理服務(wù)器之間使用GRE隧道進(jìn)行VM的報(bào)文的傳輸時(shí),為了實(shí)現(xiàn)不同VPC的VM之間的流量隔離,在GRE隧道封裝報(bào)文的頭部攜帶VPC信息,以此區(qū)分屬于不同VPC的VM的報(bào)文。
[0023]現(xiàn)有技術(shù)中,GRE封裝報(bào)文的頭部(簡稱GRE頭部)格式如圖2所示,包括協(xié)議類型(Protocol Type)、版本(Ver)、標(biāo)志(Flags)等必要字段外,還包括檢驗(yàn)碼(Checksum)、偏移(Offset)、鍵值(Key)等可選字段。在本發(fā)明中,對GRE封裝報(bào)文的頭部進(jìn)行擴(kuò)展,利用Key字段承載VPC信息,具體如圖3所示,其中的Key字段替換為VPC字段,其他字段保持不變。
[0024]以下結(jié)合兩個(gè)具體的實(shí)施例對本發(fā)明實(shí)現(xiàn)原理進(jìn)行詳細(xì)說明。
[0025]實(shí)施例一、
[0026]在公網(wǎng)IP地址充足的情況下,所有VM都可分配到一個(gè)公網(wǎng)IP地址。本實(shí)施例針對VM分配有公網(wǎng)IP地址的情況,給出了圖4所示的VM隔離方案。
[0027]參見圖4,圖4是本發(fā)明實(shí)施例一 VM隔離方法流程圖,該方法應(yīng)用于多個(gè)VPC共用的網(wǎng)關(guān)設(shè)備,所述多個(gè)VPC分別屬于不同虛擬專用網(wǎng)(Virtual Private Network, VPN);各VPC的VM所在物理服務(wù)器與網(wǎng)關(guān)設(shè)備之間建立有GRE隧道,如圖4所示,該方法主要包括以下步驟:
[0028]步驟401、預(yù)先在網(wǎng)關(guān)設(shè)備中存儲各VPC信息及其所屬VPN信息,在網(wǎng)關(guān)設(shè)備的公網(wǎng)連接端口上為各VPC創(chuàng)建對應(yīng)的子接口并在該子接口上綁定該VPC所屬VPN。
[0029]本實(shí)施例中,多個(gè)VPC分別屬于不同VPN,VPC和VPN之間是——對應(yīng)的。可以預(yù)先將各VPC信息及其所屬的VPN信息下發(fā)到網(wǎng)關(guān)設(shè)備進(jìn)行存儲,為了便于查找,可以直接將VPC信息作為VPN的名稱下發(fā)給網(wǎng)關(guān)設(shè)備,網(wǎng)關(guān)設(shè)備直接可以通過VPN的名稱獲取到對應(yīng)的VPC信息。
[0030]在網(wǎng)關(guān)設(shè)備的公網(wǎng)連接端口上創(chuàng)建各VPC對應(yīng)的子接口,實(shí)質(zhì)就是針對每個(gè)VPC,在網(wǎng)關(guān)設(shè)備的公網(wǎng)連接端口上創(chuàng)建一個(gè)子接口,并在該子接口上綁定該VPC所屬VPN,使得該子接口和該VPC所屬VPN對應(yīng)起來。
[0031]步驟402、網(wǎng)關(guān)設(shè)備接收到用戶側(cè)的報(bào)文時(shí),確定報(bào)文所屬VPN,對報(bào)文進(jìn)行GRE隧道封裝并將該VPN對應(yīng)的VPC信息攜帶在GRE封裝報(bào)文頭部,根據(jù)路由表發(fā)送GRE封裝報(bào)文到目的VM所在物理服務(wù)器。
[0032]用戶側(cè)的報(bào)文(也即用戶發(fā)往VM的報(bào)文)需要經(jīng)由網(wǎng)關(guān)設(shè)備轉(zhuǎn)發(fā)至VM側(cè),網(wǎng)關(guān)設(shè)備轉(zhuǎn)發(fā)報(bào)文到VM側(cè)時(shí),報(bào)文走GRE隧道轉(zhuǎn)發(fā),并在GRE封裝報(bào)文的頭部攜帶報(bào)文的目的VM所屬VPC信息。
[0033]由于各VPC所屬VPN與子接口之間是一一對應(yīng)的,根據(jù)接收報(bào)文的子接口綁定的VPN就可以確定報(bào)文所屬VPN。VPN又與VPC —一對應(yīng),因此,根據(jù)報(bào)文所屬VPN就可以確定對應(yīng)的VPC信息,該VPC信息就是報(bào)文的目的VM所屬VPC信息,因此,在對報(bào)文進(jìn)行GRE隧道封裝時(shí)就可以將該VPC信息攜帶在GRE封裝報(bào)文的頭部,以此實(shí)現(xiàn)該VPC中VM的流量與其它VPC中VM的流量的隔離。
[0034]在將報(bào)文進(jìn)行GRE隧道封裝并在GRE封裝報(bào)文的頭部攜帶VPC信息后,根據(jù)路由表轉(zhuǎn)發(fā)GRE隧道封裝報(bào)文,GRE隧道封裝報(bào)文最終被發(fā)送至目的VM所在物理服務(wù)器,由該物理服務(wù)器解封裝GRE隧道封裝報(bào)文后,根據(jù)解封裝報(bào)文的目的IP地址將報(bào)文發(fā)送至目的VM0
[0035]步驟403、網(wǎng)關(guān)設(shè)備接收到VM側(cè)的GRE封裝報(bào)文時(shí),根據(jù)GRE封裝報(bào)文的頭部攜帶的VPC信息確定解封裝報(bào)文所屬VPN并解封裝GRE封裝報(bào)文,基于解封裝報(bào)文所屬VPN發(fā)送解封裝報(bào)文。
[0036]VM側(cè)的報(bào)文(也即VM發(fā)往用戶的報(bào)文),需要經(jīng)由VM所在物理服務(wù)器轉(zhuǎn)發(fā)至網(wǎng)關(guān)設(shè)備,再由網(wǎng)關(guān)設(shè)備轉(zhuǎn)發(fā)到公網(wǎng)并最終到達(dá)目的用戶。VM所在物理服務(wù)器轉(zhuǎn)發(fā)報(bào)