用于虛擬化數據中心的可擴縮多租戶網絡架構的制作方法
【專利摘要】提供了一種用于虛擬化數據中心的可擴縮多租戶網絡架構。所述網絡架構包括具有連接到多個交換機的多個服務器的網絡。所述多個服務器托管用于多個租戶的多個虛擬接口。配置儲存庫被連接到所述網絡,并且所述多個服務器中的每個服務器具有在其中托管的網絡代理。所述網絡代理封裝分組以用于跨越所述網絡從源虛擬接口傳輸到用于所述多個租戶中的一個租戶的所述多個虛擬接口中的目的虛擬接口。采用標識并且定位所述目的虛擬接口的信息來封裝所述分組,并且所述信息由連接到所述源虛擬接口和所述目的虛擬接口的交換機來解釋。
【專利說明】用于虛擬化數據中心的可擴縮多租戶網絡架構
【背景技術】
[0001]云數據中心正變得日益流行,因為它們在吸引人的現購現付模型上以非常低的成本為多個租戶提供計算資源。許多小型和中型企業(yè)正求助于這些云數據中心,不僅用于偶爾的大型計算任務,而且用于它們的IT作業(yè)。這幫助它們消除建立和維護它們自己的基礎設施的昂貴且常常是非常復雜的任務。這些多租戶云數據中心的操作員能夠提供劃算的基礎設施即服務(“Iaas”),因為它們能夠在大量租戶之間時分復用物理基礎設施。成熟的CPU虛擬化技術的出現使得有可能將專用且常常未充分利用的物理服務器轉換成在IaaS提供商的云數據中心中運行的虛擬機(“VM”)。
[0002]為了完全地實現資源共享的有益效果,這些云數據中心必須擴展到巨大的尺寸。租戶的數目越大,并且VM的數目越大,用于復用的機會就越好,這進而實現較好的資源效率和成本節(jié)省。然而,單獨增加規(guī)模不能夠完全地最小化總成本,因為需要大量昂貴的人力來配置設備,以便最佳地操作它,并且以便提供正在進行的管理和維護。這些費用的大部分反映了管理多租戶網絡的復雜性,所述多租戶網絡必須擴展到大量的租戶、主機以及VM,支持大量的地址,并且在任何租戶的各VM之間提供足夠的帶寬。最近可用的網絡架構不能夠以高效且可擴縮的方式支持多租戶并且通常在低成本或易于操作的方面妥協(xié)。
【專利附圖】
【附圖說明】
[0003]可以與結合附圖進行的以下具體描述有關地更充分地領會本申請,在附圖中相同的附圖標記在各處指代相同的部分,并且在附圖中:
圖1圖示了在其上可以實現實施例的可擴縮多租戶網絡架構的示例;
圖2是用于與圖1的網絡架構一起使用的網絡代理的不例不意圖;
圖3是用于依照各種實施例配置圖2的網絡代理的流程圖;
圖4是圖示了邊緣交換機和連接到其的網絡代理的示例配置的示意圖;
圖5A-C是依照各種實施例的針對圖2的網絡地址解析模塊的流程圖;
圖6是由跨越網絡的網絡代理中的網絡地址解析模塊存儲的示例網絡地址解析表的示意圖;
圖7是依照各種實施例的針對圖2的分組轉發(fā)模塊的流程圖;
圖8是依照各種實施例的示例分組封裝的示意圖;
圖9是目的交換機準備分組以用于傳輸到目的虛擬接口的流程圖;
圖10是依照各種實施例的針對圖2的分組接收模塊的流程圖;
圖11是針對跨越網絡從源虛擬接口傳送到目的虛擬接口的分組的示例路徑的示意圖;以及
圖12是用于托管根據本公開的網絡代理的服務器的示例的框圖。
【具體實施方式】
[0004]公開了用于虛擬化數據中心的可擴縮多租戶網絡架構。如在本文中一般地描述的虛擬化數據中心是能夠托管多個應用和服務以便存儲、管理以及散布數據和信息的計算資源的集合。計算資源可以包括多個服務器中的物理資源和虛擬資源(例如,虛擬機)兩者,并且被多個組織或租戶共享。租戶可以具有不同的數據使用要求和網絡需要,并且按需訪問虛擬化數據中心。數據中心可以將它的資源和基礎設施即服務(“IaaS”,諸如云計算模型的一部分)提供給租戶,并且針對它們的使用給它們開帳單。
[0005]在各種實施例中,可擴縮多租戶網絡架構使得虛擬化數據中心能夠以低成本可擴縮并且給它的租戶提供易于操作和配置的靈活且安全的網絡。所述網絡架構開發(fā)廉價的商品設備來使數據中心擴展到至少數以萬計的租戶、數以萬計的服務器以及數百萬的虛擬機(“VM”)。租戶具有靈活性來設計和使用它們的網絡,就好像它們是它唯一的占有者。
[0006]如在下面在本文中更詳細地描述的那樣,網絡架構通過在L2 (即,數據鏈路)和L3 (即,網絡)層兩者處完全地且高效地虛擬化地址空間來給租戶提供簡單且靈活的網絡抽象,而對租戶選擇L2或L3地址沒有任何限制。這個靈活性允許租戶創(chuàng)建跨越既在它們自己的虛擬化數據中心中又在租用的云數據中心中的VM的網絡。租戶可以將VM或整個應用從它們自己的數據中心移動到云數據中心,而無需改變用來標識VM的網絡地址。
[0007]應領會的是,在以下描述中,許多特定細節(jié)被闡述以提供對實施例的徹底理解。然而,應領會的是,可以在不限于這些特定細節(jié)的情況下實現所述實施例。在其他實例中,眾所周知的方法和結構可能未被詳細地描述以避免不必要地使實施例的描述混淆。此外,實施例可以與彼此相組合地使用。
[0008]現參考圖1,圖示了在其上可以實現實施例的可擴縮多租戶網絡架構的示例。網絡架構100由三個主要部件組成:⑴網絡105 ;⑵一組網絡代理(“NA”)110a-d ;以及
(3)配置儲存庫115。網絡105可以是基于現貨商品部件的交換式以太網,所述現貨商品部件諸如例如邊緣交換機120a_b和交換機125a_e。在各種實施例中,邊緣交換機120a_b和交換機125a-e在它們的端口之間支持虛擬局域網(“VLAN”)和基本IP轉發(fā)。網絡105可以具有任何拓撲,諸如例如Fat Tree (胖樹)、Clique或HyperX拓撲等等。
[0009]如在下面在本文中更詳細地描述的那樣,網絡架構100并不要求具有所有其成熟的路由協(xié)議以及它們的復雜配置要求的經過充分訓練的(full-fledged) IP路由支持。邊緣交換機120a_b和交換機125a_e僅需要能夠基于在分組內部找到的報頭來轉發(fā)發(fā)送到它們自己的MAC地址的分組。在各種實施例中,邊緣交換機120a-b在少量的靜態(tài)路由表條目上執(zhí)行目的IP地址的基本最長前綴匹配(“LPM” )。
[0010]網絡代理110a-d駐留于連接到網絡105的服務器135a_d的超級監(jiān)督器(或驅動器域)130a_d中。每個服務器135a_d可以運行一個或多個租戶的一個或多個VM。每個VM能夠具有一個或多個虛擬接口( “VIF”),其是可以或者可以不直接對應于物理網絡接口的計算機網絡接口的抽象虛擬化表示。每個服務器中的網絡代理(“NA”)管理該服務器中的各VM中的所有VIF的聯(lián)網。例如,具有超級監(jiān)督器130a和NA IlOa的服務器135a可以運行租戶“A”的VMl 140a、租戶“B”`的VM2 140b以及租戶“C”的VM3 140C ;具有超級監(jiān)督器130b和NA IlOb的服務器135b可以運行租戶“A”的VM4 140d和VM5 140e以及租戶“B”的VM6 140f ;具有超級監(jiān)督器130c和NA IlOc的服務器135c可以運行租戶“A”的VM7 140g、租戶“B”的VM8 140h和VM9 140?以及租戶“C,,的VMlO 140 j ;而具有超級監(jiān)督器130d和NA IlOd的服務器135d可以運行租戶“B”的VMll 140k和租戶“C”的VM12 1401。[0011]應領會的是,每個服務器135a-d可以運行來自多個租戶的VM,并且每個租戶可以在任何服務器處具有它們的VM。還應領會的是,服務器135a-d、VM 140a_I以及租戶“A”、“B”和“C”被示出僅用于說明性目的。附加的服務器、VM以及租戶可以利用網絡架構100,并且事實上,網絡架構100能夠支持數以萬計的服務器、數以萬計的租戶以及數百萬的VM。
[0012]配置儲存庫115是用于網絡架構100的中心儲存庫并且駐留在眾所周知的地址處。中心儲存庫115保存針對每個邊緣交換機對(例如,邊緣交換機120a-b)——連接兩個交換機的VLAN組而列出的VLAN表。能夠通過針對具有VLAN支持的商品交換機的任何網絡多路解決方案來確定這組VLAN。在各種實施例中,中心儲存庫115可以與用于在虛擬化數據中心中管理VM (例如,VM 140a-1)的VM管理器系統(tǒng)(未示出)位于一處。
[0013]網絡架構100中的每個租戶(例如,租戶以及“C”)具有它自己的專用IP和MAC地址空間以便于網絡中的租戶隔離以及以使得能實現L2和L3虛擬化。在各種實施例中,租戶的整個專用IP地址形成單個MAC地址空間。每個租戶能夠規(guī)定多個IP子網,每個子網由若干MAC地址空間中的一個來支持。對于每個IP子網來說,租戶還能夠規(guī)定虛擬IP路由器的IP地址。
[0014]每個租戶能夠隨心所欲地管理它的專用地址空間,因為這些L2和L3地址空間被完全地虛擬化了。多個租戶能夠使用相同的地址而不讓它們的分組被錯誤地路由。如在下面在本文中更詳細地描述的那樣,這個地址分配滿足與在傳統(tǒng)網絡中相同的標準唯一性要求:給定租戶的任兩個接口都不能夠用相同的地址來加以標識并且在相同的IP子網內的任兩個接口都不能夠具有相同的MAC地址。進一步地,租戶可以選擇根本不為接口分配任何IP地址。
[0015]除這些每租戶專用地址空間以外,提供了被跨越所有租戶共享并且還被暴露在數據中心之外的公用地址空間。租戶能夠在配置時間指定VM接口(即,VIF)為具有公用IP地址。這些地址能夠被靜態(tài)地或者動態(tài)地分配。這些接口對外部世界而言是可看見的,并且是WAN接口在真實數據中心中的虛擬等同物。
[0016]注意力現指向圖2,圖2更詳細地圖示了圖1的網絡代理。在各種實施例中,網絡代理200可以包括配置模塊205、網絡地址解析模塊210、分組轉發(fā)模塊215、分組封裝模塊220以及分組接收模塊225。配置模塊205建立網絡代理200和由網絡代理200管理以用于在網絡架構100中操作的VIF。網絡地址解析模塊210與網絡架構100中的其他網絡代理協(xié)作以收集和維護在網絡中轉發(fā)和接收分組所必需的所有信息。該信息被存儲在一個或多個網絡地址解析表230中。
[0017]分組轉發(fā)模塊215處理從由網絡代理200管理的VIF到網絡中的其他VIF的分組的轉發(fā)。分組轉發(fā)模塊215與網絡地址解析模塊210和分組封裝模塊220聯(lián)合地工作,所述分組封裝模塊220封裝將被跨越網絡傳送的分組。分組轉發(fā)模塊215還基于在配置時間從配置儲存庫115下載的VLAN表235將VLAN標簽分配給將被跨越網絡傳送的分組。分組接收模塊225負責處理從網絡中的其他VIF接收分組。應領會的是,網絡中的分組可以經由網絡中的公用VIF而在它專用的IP和MAC地址空間中的給定租戶的各VM之間以及在屬于不同租戶的各VM之間傳送。這些模塊的操作在下面在本文中被更詳細地討論。
[0018]網絡代理200在引導時間具有特殊IP地址的自主的“即插即用”配置。這個即插即用配置是可能的,因為網絡架構100中的所有邊緣交換機(例如,邊緣交換機120a-b)具有在它們的操作期間從不改變的簡單的靜態(tài)配置。所有邊緣交換機被配置成規(guī)定出現在它們的下行鏈路端口中的每一個上的IP地址。因為這些IP地址對于給定交換機的端口而言是本地的,所以所有邊緣交換機都使用相同的配置。
[0019]由網絡代理200使用的特殊IP尋址方案可以包括例如形式為10.A 0.0/16、P.0.0.0/24的前綴,或使用端口號/7作為IP地址的一部分并且留下一定數目的位(例如,10./7.0.0/16尋址方案中的16和/7.0.0.0/24尋址方案中的24)來標識租戶的任何其他尋址方案,如在下面在本文中更詳細描述的那樣。應領會的是,IP尋址方案10./7.0.0/16作為示例在下面的本文中被用于僅描述性目的。如由本領域的技術人員所領會的那樣,可以使用基于端口號P和租戶ID的任何其他IP尋址方案。
[0020]每個邊緣交換機保存路由表以存儲這些IP地址。邊緣交換機為它的下行鏈路端口中的每一個插入一個路由表條目。這些條目是固定的并且在交換機的操作期間不改變。對于給定端口/7,路由表條目存儲前綴,諸如例如尤其是10./7.0.0/16和10./7.0.1的下一跳地址、或/7.0.0.0/24和/7.0.0.1的下一跳地址。結果,即便對于最廉價的交換機來說,路由表條目的數目也是小的(等于下行鏈路端口的數目)。每個前綴內的單獨的IP地址的較低階位標識連接到端口 P的服務器中的租戶。例如,IP地址10./7.12.25作為目的地址出現在束縛到連接到端口/7的服務器上的各VM并且屬于采用ID 12.25標識的租戶的所有分組中。應領會的是,在10./7.0.0/16尋址方案的情況下采用形式為10./7.0.1的IP地址標識服務器,或者在A 0.0.0/24尋址方案的情況下采用/7.0.0.1的IP地址標識服務器。
[0021]現參考圖3,描述了依照各種實施例的用于配置圖2的網絡代理的流程圖。首先,每當具有網絡代理的超級監(jiān)督器引導時,網絡代理200就通過它所連接到的邊緣交換機來偵聽鏈路層發(fā)現協(xié)議(“LLDP”或IEEE 802.1AB標準)消息(300)。LLDP消息包含交換機的端口號P和MAC地址。網絡代理然后基于交換機的端口號/7將其服務器的本地IP地址設置為例如?ο./?.0.1 (305),并且當跨越網絡發(fā)送分組時使形式為?ο./?.<粗戶m的特殊IP地址與每個租戶的存在于服務器中的VM組相關聯(lián)(310)。注意,網絡中的每個服務器具有形式為10./7.0.1的本地IP地址,而不管它被連接到的交換機如何。如果連接到不同交換機的兩個服務器二者使用相同的端口號&則它們可以具有相同的本地IP地址。在建立其服務器的地址和租戶的IP地址之后,網絡代理然后準備好響應對來自服務器所連接到的本地邊緣交換機的其本地地址的任何地址解析協(xié)議(“ARP”)查詢。
[0022]應領會的是,與服務器相關聯(lián)的本地IP地址(例如,10./7.0.1)對于服務器所連接到的邊緣交換機而言是本地的。也就是說,這個本地IP地址在邊緣交換機之外未被用來跨越網絡對分組進行尋址。還應領會的是,與租戶的存在于服務器中的VM組相關聯(lián)并且由網絡中的網絡代理用來跨越網絡對分組進行尋址的特殊IP地址是僅為網絡中的網絡代理所知的。VM本身沒有這些特殊IP地址的知識。如在下面的本文中更詳細地描述的那樣,這些特殊IP地址被用來跨越網絡封裝分組并且便于兩個網絡代理(即,源網絡代理和目的網絡代理)之間的通信。
[0023]在圖4中示出圖示了邊 緣交換機和連接到其的網絡代理的示例配置的示意圖。邊緣交換機400具有15個端口和連接到它的數個端口中的每一個的服務器。邊緣交換機400還存儲具有它的數個端口中的每一個端口的信息的路由表420。服務器被連接到交換機400并且具有有著內部地連接到網絡代理的VIF的VM。網絡代理(如上面參考圖4所描述的)在它們被放置到網絡中時為服務器配置本地IP地址并且為它們的VIF配置特殊IP地址。連接到交換機400的每個服務器具有形式為10./7.0.1的本地IP地址,其中/7指定服務器被連接到的交換機400中的端口。例如,連接到交換機400的端口 I的服務器405a具有本地IP地址10.1.0.1,連接到交換機400的端口 2的服務器405b具有本地IP地址
10.2.0.1,連接到交換機400的端口 3的服務器405c具有本地IP地址10.3.0.1,而連接到交換機400的端口 15的服務器405d具有本地IP地址10.15.0.1。
[0024]特殊IP地址格式415被用于服務器405a_d的IP地址,并且用來將分組導向至VM410a-m中的VIF。特殊IP地址取決于服務器被連接到的交換機的端口號和它們所屬于的租戶。在屬于單個租戶的單個服務器上的每組虛擬機共同地與形式為10./7.<粗戶_?Τ>的特殊IP地址相關聯(lián)。例如,當服務器405a被連接到交換機400的端口 I并且VIF屬于具有ID 12.10的租戶“A”時,經由特殊IP地址10.1.12.10而到達服務器405a中的VIF 410a。也屬于租戶“A”的VIF 410d和410k在它們處于分別連接到交換機400的端口 2和15的服務器405b和405d中時到達特殊IP地址10.2.12.10和10.15.12.10。并且當VIF 410h和410i 二者駐留于租戶“A”的服務器405c中時,通過相同的特殊IP地址10.3.12.10來訪問它們。注意,正被相同的特殊IP地址訪問不會阻止VIF 410h-410i被正確地標識和尋址,因為網絡中的每個VIF由在下面的本文中更詳細地描述的唯一 ID來標識。
[0025]類似地,租戶“B”具有連接到交換機400的端口 I的服務器405a中的VIF 410b、連接到交換機400的端口 2的服務器405b中的VIF 410e、連接到交換機400的端口 3的服務器405c中的VIF 410f、以及連接到交換機400的端口 4的服務器405d中的VIF 410 j。經由用于具有 ID 12.20 的租戶 “B” 的特殊 IP 地址 10.1.12.20,10.2.12.20,10.3.12.20以及10.4.12.20分別到達VIF 410b.410e.410f以及410j。租戶“C”具有連接到交換機400的端口 I的服務器405a中的VIF 410b、連接到交換機400的端口 3的服務器405c中的VIF 410g、以及連接到交換機400的端口 15的VIF 4101_m。經由用于具有ID 12.30的租戶 “C,,的特殊 IP 地址 10.1.12.30、10.3.12.30 以及 10.15.12.30 分別到達 VIF 410b、410g以及4101-m。注意,可以通過相同的IP地址到達VIF 410I_m,但它們被采用使得它們能夠由網絡尋址的唯一 ID來加以標識。
[0026]在各種實施例中,網絡中的每個VIF通過形式為MAC_AS_ID, MAC >的三元組而被唯一地標識。TeamtJD字段(例如,16位)標識VIF所屬于的租戶的ID,MAC_AS_ID字段標識VIF連接到的MAC地址空間,而MAC字段通過它在由MAC_AS_ID所指示的MAC地址空間內的唯一 MAC地址來標識VIF。應領會的是,MAC_AS_ID可以與由租戶所使用的IP子網號相同。如在下面的本文中所描述的那樣,這個唯一 ID使得網絡代理200能夠適當地跨越網絡對封裝的分組進行尋址。
[0027]現在參考圖5A-C,描述了依照各種實施例的用于網絡地址解析模塊的流程圖。網絡地址解析模塊210的主要目的是維護(一個或多個)網絡地址解析表(“NART”)230,所述網絡地址解析表230將VIF的唯一 ID (如在下面所描述的那樣)映射到它在網絡中的位置,其由VIF的主機服務器連接到的交換機的MAC地址和端口號規(guī)定。也就是說,網絡地址解析模塊210替換傳統(tǒng)ARP并且使用NART 230來用作針對來自本地VM的傳統(tǒng)ARP請求的代理服務器。
[0028]在各種實施例中,與傳統(tǒng)ARP機制對照,網絡地址解析模塊是基于“默認推送(by-default-push) ”模型的,其中每當VIF到其位置的綁定改變時,該VIF到其位置的綁定被推送到網絡中的所有網絡代理。如由本領域的技術人員所領會的那樣,傳統(tǒng)ARP機制僅在它們被需要時才拉出該綁定。這個默認推送模型有助于網絡設計并且允許可管理的開銷。
[0029]網絡地址解析模塊210用全部使用相同的分組格式和操作碼字段來規(guī)定消息類型的三個消息類型來實現這個模型:(1)查詢WHERE(在哪里)消息;(2)肯定位置信息HERE (在這里)消息;以及(3)否定位置信息NOT-HERE (不在這里)消息。當在L2層廣播時,這些消息攜帶入口邊緣交換機MAC作為源地址并且使用包括所有邊緣交換機上的所有服務器下行鏈路的特殊VLAN。當單播時,這些消息被IP尋址到接收網絡代理(具有邊緣交換機MAC地址)并且通過網絡取規(guī)則路徑。
[0030]圖5A圖示了在新VM在其主機服務器(例如,運行具有網絡地址解析模塊210的網絡代理200的服務器)上被首次啟動時由網絡地址解析模塊執(zhí)行的動作。當新VM被啟動時,諸如當該VM被首次引導或者已從另一服務器遷移到其主機服務器時,該VM的主機服務器中的網絡代理200中的網絡地址解析模塊210將HERE消息廣播到網絡中的所有網絡代理(500)。這個HERE消息攜帶唯一 ID (如在下面的本文中所描述的那樣)和VIF在新VM中的位置,即,新VIF所連接到的交換機的MAC地址和端口號。該消息中的信息然后被網絡中的所有網絡代理用來填充它們的NART 230 (505),如參考圖6在下面的本文中更詳細地描述的那樣。
[0031]應領會的是,NART 230中的條目從不被刪除或者期滿。在正常操作期間,條目通過由網絡代理中的網絡地址解析模塊跨越網絡發(fā)送的HERE廣播的流來保持最新。偶爾可能的是,NART 230已達到它們的容量(非常罕見的事件)或者來自網絡地址解析模塊210的分組被丟棄。在圖5B中所圖示的第一種情況下,網絡代理200可能在它的NART 230中沒有空間來存儲網絡中的給定VIF的信息。當針對給定VIF的查找在它的NART 230中失敗時,網絡代理200中的網絡地址解析模塊210將WHERE消息廣播到網絡中的所有網絡代理(510)。連接到VIF的網絡代理200中的網絡地址解析模塊210然后用單播HERE消息來響應(515)。
[0032]在圖5C中所圖示的第二種情況下,指示先前丟棄分組的NART 230中的陳舊條目能夠導致網絡代理200接收到用于不存在的VIF的單播分組(520)。例如,當VIF已改變了它的位置但改變在最終被丟棄的分組中被傳送時,情況可能是這樣的。因為分組被丟棄了,所以改變未被傳送到其他網絡代理并且它們的NART 230未被更新以反映該改變。網絡代理能夠將分組發(fā)送到舊VIF的位置,但是因為VIF不再在那個位置處,所以接收網絡代理不會將VIF識別為它自己中的一個。針對該VIF的后續(xù)分組將導致接收網絡代理中的網絡地址解析模塊用單播NOT-HERE消息來回答(525)。這使發(fā)送該分組的網絡代理中的網絡地址解析模塊刪除其NART中的陳舊條目(530)并且使用廣播WHERE消息來重新學習VIF的位置(535)。如由本領域的技術人員所領會的那樣,WHERE消息用VIF信息來觸發(fā)HERE響應,所述VIF信息然后被輸入到接收網絡代理的NART中。
[0033]進一步地,應領會的是,HERE、WHERE以及NOT-HERE消息僅強加可忽視的開銷。HERE消息包含發(fā)送者位置(64位)和正被通告的VIF ID (128位),并且是320位長,包括所需要的報頭(如在下面所描述的)??紤]其他物理層約束,諸如可變填充和幀間間隙,HERE消息占用約416個字節(jié)。
[0034]假定在虛擬化數據中心中快速采用10 Gbps以太網,并且假定典型的服務器應該支持數十個VM,則良好均衡的服務器很可能具有至少一個10 Gbps網絡接口卡。只使用10Gbps的約1% (即,100 Mbps),每個這種服務器能夠支持每秒至少175,000個HERE消息。這意味著網絡總體上能夠支持每秒175,000個那么多的VM遷移或引導。應領會的是,即便對于具有一百萬個VM的網絡,并且在更合理的VM遷移/引導速率下,帶寬可能是甚至更低的。
[0035]應進一步領會的是,用于NART 230的開銷也是低的。每個NART表條目是32個字節(jié)。能夠保存一百萬個條目的哈希表以0.50的低負載因數占用不超過64 MB。從另一角度看,甚至最小的數據中心服務器具有約8 GB的主存儲器,并且因此這個表僅占開銷的約0.8%。
[0036]在圖6中圖示了由跨越網絡的網絡代理中的網絡地址解析模塊存儲的示例NART的示意圖。網絡代理可以保存NART以標識并且定位網絡中的所有VIF,諸如例如NART 600和605。NART 600可以被用來存儲尋址信息,而NART 605可以被用來存儲針對網絡中所有VIF的尋址信息和位置信息兩者。
[0037]NART 600可以通過列610中的它們的租戶ID和IP地址并且通過列615中的它們的MAC地址來標識VIF。NART 605可以通過列620中的它們的唯一三元組<Jenant_ID,MAC—AS—ID, MAO來標識VIF,并且針對列620中的每個條目在列625中存儲位置信息(即,托管該VIF的服務器所連接到的交換機的MAC地址和端口號)。
[0038]應領會的是,在網絡架構支持僅L2網絡抽象的情況下,VIF不需要具有IP地址。在這種情況下,它們僅基于它們的MAC地址進行通信。還應領會的是,NART 600-605可以被實現為單個表。應進一步領會的是,NART 600-605可以被實現為分布式哈希表,其中它們的第一列被用作關鍵碼而它們的第二列被用作值。
[0039]注意,當網絡地址解析模塊通知新VIF存在于網絡中時,在NART 600-605中存儲的信息是由HERE消息所攜帶的信息。對于給定VIF來說,HERE消息包含它的租戶ID、它的MAC地址、它的MAC_AS_ID、它的IP地址以及該VIF被連接到的交換機的MAC地址和端口號。采用這個信息,各分組可以被遍布網絡路由,如參考圖8-12在下面的本文中更詳細地描述的那樣。
[0040]現參考圖7,描述了依照各種實施例的圖2的分組轉發(fā)模塊的流程圖。分組被從VM傳送并且在被跨越網絡轉發(fā)之前到達在它們的主機服務器中運行的網絡代理(例如,網絡代理200)。每個分組具有帶有其目的地的MAC地址的MAC報頭,并且在IP報頭中可以或者可以不具有IP地址。目的VIF的MAC地址可以通過由源VM發(fā)送的ARP查詢來找到并且被其網絡代理解析,或者它可以被廣播(在ARP分組中)。
[0041]網絡代理中的分組轉發(fā)模塊(例如,網絡代理200中的分組轉發(fā)模塊215)的目標是適當地標識并且定位分組的目的地并且準備好它們以便跨越網絡轉發(fā)。具有尋址信息的分組(例如,HERE、WHERE、ΝΟΤ-HERE、ARP分組)被網絡地址解析模塊像在下面所描述的那樣處理。
[0042]首先,分組從源VM到達分組轉發(fā)模塊(700)。如參考圖7在上面描述的那樣,源VM 中的源 VIF (“VIFs”)被三元組 <Jenant_IDs, MAC_AS_IDs, MACS> 唯一地標識。目的 VIF的租戶ID( “VIFd”)總是與源VIFs的租戶ID相同,因為租戶在網絡中與彼此隔離并且僅在它們自己的VM之間通信。為了跨越網絡轉發(fā)分組,分組轉發(fā)模塊需要知道標識目的VIFd以及它位于哪里(即,VIFd連接到的交換機的MAC地址和端口號)的唯一三元組<Jenant_IDd, MAC_AS_IDd, MACb)。
[0043]關于分組去往哪里的第一線索由該分組中的MAC地址提供。如果分組中的MAC地址不是路由器的MAC地址(705),則分組轉發(fā)模塊知道該分組被尋址到與VIFs相同的MAC地址空間中的VIFd。也就是說,分組中的MAC地址是VIFd它本身的MAC地址。分組轉發(fā)模塊因此知道唯一三元組MAC_AS_IDd,拗Q>,其將VIFd標識為Tenant_IDD =Tenant_IDs,MAC_AS_IDd = MAC_AS_IDs 以及Μ?Ο? =分組中的姻C地址(710)。
[0044]否則,如果分組中的MAC地址是路由器的MAC地址,則分組去往不同于VIFs的子網的子網中的vifd。在這種情況下,因為分組正被發(fā)送到路由器/交換機,所以分組包含具有VIFd的IP地址的IP報頭。分組轉發(fā)模塊然后能夠根據分組中的IP地址確定VIFd位于其中的IP子網(715)。其然后能夠通過若干手段中的任一個來確定正確的MAC_AS_IDd,所述若干手段包括直接地使用目的IP子網號或者使用查找表。分組轉發(fā)模塊能夠通過基于分組中的IP地址和Tenant_IDD在NART 600中查找它來確定拗G地址(720)。
[0045]在VIFd的三元組已知的情況下,分組轉發(fā)模塊剩下的是確定VIFd在網絡中的位置,也即,這個VIF位于其上的服務器以及服務器所連接到的交換機和端口號。分組轉發(fā)模塊簡單地基于所標識的三元組在NART 705中查找位置信息(725)。一旦分組目的地被分組轉發(fā)模塊完全地標識并且定位,就通過檢查先前從配置儲存庫115下載的信息選擇VLAN路徑(730)(例如,VLAN表235中的信息)。最后一個步驟是封裝分組(735),因而該分組能夠被轉發(fā)到其目的地 (740)。
[0046]注意力現指向圖8,其圖示了依照各種實施例的示例分組封裝的示意圖。分組封裝模塊220將IP報頭(800)和802.1q以太網報頭(805)添加到將被通過分組轉發(fā)模塊215跨越網絡傳送的每個分組。IP報頭包含與源和目的VIFs相關聯(lián)的特殊IP地址。802.1q以太網報頭包含源交換機的MAC地址、目的交換機的MAC地址以及規(guī)定將由分組跨越網絡所采取的VLAN路徑的VLAN標簽。應領會的是,每個分組還需要攜帶源VIF的MAC_AS_ID以便目的網絡代理能夠在具有相同MAC地址但屬于不同MAC地址空間的相同租戶的兩個VIF之間消除歧義。這個MAC_AS_ID能夠被攜帶在IP報頭的源地址字段或IP報頭的某其他字段中(例如,在IP-1D字段中,連同12位VLAN標識符一起)。
[0047]所選的VLAN標簽還被攜帶在IP報頭的數據報ID字段中,因為802.1q報頭在目的交換機(即,出口邊緣交換機)處被丟棄,并且接收網絡代理可能想要能夠確定攜帶該分組的VLAN以用于監(jiān)控和其他目的。如由本領域的技術人員所領會的那樣,將VLAN標簽插入在IP報頭的數據報ID字段中不是有問題的,因為IP報頭中的“不分片”位被設置了,從而防止分組分片。還應領會的是,如果目的VIF被附連到與源VIF相同的交換機,則代替地將目的交換機的MAC地址置于802.1q報頭中,分組封裝模塊220使用其服務器(即,運行分組封裝模塊的網絡代理駐留在其中的源服務器)的MAC地址。這被實現是因為交換機丟棄對于源和目的地來說具有相同MAC地址的分組,并且源網絡代理的MAC地址未被暴露在交換機本身之外。應進一步領會的是,這個分組封裝不需要或者導致服務器的MAC地址被暴露于網絡,它也不消耗本地邊緣交換機中的任何額外的FIB條目。[0048]在分組被封裝之后,它被跨越由802.1q報頭中的VLAN標簽規(guī)定的VLAN轉發(fā),直到它到達它的目的(即,出口)交換機為止。圖9圖示了在目的交換機處采取的以使分組準備好傳輸到目的VIF的步驟。在接收到該分組時,交換機將由分組封裝模塊220插入的802.1q報頭中的目的MAC地址識別為它自己的,并且剝離報頭(900)。交換機然后在它的路由表中查看目的VIF的IP地址以確定托管目的VIF的服務器的IP地址(905)。交換機然后插入規(guī)定它自己的MAC作為源MAC地址并且規(guī)定托管目的VIF的服務器的MAC作為目的MAC地址的以太網報頭(910)。該分組然后被轉發(fā)到托管目的VIF的服務器,其中它被在服務器的超級監(jiān)督器中運行的網絡代理處的分組接收模塊225接收。
[0049]在圖10中圖示了由分組接收模塊225在接收分組時所采取的步驟。分組接收模塊225首先從分組剝離或者解封裝以太網報頭(1000),并且然后從分組剝離IP報頭(1005)。該分組然后被基于它在分組中的MAC地址、MAC_AS_ID以及如被編碼在與目的VIF相關聯(lián)的特殊IP地址中的租戶ID而轉發(fā)到目的VIF (1010)。
[0050]注意力現指向圖11,其圖示了針對跨越網絡從源VIF傳送到目的VIF的分組的示例分組流。VM 1100想要將分組發(fā)送到VM 1105。兩個VM屬于租戶“B”,但是在不同的服務器中。VM 1100像其通常那樣將分組1110發(fā)出到VM 1105。分組1110包含VM 1100中的源VIF的MAC地址MACs和VM 1105中的目的VIF的MACd地址。VM 1100可以使用地址解析協(xié)議(“ARP” )來從網絡代理1115得到VM 1105中的目的VIF的MACd地址。
[0051]具有MACs和MACd地址的分組1110被VM 1100中的VIF發(fā)出到網絡代理1115。在那里,如參考圖7-9在上面所描述的那樣,網絡代理1115確定如何在分組轉發(fā)模塊215中跨越網絡指導分組1110并且用IP報頭和802.1q報頭封裝分組1110以形成已封裝分組1120。已封裝分組1120的IP報頭包含源和目的VIFs的IP地址,即,IP_VIFS和IP_V%,而802.1q報頭包含源和目的交換機的MAC地址(B卩,入口交換機1125的MAC_switchs地址和出口交換機1130的MAC_switchD地址)、以及VLAN標簽,該VLAN標簽指示已封裝分組1120跨越網絡1135從入口交換機1125到出口交換機1130所采取的VLAN路徑。
[0052]已封裝分組1120采取在VLAN標簽中規(guī)定的VLAN路徑并且到達出口交換機1130。在那里,如參考圖9在上面描述的那樣,802.1q報頭被剝離或者解封裝,并且交換機查詢它的路由表以確定托管支持VM 1105的網絡代理1140 (即,MAC_NAd)的服務器的MAC地址。交換機1130然后插入具有作為源MAC地址的其MAC_switchD地址和作為目的MAC地址的MAC_NAd的以太網報頭以形成分組1145,并且將分組1145轉發(fā)到網絡代理1140。網絡代理1140然后解封裝分組1145以重新得到分組1110,如參考圖10在上面所描述的那樣,并且將分組1110轉發(fā)到VM 1105中的目的VIF。
[0053]應領會的是,僅出于說明目的示出了上面所描述的用于將分組1110從VM 1100傳送到VM 1105的步驟。所述步驟對于在不同IP子網中的VM之間傳送的分組來說可能是不同的。還應領會的是,公用地址空間可以被實現為具有選定ID (例如ID 2)的特殊租戶。這個租戶可以包括處理被束縛于在數據中心中的網絡外部的目的地的分組的一些特殊虛擬接口。在這種情況下,在這些接口后面的節(jié)點(可能是完全專用的物理機器)僅向和從真實物理路由器接口中繼分組。
[0054]有利地,上面在本文中所描述的網絡架構允許租戶具有它們的網絡的簡單的抽象視圖。每個租戶將在IP子網內的它的全部VM視為被連接到單個虛擬交換機,并且將所有它的IP子網視為與單個路由器互連。交換機和路由器本身呈現非常簡單的視圖;它們不需要配置,并且能夠總是擴縮到必要數目的端口。此外,所述網絡架構不對租戶如何設計它的網絡或者對它們運行的協(xié)議設置限制。租戶能夠隨心所欲地分配IP和MAC地址并且將它們用于任何目的-不只是通信。例如,許多企業(yè)應用使用硬編碼的MAC和IP地址,并且有時甚至用于認證目的。盡管網絡架構提供針對IPv4的內置支持,但是租戶可自由地使用僅L2抽象,并且能夠運行諸如IPv6之類的其他傳輸協(xié)議。網絡架構因此可以促進新穎網絡和傳輸協(xié)議的開發(fā)。
[0055]在各種實施例中,對于10./7.0.0/16尋址方案而言,網絡架構能夠同時地支持65533那么多個租戶,并且可以被擴展以支持更多。這個限制由于在IP地址中用來規(guī)定租戶ID的位的數目(例如,16)而出現。該位數目能夠通過例如將IP地址內的位從端口 ID字段移位到租戶ID字段、或者使用諸如/7.0.0.0/24之類的另一尋址方案(在該情況下24位將被用于租戶ID)來加以擴展。這樣做可以顯著地增加被支持租戶的數目(到至少128K)。可替換地,UDP報頭可以被包括在由網絡代理中的分組封裝模塊(例如,網絡代理200中的分組封裝模塊220)所執(zhí)行的分組封裝中,以便UDP端口號字段可以被用來擴展租戶ID空間。如由本領域的技術人員所領會的那樣,專有報頭因為它們使得網絡難以標識屬于特定租戶的分組而被避免。
[0056]應進一步領會的是,網絡架構允許比傳統(tǒng)網絡多至少一個數量級的VM,因為它的分組封裝允許高效地使用最關鍵的交換機資源之一:存儲轉發(fā)信息庫(“FIB”)表所需的空間。網絡架構通過確保外部802.1q/以太網報頭僅攜帶網絡交換機的地址來實現這一點。也就是說,所有分組對于網絡而言看起來就像是它們正在邊緣交換機之間交換。這意味著非邊緣交換機僅需要學習和存儲用于數百個其他邊緣交換機的FIB表條目,同時邊緣交換機還需要具有用于它們本地附連的服務器的FIB條目。交換機因此被與更大量的VM地址隔離。
[0057]網絡架構因此使得能實現有用的可擴縮性,同時給客戶端提供簡單的網絡抽象和操作。如由本領域的技術人員所領會的那樣,網絡架構以三種不同的方式簡化網絡操作。首先,如針對配置模塊205參考圖3-4在上面描述的那樣,網絡架構使所有其配置自動化。配置細節(jié)要么被離線地計算(例如,在配置儲存庫115中存儲的VLAN配置),要么被單個實體自主地確定(例如,邊緣交換機中的IP路由表)。此外,大部分配置是靜態(tài)的;這不僅消除了對于由人類持續(xù)監(jiān)督的需要,而且還使調試和故障查找變得更容易。
[0058]其次,網絡架構使得易于利用在許多商品交換機上為標準的QoS機制,實現租戶特定的業(yè)務設計、訪問控制列表(“ACL”)以及網絡內的隔離策略。作為設計原則,網絡架構僅利用標準的報頭格式;這使得所有重要的租戶信息可在由甚至最基本的ACL機制支持的報頭字段中得到。例如,ACL能夠簡單地通過使用IP地址的低階位(租戶ID)來匹配屬于單個租戶的所有分組。或者,為了改進擴縮,ACL能夠僅對照前綴或這些低階位的子集來匹配,以便允許租戶ID對如由服務提供商所分配的服務類別進行編碼。類似地,租戶在兩個物理服務器之間的流能夠通過對源和目的MAC地址并且對封裝報頭IP地址的端口號字節(jié)進行匹配來容易地加以標識。網絡架構對在服務器處的網絡代理處具有可編程性的以太網的使用使得更易于經由中央控制器來部署成熟的QoS。
[0059]最后,網絡架構解決了操作的總費用的兩個部分:資本成本和經營成本。其最小化了資本費用,因為它能夠高效地利用廉價的、特征和資源有限的商品交換機。網絡架構還因為它充分利用任何拓撲的能力而消除了浪費的預付資本成本。這允許運營商根據需要并且僅以小增量的方式發(fā)展網絡,不像需要諸如胖樹網絡(胖樹僅能夠被以大增量的方式發(fā)展)之類的固定拓撲的架構。
[0060]如由本領域的技術人員所領會的那樣,數據中心網絡中的經營費用受人類操作員的成本支配。上面在本文中所描述的網絡架構需要非常少的操作員注意,因為其配置的大部分是自動的且靜態(tài)的。此外,因為網絡架構允許VM布置而不用擔心網絡問題,所以它能夠降低數據中心管理的該方面的復雜性。
[0061]現參考圖12,描述了用于托管根據本公開的網絡代理的服務器的示例的框圖。月艮務器1200 (例如,臺式計算機、膝上型電腦或移動設備)能夠包括處理器1205和存儲器資源,諸如例如易失性存儲器1210和/或非易失性存儲器1215,以用于執(zhí)行在有形的非瞬態(tài)介質(例如,易失性存儲器1210、非易失性存儲器1215和/或計算機可讀介質1220)中存儲的指令和/或包括被配置成執(zhí)行本公開的各種示例的邏輯的專用集成電路(“ASIC”)。
[0062]機器(例如,計算設備)能夠包括和/或接收經由輸入設備1225存儲一組計算機可讀指令(例如,軟件)的有形的非瞬態(tài)計算機可讀介質1220。如本文所用的那樣,處理器1205能夠諸如在并行處理系統(tǒng)中包括一個或多個處理器。存儲器能夠包括可由處理器1205尋址以用于執(zhí)行計算機可讀指令的存儲器。計算機可讀介質1220能夠包括諸如隨機存取存儲器(“RAM”)之類的易失性和/或非易失性存儲器、諸如硬盤、軟盤和/或磁帶存儲器之類的磁存儲器、固態(tài)驅動器(“SSD”)、閃速存儲器、相變存儲器等等。在一些實施例中,非易失性存儲器1215可以是包括多個物理非易失性存儲器設備的本地或遠程數據庫。
[0063]處理器1205能夠控制服務器1200的總體操作。處理器1205能夠被連接到存儲器控制器1230,所述存儲器控制器1230能夠從易失性存儲器1210 (例如,RAM)讀取數據和/或將數據寫入到易失性存儲器1210 (例如,RAM)。存儲器控制器1230能夠包括具有它自己的存儲器資源(例如,易失性和/或非易失性存儲器)的ASIC和/或處理器。易失性存儲器1210能夠包括一個或多個存儲器模塊(例如,芯片)。
[0064]處理器1205能夠被連接到總線1235以在處理器1205、網絡連接1240以及服務器1200的其他部分之間提供通信。非易失性存儲器1215能夠為服務器1200提供持久性數據存儲。進一步地,圖形控制器1245能夠連接到顯示器1250。
[0065]每個服務器1200能夠包括包含諸如處理器、狀態(tài)機、ASIC、控制器和/或類似機器之類的控制電路的計算設備。每個服務器1200還能夠包括一個或多個VM (未示出),并且具有用于管理各VM的超級監(jiān)督器。如本文所用的那樣,不定冠詞“一”和/或“一個”能夠指示已命名對象中的一個或一個以上。因此,例如,“處理器”能夠包括一個處理器或一個以上的處理器,諸如并行處理布置。
[0066]控制電路能夠具有提供給定功能和/或執(zhí)行被存儲在非瞬態(tài)計算機可讀介質(例如,非瞬態(tài)計算機可讀介質1220)上的計算機可讀指令的結構。非瞬態(tài)計算機可讀介質1220可以是整體的,或者以有線或無線方式通信地耦合到計算設備。例如,非瞬態(tài)計算機可讀介質1220可以是內部存儲器、便攜式存儲器、便攜式盤、或位于另一計算資源內部(例如,使得計算機可讀指令能夠通過因特網下載)的存儲器。
[0067]非瞬態(tài)計算機可讀介質1220能夠具有其上存儲的由控制電路(例如,處理器)執(zhí)行以實現根據本公開的網絡代理的計算機可讀指令1255。例如,非瞬態(tài)計算機介質1220能夠具有用于實現網絡代理1260的計算機可讀指令1255。
[0068]如本文所用的非瞬態(tài)計算機可讀介質1220能夠包括易失性和/或非易失性存儲器。易失性存儲器能夠包括依靠電力來存儲信息的存儲器,諸如尤其是各種類型的動態(tài)隨機存取存儲器(“DRAM”)。非易失性存儲器能夠包括不依靠電力來存儲信息的存儲器。非易失性存儲器的示例能夠包括固態(tài)媒體,諸如尤其是閃速存儲器、EEPROM以及相變隨機存取存儲器(“PCRAM”)。非瞬態(tài)計算機可讀介質1220能夠包括光盤、數字視頻盤(“DVD”)、藍光(Blu-Ray)盤、緊致盤(“⑶”)、激光盤以及諸如磁帶驅動器、軟盤和硬盤驅動器之類的磁性媒體、諸如閃速存儲器、EEPROM、PCRAM之類的固態(tài)媒體,以及任何其他類型的計算機可讀媒體。
[0069]應領會的是,所公開的實施例的先前描述被提供來使得本領域的任何技術人員能夠作出或者使用本公開。對這些實施例的各種修改對于本領域的技術人員而言將是容易地顯而易見的,并且本文中所定義的通用原理可以適用于其他實施例而不背離本公開的精神或范圍。因此,本公開不旨在限于本文中所示出的實施例,而是將符合與本文中所公開的原理和新穎特征一致的最廣范圍。例如,應領會的是,本公開不限于特定的計算系統(tǒng)配置,諸如服務器1200。
[0070]本領域的技術人員將進一步領會,與本文中所公開的實施例相關地描述的各種說明性模塊和步驟可以被實現為電子硬件、計算機軟件或兩者的組合。例如,網絡代理200可以使用軟件模塊、硬件模塊或部件、或軟件和硬件模塊或部件的組合來加以實現。因此,在一個實施例中,圖2的各模塊中的一個或多個可以包括硬件模塊或部件。在另一實施例中,圖2的各模塊中的一個或多個可以包括可由處理器執(zhí)行的、在計算機可讀存儲介質上存儲的軟件代碼。
[0071]為了清楚地舉例說明硬件和軟件的這種互換性,已經總體根據它們的功能在上文中描述了各種說明性部件、塊、模塊和步驟。這種功能被實現為硬件還是軟件取決于特定應用和強加于總體系統(tǒng)上的設計約束。本領域的技術人員可以針對每個特定應用以變化的方式實現所描述的功能,但是這種實施方式決定不應該被解釋為引起背離本公開的范圍。
【權利要求】
1.一種用于虛擬化數據中心的可擴縮多租戶網絡架構,所述網絡架構包括: 包括連接到多個交換機的多個服務器的網絡,所述多個服務器托管用于多個租戶的多個虛擬接口; 連接到所述網絡的配置儲存庫;以及 在所述多個服務器中的每個服務器中的網絡代理,用來封裝分組以用于跨越所述網絡從源虛擬接口傳輸到用于所述多個租戶中的一個租戶的所述多個虛擬接口中的目的虛擬接口,采用標識并且定位所述目的虛擬接口的信息來封裝所述分組,所述信息由連接到所述源虛擬接口和所述目的虛擬接口的交換機來解釋。
2.根據權利要求1所述的可擴縮多租戶網絡架構,其中所述多個虛擬接口是在由所述多個服務器托管的多個虛擬機中。
3.根據權利要求1所述的可擴縮多租戶網絡架構,其中所述配置儲存庫存儲所述多個交換機中的每對交換機的VLAN信息。
4.根據權利要求1所述的可擴縮多租戶網絡架構,其中所述網絡代理包括配置模塊以: 基于連接到所述每個服務器的交換機的端口號來將IP地址分配給所述每個服務器;以及` 基于與所述多個虛擬接口相關聯(lián)的租戶的租戶ID和連接到所述每個服務器的所述交換機的所述端口號來使多個虛擬接口與IP地址相關聯(lián)。
5.根據權利要求1所述的可擴縮多租戶網絡架構,其中所述網絡代理包括網絡地址解析模塊以收集和保持跨越所述網絡傳送分組所需的信息,所述信息被存儲在一個或多個網絡地址表中。
6.根據權利要求5所述的可擴縮多租戶網絡架構,其中所述一個或多個網絡地址表包括: 第一網絡地址表,其存儲租戶ID、IP地址以及每個虛擬接口的MAC地址;以及第二網絡地址表,其通過所述租戶ID、與所述每個虛擬接口相關聯(lián)的MAC地址空間ID、以及所述每個虛擬接口的所述MAC地址來唯一地標識每個虛擬接口,并且采用連接到所述每個虛擬接口的交換機的端口號和MAC地址來定位所述網絡中的每個虛擬接口。
7.根據權利要求6所述的可擴縮多租戶網絡架構,其中所述網絡代理包括分組轉發(fā)模塊以: 用租戶ID、目的MAC地址空間ID以及目的MAC地址來標識所述目的虛擬接口 ; 在所述第二網絡地址表中查找所述目的虛擬接口的網絡位置信息; 選擇用于將分組轉發(fā)到所述目的虛擬接口的VLAN路徑,所述VLAN路徑在所述配置儲存庫中得以規(guī)定;以及 在封裝所述分組之后將所述分組轉發(fā)到所述目的虛擬接口。
8.根據權利要求7所述的可擴縮多租戶網絡架構,其中所述網絡代理包括分組封裝模塊以采用包含所述目的虛擬接口的所述IP地址的IP報頭以及采用以太網報頭來封裝所述分組,所述以太網報頭包含連接到源虛擬接口的源交換機的MAC地址、連接到所述目的虛擬接口的目的交換機的MAC地址、以及規(guī)定所述源交換機與所述目的交換機之間的所述VLAN路徑的VLAN標記。
9.根據權利要求8所述的可擴縮多租戶網絡架構,其中所述目的交換機解封裝所述以太網報頭并且插入這樣的報頭:其規(guī)定所述目的交換機的所述MAC地址作為源MAC地址、并且托管所述目的虛擬接口的服務器的MAC地址作為目的MAC地址。
10.根據權利要求9所述的可擴縮多租戶網絡架構,其中托管所述目的虛擬接口的所述服務器中的所述網絡代理包括分組接收模塊,以從所述目的交換機接收分組、解封裝所述分組,并且將所述分組遞送到所述目的虛擬接口。
11.根據權利要求1所述的可擴縮多租戶網絡架構,其中所述多個租戶中的每個租戶形成一個或多個MAC地址空間。
12.一種用于在虛擬化數據中心中的可擴縮多租戶網絡中使用的網絡代理,所述網絡代理包括: 配置模塊,用來配置托管所述網絡代理的服務器和所述服務器中的多個虛擬接口,每個虛擬接口與多個租戶中的一個租戶相關聯(lián); 網絡地址解析模塊,用來收集和保持跨越所述網絡傳送分組所需的信息;以及 分組封裝模塊,用來在每個分組的傳輸之前,采用基于與所述目的虛擬接口和連接到所述目的虛擬接口的交換機相關聯(lián)的所述租戶來唯一地標識并且定位所述網絡中的目的虛擬接口的信息來封裝每個分組。
13.根據權利要求12所述的網絡代理,其中所述配置模塊包括可執(zhí)行指令以: 基于連接到所述服務器的交換機的端口號來將IP地址分配給所述服務器;以及 基于與所述多個虛擬接口相關聯(lián)的租戶的租戶ID和連接到所述每個服務器的所述交換機的所述端口號來使所述多個虛擬接口與IP地址相關聯(lián)。
14.根據權利要求12所述的網絡代理,其中當虛擬接口在所述服務器中啟動時,所述網絡地址解析模塊將消息廣播到所述網絡中的所有網絡代理。
15.根據權利要求14所述的網絡代理,其中所述消息包括唯一地標識并且定位所述網絡中的所述虛擬接口的信息。
16.根據權利要求15所述的網絡代理,其中所述信息包括與所述虛擬接口相關聯(lián)的租戶的租戶ID、與所述虛擬接口相關聯(lián)的MAC地址空間ID、所述虛擬接口的MAC地址、以及連接到所述虛擬接口的交換機的端口號和MAC地址。
17.根據權利要求12所述的網絡代理,其中所述網絡地址解析模塊存儲: 第一網絡地址表,其存儲租戶ID、IP地址以及每個虛擬接口的MAC地址;以及 第二網絡地址表,其通過所述租戶ID、與所述每個虛擬接口相關聯(lián)的MAC地址空間ID以及所述每個虛擬接口的所述MAC地址來唯一地標識每個虛擬接口,并且用連接到所述每個虛擬接口的交換機的MAC地址和端口號來定位所述網絡中的每個虛擬接口。
18.根據權利要求12所述的網絡代理,其中所述分組封裝模塊用包含所述目的虛擬接口的IP地址的IP報頭、以及用以太網報頭來封裝每個分組,所述以太網報頭包含連接到源虛擬接口的源交換機的MAC地址、連接到所述目的虛擬接口的目的交換機的MAC地址、以及規(guī)定所述源交換機與所述目的交換機之間的VLAN路徑的VLAN標記。
19.一種非瞬態(tài)計算機可讀存儲介質,其包括可執(zhí)行指令以: 采用 租戶ID、源MAC地址空間ID以及源MAC地址來標識虛擬化數據中心中的可擴縮多租戶網絡中的源虛擬接口;采用所述租戶ID、目的MAC地址空間ID以及目的MAC地址來標識所述網絡中的目的虛擬接口 ; 在網絡地址表中查找所述目的虛擬接口的網絡位置信息;以及用標識并且定位所述目的虛擬接口的信息來封裝所述分組以用于跨越所述網絡傳輸,所述信息由所述網絡中的連接到所述源虛擬接口和所述目的虛擬接口的邊緣交換機來解釋。
20.根據權利要求19所述的非瞬態(tài)計算機可讀存儲介質,其中所述網絡地址表被存儲在所述網絡中的多個服務器中。
【文檔編號】H04L29/08GK103563329SQ201180071448
【公開日】2014年2月5日 申請日期:2011年6月7日 優(yōu)先權日:2011年6月7日
【發(fā)明者】J.穆迪貢達, P.亞拉甘杜拉, J.C.莫古爾, B.斯蒂克斯, A.費希爾 申請人:惠普發(fā)展公司,有限責任合伙企業(yè)