型的網(wǎng)絡(luò)設(shè)備并且可以被配置為托管一個(gè)或多個(gè)虛擬機(jī)(VM)(未示出)。虛擬機(jī)共享硬件資源而不互相干擾,因此使得多個(gè)操作系統(tǒng)和應(yīng)用能夠在單一計(jì)算機(jī)上同時(shí)執(zhí)行。虛擬機(jī)可以基于流量模式、硬件資源或其它準(zhǔn)則跨第2層或第3層邊界在服務(wù)器之間被移除。本文使用的術(shù)語‘主機(jī)’或‘端點(diǎn)’可以參照物理機(jī)(例如,服務(wù)器)或在物理機(jī)上操作的虛擬機(jī)。
[0029]主機(jī)10AU0B可以通過第3層(IP)地址和第2層(MAC)地址二者標(biāo)識(shí)。在第一實(shí)施例中,分布式數(shù)據(jù)庫被用于存儲(chǔ)L3和L2主機(jī)地址。數(shù)據(jù)庫包括主機(jī)L3地址到主機(jī)L2地址和位置標(biāo)識(shí)符(例如,與主機(jī)相關(guān)聯(lián)的邊緣設(shè)備的地址)的映射。分布式數(shù)據(jù)庫包括多個(gè)數(shù)據(jù)庫節(jié)點(diǎn)。在圖1中所示出的示例中,每個(gè)邊緣設(shè)備18A、18B都分別具有相關(guān)聯(lián)的數(shù)據(jù)庫節(jié)點(diǎn)32A、32B。數(shù)據(jù)庫節(jié)點(diǎn)A擁有MAC和IP地址以及它們針對(duì)站點(diǎn)A的定位器的詳細(xì)狀態(tài)。類似地,數(shù)據(jù)庫節(jié)點(diǎn)B擁有MAC和IP地址以及它們針對(duì)站點(diǎn)B的定位器的詳細(xì)狀態(tài)。該信息被維護(hù)在圖1中的映射表34(下面關(guān)于圖3B所描述的)。映射表34可以跨任意數(shù)量的節(jié)點(diǎn)被分布。
[0030]數(shù)據(jù)庫節(jié)點(diǎn)32A、32B例如可以是服務(wù)器、交換機(jī)、路由器或任何其它網(wǎng)絡(luò)設(shè)備。數(shù)據(jù)庫節(jié)點(diǎn)32A、32B可從核心網(wǎng)14 (例如,位于核心網(wǎng)內(nèi)或相對(duì)核心網(wǎng)遠(yuǎn)程地布置并且與核心網(wǎng)通信)訪問。數(shù)據(jù)庫節(jié)點(diǎn)32A、32B還互相通信(例如,直接通信或經(jīng)由任意數(shù)量的節(jié)點(diǎn)或網(wǎng)絡(luò)進(jìn)行通信)。
[0031]數(shù)據(jù)庫還可以包括被存儲(chǔ)在邊緣設(shè)備處的信息,其是數(shù)據(jù)庫樹的葉子。例如,數(shù)據(jù)庫節(jié)點(diǎn)32A、32B可以包含被映射到位置標(biāo)識(shí)符的主機(jī)第3層地址,具有被存儲(chǔ)在邊緣設(shè)備處的MAC地址。在此示例中數(shù)據(jù)庫在數(shù)據(jù)庫節(jié)點(diǎn)和邊緣設(shè)備上被分布。
[0032]應(yīng)該理解的是上述圖1中所示出的網(wǎng)絡(luò)僅是示例并且在不脫離實(shí)施例的范圍的情況下,實(shí)施例可以在具有不同網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)和網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)中被實(shí)現(xiàn)。
[0033]圖2示出了可以被用于實(shí)現(xiàn)本文描述的實(shí)施例的網(wǎng)絡(luò)設(shè)備40 (例如,圖1中的邊緣設(shè)備18A、18B、數(shù)據(jù)庫節(jié)點(diǎn)32A、32B)的示例。在一個(gè)實(shí)施例中,網(wǎng)絡(luò)設(shè)備40是可以在硬件、軟件或任何其組合中被實(shí)現(xiàn)的可編程機(jī)器。網(wǎng)絡(luò)設(shè)備40包括一個(gè)或多個(gè)處理器42、存儲(chǔ)器44和網(wǎng)絡(luò)接口 46。
[0034]存儲(chǔ)器44可以是易失性存儲(chǔ)器或非易失性存儲(chǔ)器,其存儲(chǔ)各種應(yīng)用、操作系統(tǒng)、模塊和數(shù)據(jù)用于由處理器42執(zhí)行和使用。例如,存儲(chǔ)器44可以包括映射表48 (例如,邊緣設(shè)備18A、18B處的映射表30或數(shù)據(jù)庫節(jié)點(diǎn)32A、32B處的映射表34)。
[0035]邏輯可以被編碼在一個(gè)或多個(gè)有形的介質(zhì)中,以供處理器42執(zhí)行。例如,處理器42可以執(zhí)行被存儲(chǔ)在諸如存儲(chǔ)器44之類的計(jì)算機(jī)可讀介質(zhì)中的代碼。計(jì)算機(jī)可讀介質(zhì)例如可以是電子的(例如,RAM (隨機(jī)存取存儲(chǔ)器)、ROM (只讀存儲(chǔ)器)、EPROM)、EPROM (可擦除可編程只讀存儲(chǔ)器))、磁的、光的(例如,CD、DVD)、電磁的、半導(dǎo)體技術(shù)的、或任何其它適當(dāng)?shù)慕橘|(zhì)。
[0036]網(wǎng)絡(luò)接口 46可以包括任意數(shù)量的接口(線卡、端口),以接收數(shù)據(jù)或向其它設(shè)備發(fā)送數(shù)據(jù)。網(wǎng)絡(luò)接口 46例如可以包括用于連接到計(jì)算機(jī)或網(wǎng)絡(luò)的以太網(wǎng)接口。
[0037]應(yīng)該理解的是上述圖2中示出的網(wǎng)絡(luò)設(shè)備40僅是示例并且可以使用網(wǎng)絡(luò)設(shè)備的不同配置。例如,網(wǎng)絡(luò)設(shè)備40還可以包括可操作以促進(jìn)本文中描述的功能的硬件、軟件、算法、處理器、設(shè)備、組件或元件的任何適當(dāng)?shù)慕M合。
[0038]可擴(kuò)展的第2層覆蓋服務(wù)
[0039]再次參照?qǐng)D1中所示出的網(wǎng)絡(luò),網(wǎng)絡(luò)覆蓋(覆蓋網(wǎng)絡(luò)15)由通過主干網(wǎng)底層(核心網(wǎng)14)互相連接并且將兩個(gè)地址空間映射到彼此的一系列邊緣設(shè)備(虛擬化通道端點(diǎn)-VTEP) 18AU8B定義;兩個(gè)地址空間即端點(diǎn)地址空間和主干網(wǎng)地址空間?;诹髁苛鞯姆较颍吘壴O(shè)備18A、18B起封裝或解封裝設(shè)備的作用。當(dāng)邊緣設(shè)備封裝時(shí),它將接收的流量的端點(diǎn)目的地地址映射到主干網(wǎng)中的站點(diǎn)地址,該站點(diǎn)地址標(biāo)識(shí)解封裝邊緣設(shè)備。具有該映射知識(shí),邊緣設(shè)備18A、18B將報(bào)頭添加到流量,被用于封裝流量并且跨主干網(wǎng)14將流量轉(zhuǎn)發(fā)到目的地的位置(解封裝邊緣設(shè)備)。
[0040]第2層覆蓋將端點(diǎn)的L2地址(在以太網(wǎng)中這些將是MAC地址)映射到標(biāo)識(shí)主干中可以駐留端點(diǎn)的不同位置的地址。位置地址可以是IP主干中的IP地址、或可以由MPLS網(wǎng)絡(luò)中的標(biāo)簽交換路徑(LSP)和標(biāo)簽交換路由器(LSR)定義、或可以另外在其它類型的主干中定義。
[0041]在L2覆蓋中,數(shù)據(jù)庫被用于維護(hù)L2端點(diǎn)地址到主干位置地址的映射。該數(shù)據(jù)庫是不可以被聚集或概述的平面結(jié)構(gòu),不可以被聚集或概述這是由于L2地址族(以太網(wǎng)中這是MAC地址族)的本質(zhì),并且因此影響可擴(kuò)展性。
[0042]如上所指出的,網(wǎng)絡(luò)端點(diǎn)可以通過L3 (IP)地址和L2 (MAC)地址二者標(biāo)識(shí)。如果L3和L2端點(diǎn)地址都被包括在包含端點(diǎn)和位置之間的映射的數(shù)據(jù)庫中,聚集性可以被帶到L2覆蓋服務(wù)。L3端點(diǎn)地址的包含允許數(shù)據(jù)庫以能夠享受聚集性的好處的方式被構(gòu)成并且因此允許狀態(tài)按有序的層次結(jié)構(gòu)分布。如下所述,L3信息被用于導(dǎo)航數(shù)據(jù)庫34和它的有序的層次結(jié)構(gòu)并且將跨分布式數(shù)據(jù)庫的節(jié)點(diǎn)所共享的信息最小化(進(jìn)行概述)。僅L3端點(diǎn)信息被概述并且跨數(shù)據(jù)庫節(jié)點(diǎn)32A、32B被共享。L2端點(diǎn)信息被維護(hù)為數(shù)據(jù)的葉節(jié)點(diǎn)內(nèi)并且不向任何其它數(shù)據(jù)庫節(jié)點(diǎn)公開。因此,只有可以被聚集并且被概述的信息才能跨數(shù)據(jù)庫節(jié)點(diǎn)被共享。未概述的L2信息被保持對(duì)每個(gè)數(shù)據(jù)庫節(jié)點(diǎn)是本地的并且因此是分布的和可擴(kuò)展的。
[0043]第一實(shí)施例通過將L2目的地的查找轉(zhuǎn)移到L3數(shù)據(jù)庫中的L3密匙來允許使用基于L3的控制平面的L2覆蓋服務(wù)。查找的結(jié)果是L2目的地端點(diǎn)的位置。解封裝設(shè)備(邊緣設(shè)備18A、18B)使用獲得的位置來封裝位置報(bào)頭中的L2幀并且提供必要的L2覆蓋服務(wù)。對(duì)由覆蓋提供的網(wǎng)絡(luò)模型或數(shù)據(jù)路徑不要求改變。邊緣設(shè)備(VTEP) 18A、18B繼續(xù)交換由端點(diǎn)10AU0B生成的流量。
[0044]在一個(gè)實(shí)施例中,系統(tǒng)使用基于需求的信息請(qǐng)求模型。這樣的基于需求的信息模型的一個(gè)示例是DNS(域名系統(tǒng)),其中當(dāng)必要的時(shí)候,映射被請(qǐng)求(并且在被請(qǐng)求之后被緩存起來)。通過使得地址空間的概述成為可能,可擴(kuò)展性還能應(yīng)用到基于“推送”的網(wǎng)絡(luò)數(shù)據(jù)庫(諸如BGP(邊界網(wǎng)關(guān)協(xié)議)或ISIS(中間系統(tǒng)到中間系統(tǒng)))。
[0045]圖3A和圖3B分別示出了邊緣設(shè)備18A、18B和數(shù)據(jù)庫節(jié)點(diǎn)32A、32B處的映射表。應(yīng)該理解的是這些表僅是示例,并且在不脫離實(shí)施例的范圍的情況下,可以使用其它格式、數(shù)據(jù)或數(shù)據(jù)結(jié)構(gòu)。
[0046]圖3A中所示出的覆蓋映射表30被維護(hù)在邊緣設(shè)備處。第一列包括用于遠(yuǎn)程主機(jī)的第2層地址。第二列包括相應(yīng)的覆蓋網(wǎng)絡(luò)地址。覆蓋網(wǎng)絡(luò)地址是主干位置地址(本文被稱為位置標(biāo)識(shí)符)。如上所述,位置標(biāo)識(shí)符可以是IP地址或可以由MPLS網(wǎng)絡(luò)中的標(biāo)簽交換路徑(LSP)和標(biāo)簽交換路由器(LSR)定義、或可以另外在其它類型的主干中定義。在圖3A中所示出的示例中,覆蓋網(wǎng)絡(luò)地址是位于與遠(yuǎn)程主機(jī)相同的網(wǎng)絡(luò)站點(diǎn)中的遠(yuǎn)程邊緣設(shè)備的IP地址。
[0047]主機(jī)L2地址作為密匙被用于搜索表30。該表提供邊緣設(shè)備在轉(zhuǎn)發(fā)在其接口所接收的分組時(shí)使用的信息。圖3A中所示出的示例中的第一條目包括用于主機(jī)10B(MAC HB)的第2層(MAC)地址和相應(yīng)的用于邊緣設(shè)備18B(IP EDB)的IP地址。基于表30中的查找,在邊緣設(shè)備18A處接收的并且目的地為主機(jī)1B (MAC HB)的分組被封裝在具有IP報(bào)頭(具有邊緣設(shè)備18B(IP EDB)的目的地地址)的IP分組中。該分組在核心網(wǎng)14上被發(fā)送到邊緣設(shè)備18B。在邊緣設(shè)備18B處被接收并且目的地為主機(jī)1B的分組被剖離了它的覆蓋IP報(bào)頭并且被轉(zhuǎn)發(fā)到主機(jī)10B。當(dāng)數(shù)據(jù)庫節(jié)點(diǎn)32A、32B向應(yīng)映射請(qǐng)求時(shí),條目可以被存儲(chǔ)在表30中。
[0048]圖3B示出了被存儲(chǔ)在分布式數(shù)據(jù)庫的數(shù)據(jù)庫節(jié)點(diǎn)處的映射表34的示例。第一列包括主機(jī)(端點(diǎn))L3地址。在一個(gè)示例中,第3層主機(jī)地址是被稱為端點(diǎn)標(biāo)識(shí)符(EID)的IP地址。第二列包括主機(jī)第2層地址和主干位置地址(位置標(biāo)識(shí)符)。圖3B的示例中所示出的條目包括被映射到主機(jī)1B