一種控制虛擬機(jī)之間互訪的方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及通信領(lǐng)域,尤其涉及一種控制虛擬機(jī)之間互訪的方法及裝置。
【背景技術(shù)】
[0002]現(xiàn)有技術(shù)中有一種疊加在虛擬可擴(kuò)展局域網(wǎng)(Virtual Extensible Local AreaNetwork,VxLAN)之上的邏輯網(wǎng)絡(luò),稱為虛擬可擴(kuò)展局域網(wǎng)疊加網(wǎng)絡(luò)(VxLAN Overlay網(wǎng)絡(luò)),由軟件定義網(wǎng)絡(luò)(Software Defined Network, SDN)控制器對其進(jìn)行規(guī)劃部署,并向其下發(fā)網(wǎng)絡(luò)轉(zhuǎn)發(fā)策略。
[0003]租戶是VxLAN Overlay網(wǎng)絡(luò)資源的使用者。SDN控制器為租戶創(chuàng)建虛擬路由器(Virtual Router,vRouter),并將創(chuàng)建的 vRouter 映射到同一 VxLAN 網(wǎng)關(guān)(Gateway,Gff)。VxLAN GW為每個 vRouter 創(chuàng)建虛擬專用網(wǎng)(Virtual Private Network,VPN),不同 vRouter對應(yīng)不同的VPN。通過VPN隔離,VxLAN GW將租戶A的虛擬機(jī)(Virtual Machine,VM)通過虛擬交換機(jī)(Virtual Switch,vSwitch)向租戶B的VM發(fā)送的報文丟棄,從而實現(xiàn)租戶A的VM到租戶B的VM的隔離(即不允許租戶A的VM訪問租戶B的VM);如果使VxLAN Gff支持租戶A的VM訪問租戶B的VM,可以在VxLAN Gff上配置策略,使得租戶A的VM向租戶B的VM發(fā)送的報文經(jīng)過VxLAN Overlay網(wǎng)絡(luò)的外部設(shè)備(如防火墻)的處理后返回到租戶B的VM所在的VPN中,進(jìn)而到達(dá)租戶B的VM,從而實現(xiàn)租戶A的VM到租戶B的VM的訪問。
[0004]但是,報文需要到達(dá)VxLAN Gff才會被丟棄,從而浪費了 vSwitch到VxLAN Gff的網(wǎng)絡(luò)帶寬。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明提供一種控制虛擬機(jī)之間互訪的方法及裝置,以節(jié)約VxLANOverlay網(wǎng)絡(luò)中vSwitch到VxLAN Gff的網(wǎng)絡(luò)帶寬。
[0006]具體地,本發(fā)明是通過如下技術(shù)方案實現(xiàn)的:
[0007]根據(jù)本發(fā)明實施例的第一方面,提供一種控制虛擬機(jī)之間互訪的方法,用于虛擬可擴(kuò)展局域網(wǎng)疊加Vxlan overlay網(wǎng)絡(luò)中的控制器,所述Vxlan overlay網(wǎng)絡(luò)中包括第一虛擬機(jī)和第二虛擬機(jī),所述方法包括:
[0008]接收第一虛擬交換機(jī)發(fā)送的第一報文,其中,所述第一報文的源因特網(wǎng)協(xié)議IP地址和目的IP地址分別為所述第一虛擬機(jī)的IP地址和目的設(shè)備的IP地址;
[0009]當(dāng)所述目的設(shè)備的IP地址為所述第二虛擬機(jī)的IP地址時,根據(jù)所述第一虛擬機(jī)的IP地址和所述第二虛擬機(jī)的IP地址,判斷是否允許所述第一虛擬機(jī)訪問所述第二虛擬機(jī);
[0010]當(dāng)不允許所述第一虛擬機(jī)訪問所述第二虛擬機(jī)時,向所述第一虛擬交換機(jī)發(fā)送第一流表,使得所述第一虛擬交換機(jī)根據(jù)所述第一流表,丟棄接收到的所述第一虛擬機(jī)向所述第二虛擬機(jī)發(fā)送的第二報文。
[0011]根據(jù)本發(fā)明實施例的第二方面,提供另一種控制虛擬機(jī)之間互訪的裝置,其特征在于,用于虛擬可擴(kuò)展局域網(wǎng)疊加Vxlan overlay網(wǎng)絡(luò)中的控制器,所述Vxlan overlay網(wǎng)絡(luò)中包括第一虛擬機(jī)和第二虛擬機(jī),所述裝置包括:
[0012]接收單元,用于接收第一虛擬交換機(jī)發(fā)送的第一報文,其中,所述第一報文的源因特網(wǎng)協(xié)議IP地址和目的IP地址分別為所述第一虛擬機(jī)的IP地址和目的設(shè)備的IP地址;
[0013]第一判斷單元,用于當(dāng)所述目的設(shè)備的IP地址為所述第二虛擬機(jī)的IP地址時,根據(jù)所述第一虛擬機(jī)的IP地址和所述第二虛擬機(jī)的IP地址,判斷是否允許所述第一虛擬機(jī)訪問所述第二虛擬機(jī);
[0014]第一發(fā)送單元,用于當(dāng)不允許所述第一虛擬機(jī)訪問所述第二虛擬機(jī)時,向所述第一虛擬交換機(jī)發(fā)送第一流表,使得所述第一虛擬交換機(jī)根據(jù)所述第一流表,丟棄接收到的所述第一虛擬機(jī)向所述第二虛擬機(jī)發(fā)送的第二報文。
[0015]通過本發(fā)明實施例,VxLAN Overlay網(wǎng)絡(luò)的控制器在判定不允許某虛擬機(jī)訪問另一虛擬機(jī)時,向該虛擬機(jī)的虛擬交換機(jī)發(fā)送流表,使得該虛擬交換機(jī)將接收到的該虛擬機(jī)向該另一虛擬機(jī)發(fā)送的報文丟棄,從而不需要將報文轉(zhuǎn)發(fā)到網(wǎng)關(guān)處也能實現(xiàn)第一虛擬機(jī)到第二虛擬機(jī)的隔離,節(jié)約了虛擬交換機(jī)到網(wǎng)關(guān)的網(wǎng)絡(luò)帶寬。
【附圖說明】
[0016]圖1是本發(fā)明一種應(yīng)用場景的示意圖;
[0017]圖2是本發(fā)明控制虛擬機(jī)之間互訪的方法的一個實施例流程圖;
[0018]圖3是本發(fā)明控制虛擬機(jī)之間互訪的方法的另一個實施例流程圖;
[0019]圖4是本發(fā)明控制虛擬機(jī)之間互訪的裝置所在設(shè)備的一種硬件結(jié)構(gòu)圖;
[0020]圖5是本發(fā)明控制虛擬機(jī)之間互訪的裝置的一個實施例框圖。
【具體實施方式】
[0021]這里將詳細(xì)地對示例性實施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0022]在本發(fā)明使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本發(fā)明。在本發(fā)明和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。
[0023]應(yīng)當(dāng)理解,盡管在本發(fā)明可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本發(fā)明范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。
[0024]參照圖1所示的應(yīng)用場景,SDN控制器可以為租戶A、租戶B和租戶C分別分配VxLAN Overlay網(wǎng)絡(luò)資源。具體地,SDN控制器可以為租戶A創(chuàng)建網(wǎng)絡(luò)(Network-Α)、子網(wǎng)(SUBNET-A)和虛擬路由器(vRouter-A);為租戶B創(chuàng)建網(wǎng)絡(luò)(Network-B)、子網(wǎng)(SUBNET-B)和虛擬路由器(vRouter-B);以及,為租戶C創(chuàng)建網(wǎng)絡(luò)(Network-C)、子網(wǎng)(SUBNET-C)和虛擬路由器(vRouter-C)。SDN 控制器還可以將 VM_A、VM_B 和 VM-C,與 vRouter_A、vRouter-B
和 vRouter-C--關(guān)聯(lián),并將 vRouter-A、vRouter-B 和 vRouter-C 分別映射到 VxLAN GW。
如果同一租戶多個VM,則SDN控制器可以為每個VM創(chuàng)建一個vRouter來與該VM關(guān)聯(lián),并將創(chuàng)建的vRouter映射到VxLAN GW,例如,可以將圖1中的VM-B替換為租戶A的另一個VM,將vRouter-B替換為SDN控制器為租戶A創(chuàng)建的另一個vRouter,則租戶A有2個VM和2個 vRouter。
[0025]現(xiàn)有技術(shù)中,如果要實現(xiàn)VM-A到VM-B的訪問以及VM-A到VM-C的隔離,SDN控制器可以為vRouter-A、vRouter_B和vRouter-C分別創(chuàng)建不同的VPN,并為VxLAN Gff配置針對VM-A和VM-B之間報文的策略。這樣,VxLAN Gff在接收到VM-A經(jīng)由vSwitch_A發(fā)送給VM-B的報文時,可以根據(jù)配置的策略,將報文引導(dǎo)到外部設(shè)備(例如防火墻)上,經(jīng)過外部設(shè)備的處理再返回到VxLAN Gff上VM-B所在的VPN中,然后VxLAN Gff再將報文經(jīng)由vSwitch_B轉(zhuǎn)發(fā)給VM-B。VxLAN Gff在接收到VM-A經(jīng)由vSwitch_A發(fā)送給VM-C的報文時,由于VM-A和VM-C所在VPN不同,VxLAN Gff通過VPN隔離就可以將報文丟棄。
[0026]可見,現(xiàn)有技術(shù)中VM之間的隔離,是通過報文到達(dá)VxLAN GW后被丟棄來實現(xiàn)的,不必要地占用了 vSwitch-A到VxLAN GW的網(wǎng)絡(luò)帶寬。通過應(yīng)用本發(fā)明,可以對vSwitch_A進(jìn)行控制,使得VM-A向VM-C發(fā)送的報文在vSwitch-A處即被丟棄,從而避免了 vSwitch-A到VxLAN Gff的網(wǎng)絡(luò)帶寬的不必要浪費。
[0027]圖2是本發(fā)明控制虛擬機(jī)之間互訪的方法的一個實施例流程圖,參照圖2,本實施例中的控制虛擬機(jī)之間互訪的方法用于虛擬可擴(kuò)展局域網(wǎng)疊加Vxlan overlay網(wǎng)絡(luò)中的控制器,所述Vxlan overlay網(wǎng)絡(luò)中包括第一虛擬機(jī)和第二虛擬機(jī),所述方法包括如下步驟:
[0028]步驟S201,接收第一虛擬交換機(jī)發(fā)送的第一報文,其中,所述第一報