分案申請(qǐng)說明
本申請(qǐng)是申請(qǐng)日為2013年6月5日、申請(qǐng)?zhí)枮?01380041497.5、發(fā)明名稱為“針對(duì)虛擬網(wǎng)絡(luò)分組流的物理路徑確定”的中國發(fā)明專利申請(qǐng)的分案申請(qǐng)。
相關(guān)申請(qǐng)的交叉引用
本申請(qǐng)要求2012年11月23日提交的美國臨時(shí)申請(qǐng)no.61/729,474;2012年11月7日提交的美國臨時(shí)申請(qǐng)no.61/723,684;2012年11月7日提交的美國臨時(shí)申請(qǐng)no.61/723,685;2012年11月5日提交的美國臨時(shí)申請(qǐng)no.61/722,696;2012年11月2日提交的美國臨時(shí)申請(qǐng)no.61/721,979;2012年11月2日提交的美國臨時(shí)申請(qǐng)no.61/721,994;2012年10月25日提交的美國臨時(shí)申請(qǐng)no.61/718,633;2012年6月6日提交的美國臨時(shí)申請(qǐng)no.61/656,468;2012年6月6日提交的美國臨時(shí)申請(qǐng)no.61/656,469;以及2012年6月6日提交的美國臨時(shí)申請(qǐng)no.61/656,471的權(quán)益;這些申請(qǐng)中的每個(gè)申請(qǐng)的整體內(nèi)容通過引用方式并入于此。
本發(fā)明涉及計(jì)算機(jī)網(wǎng)絡(luò),并且更具體地涉及虛擬網(wǎng)絡(luò)。
背景技術(shù):
在典型的云數(shù)據(jù)中心環(huán)境中,存在大集合的互連服務(wù)器,服務(wù)器提供計(jì)算和/或存儲(chǔ)容量以運(yùn)行各種應(yīng)用。例如,數(shù)據(jù)中心可以包括托管用于訂戶(即,數(shù)據(jù)中心的客戶)的應(yīng)用和服務(wù)的設(shè)施。例如,數(shù)據(jù)中心可以托管所有的基礎(chǔ)結(jié)構(gòu)設(shè)備,諸如聯(lián)網(wǎng)和存儲(chǔ)系統(tǒng)、冗余電源和環(huán)境控制。在典型的數(shù)據(jù)中心中,存儲(chǔ)系統(tǒng)和應(yīng)用服務(wù)器的集群經(jīng)由由一個(gè)或多個(gè)層級(jí)的物理網(wǎng)絡(luò)交換機(jī)和路由器提供的高速交換機(jī)結(jié)構(gòu)互連。更復(fù)雜的數(shù)據(jù)中心通過位于各種物理托管設(shè)施中的訂戶支持設(shè)備提供遍布世界的基礎(chǔ)結(jié)構(gòu)。
技術(shù)實(shí)現(xiàn)要素:
總體上,技術(shù)被描述用于配制和管理虛擬網(wǎng)絡(luò)。例如,描述了配制和管理由多個(gè)交換機(jī)形成的物理網(wǎng)絡(luò)內(nèi)的重疊網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器。多個(gè)服務(wù)器通過交換機(jī)結(jié)構(gòu)互連,并且每個(gè)服務(wù)器提供執(zhí)行經(jīng)由重疊網(wǎng)絡(luò)進(jìn)行通信的一個(gè)或多個(gè)虛擬機(jī)的操作環(huán)境。服務(wù)器包括使重疊網(wǎng)絡(luò)作為虛擬網(wǎng)絡(luò)延伸到虛擬機(jī)的操作環(huán)境的一組虛擬交換機(jī)??刂破骺梢灾甘痉?wù)器和虛擬交換機(jī)執(zhí)行各種操作,諸如確定由網(wǎng)絡(luò)分組流的分組所采取的物理網(wǎng)絡(luò)路徑、確定通過網(wǎng)絡(luò)的延遲、由于網(wǎng)絡(luò)事件重新路由虛擬網(wǎng)絡(luò)中的流量、復(fù)制用于多播的流量、提供多租戶服務(wù)以支持多個(gè)虛擬網(wǎng)絡(luò)、監(jiān)控虛擬網(wǎng)絡(luò)內(nèi)的流量特性和將虛擬網(wǎng)絡(luò)內(nèi)的流量特性記入日志、以及其它操作。
還描述了用于使用分布式虛擬網(wǎng)絡(luò)控制器便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的技術(shù)。系統(tǒng)可以包括被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第一集的操作的第一控制器節(jié)點(diǎn)設(shè)備。系統(tǒng)可以進(jìn)一步包括被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第二集的操作的第二控制器節(jié)點(diǎn)設(shè)備。第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備可以使用對(duì)等協(xié)議對(duì)等,并且根據(jù)對(duì)等協(xié)議可以是對(duì)等體。系統(tǒng)可以包括與第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備中的一個(gè)或多個(gè)關(guān)聯(lián)的硬件(和軟件)。
在一些示例中,系統(tǒng)包括實(shí)現(xiàn)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的元件的第一集和元件的第二集。系統(tǒng)還包括各自通過交換機(jī)結(jié)構(gòu)連接到網(wǎng)絡(luò)的第一服務(wù)器設(shè)備和第二服務(wù)器設(shè)備。系統(tǒng)還包括被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第一集的操作的第一控制器節(jié)點(diǎn)設(shè)備,其中元件的第一集包括第一服務(wù)器設(shè)備。系統(tǒng)進(jìn)一步包括被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第二集的操作的第二控制器節(jié)點(diǎn)設(shè)備,其中元件的第二集包括第二服務(wù)器設(shè)備,其中第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備根據(jù)對(duì)等協(xié)議是對(duì)等體,第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備通過對(duì)等協(xié)議交換涉及元件的第一集和元件的第二集的操作的信息。
在一些示例中,一種用于便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的方法(一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)包括各自通過交換機(jī)結(jié)構(gòu)連接到網(wǎng)絡(luò)的第一服務(wù)器設(shè)備和第二服務(wù)器設(shè)備)包括使用第一控制器節(jié)點(diǎn)設(shè)備控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第一集的操作,其中元件的第一集包括第一服務(wù)器設(shè)備。方法還包括使用第二控制器節(jié)點(diǎn)設(shè)備控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第二集的操作,其中元件的第二集包括第二服務(wù)器設(shè)備。方法進(jìn)一步包括使用對(duì)等協(xié)議使第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備對(duì)等,以在第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備之間,交換涉及元件的第一集和元件的第二集的操作的信息。
在一些示例中,一種虛擬網(wǎng)絡(luò)控制器節(jié)點(diǎn)設(shè)備包括一個(gè)或多個(gè)處理器以及由處理器執(zhí)行的控制平面虛擬機(jī),控制平面虛擬機(jī)用于使用可擴(kuò)展消息傳遞和到場協(xié)議(xmpp)與多個(gè)虛擬網(wǎng)絡(luò)交換機(jī)進(jìn)行通信。虛擬網(wǎng)絡(luò)控制器節(jié)點(diǎn)設(shè)備還包括用于存儲(chǔ)和管理包括針對(duì)虛擬網(wǎng)絡(luò)交換機(jī)的配置信息的配置數(shù)據(jù)庫的配置虛擬機(jī)。虛擬網(wǎng)絡(luò)控制器節(jié)點(diǎn)設(shè)備還包括分析虛擬機(jī),用于存儲(chǔ)和管理包括針對(duì)虛擬網(wǎng)絡(luò)交換機(jī)的日志記錄信息的分析數(shù)據(jù)庫,其中配置虛擬機(jī)和分析虛擬機(jī)使用元數(shù)據(jù)接入點(diǎn)接口協(xié)議與控制平面虛擬機(jī)進(jìn)行通信,其中控制平面虛擬機(jī)通過使用xmpp向虛擬網(wǎng)絡(luò)交換機(jī)發(fā)送路由數(shù)據(jù)和配置信息來配置虛擬網(wǎng)絡(luò)交換機(jī),以及其中控制平面虛擬機(jī)使用xmpp接收針對(duì)虛擬網(wǎng)絡(luò)交換機(jī)的日志記錄信息并且將日志記錄信息路由到分析虛擬機(jī)以存儲(chǔ)到分析數(shù)據(jù)庫。
在一些示例中,一種網(wǎng)絡(luò)系統(tǒng)包括交換機(jī)結(jié)構(gòu)(包括多個(gè)交換機(jī))以及具有依照對(duì)等協(xié)議與彼此進(jìn)行對(duì)等通信的一組控制器節(jié)點(diǎn)設(shè)備的分布式控制器,其中每個(gè)控制器節(jié)點(diǎn)設(shè)備配置和管理多個(gè)交換機(jī)內(nèi)的重疊網(wǎng)絡(luò)。網(wǎng)絡(luò)系統(tǒng)還包括通過交換機(jī)結(jié)構(gòu)互連的多個(gè)服務(wù)器,其中每個(gè)服務(wù)器包括執(zhí)行經(jīng)由重疊網(wǎng)絡(luò)進(jìn)行通信的一個(gè)或多個(gè)虛擬機(jī)的操作環(huán)境,以及其中服務(wù)器包括使重疊網(wǎng)絡(luò)作為虛擬網(wǎng)絡(luò)延伸到虛擬機(jī)的操作環(huán)境的一組虛擬交換機(jī)。
另外,技術(shù)被描述用于確定由網(wǎng)絡(luò)分組流的分組所采取的、諸如在本文中描述的虛擬網(wǎng)絡(luò)內(nèi)的物理網(wǎng)絡(luò)路徑。可以應(yīng)用技術(shù)以確定或者“跟蹤”虛擬化網(wǎng)絡(luò)域中的物理網(wǎng)絡(luò)路徑。在虛擬化或重疊網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)的邊緣從物理網(wǎng)絡(luò)元件(例如,交換機(jī)或路由器)延伸到各自由物理服務(wù)器的管理程序或主機(jī)操作系統(tǒng)執(zhí)行的軟件交換機(jī)(即,虛擬交換機(jī))。在這樣的環(huán)境中,物理服務(wù)器可以執(zhí)行通過使用虛擬網(wǎng)絡(luò)交換層三(l3或“網(wǎng)絡(luò)”)分組而進(jìn)行通信的應(yīng)用實(shí)例,虛擬網(wǎng)絡(luò)由一個(gè)或多個(gè)軟件交換機(jī)實(shí)現(xiàn)并且正交于物理網(wǎng)絡(luò)和對(duì)應(yīng)物理尋址方案。虛擬網(wǎng)絡(luò)元件(其包括虛擬交換機(jī)和物理網(wǎng)絡(luò)元件兩者)將由應(yīng)用的實(shí)例生成或消耗的分組封裝在隧道報(bào)頭中的虛擬網(wǎng)絡(luò)域中,隧道報(bào)頭包括符合物理網(wǎng)絡(luò)尋址方案的地址。據(jù)此,并且在下文中,由應(yīng)用實(shí)例生成或消耗的分組可以被稱為“內(nèi)部分組”,而包括封裝在添加隧道報(bào)頭內(nèi)的內(nèi)部分組的物理網(wǎng)絡(luò)分組可以被稱為“外部分組”。隧道報(bào)頭允許物理網(wǎng)絡(luò)使內(nèi)部分組朝向目的地虛擬交換機(jī)隧穿,以遞送到目的地應(yīng)用實(shí)例。在一些情況下,隧道報(bào)頭可以包括針對(duì)諸如傳輸層(例如,傳輸控制協(xié)議(tcp)或用戶數(shù)據(jù)報(bào)協(xié)議(udp)報(bào)頭)、網(wǎng)絡(luò)層和/或隧道層之類的多個(gè)層的子報(bào)頭。
在一些示例中,虛擬網(wǎng)絡(luò)元件接收確定由網(wǎng)絡(luò)分組流的分組所采取的物理網(wǎng)絡(luò)路徑的請(qǐng)求。針對(duì)對(duì)應(yīng)于特定分組流的分組,虛擬網(wǎng)絡(luò)元件生成具有與分組流的分組完全相同的一個(gè)或多個(gè)隧道報(bào)頭字段的第一流跟蹤分組。結(jié)果,第一流跟蹤分組將遍歷與分組流的分組完全相同的物理網(wǎng)絡(luò)路徑。為了確定沿著由分組流采取的物理網(wǎng)絡(luò)路徑的第一下一跳,虛擬網(wǎng)絡(luò)元件將針對(duì)流跟蹤分組的生存時(shí)間(ttl)值設(shè)置成1,然后根據(jù)虛擬網(wǎng)絡(luò)元件網(wǎng)絡(luò)轉(zhuǎn)發(fā)表將第一流跟蹤分組轉(zhuǎn)發(fā)到第一下一跳。因?yàn)獒槍?duì)第一流跟蹤分組的ttl值被設(shè)置成1,第一下一跳拋棄第一流跟蹤分組,并且返回針對(duì)第一流跟蹤分組的超時(shí)消息,諸如因特網(wǎng)控制消息協(xié)議(icmp)超時(shí)消息。超時(shí)消息包括第一下一跳的網(wǎng)絡(luò)地址。虛擬網(wǎng)絡(luò)元件在連續(xù)流跟蹤分組上迭代ttl值,其它方面類似于第一流跟蹤分組,并且根據(jù)虛擬網(wǎng)絡(luò)元件轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)連續(xù)流跟蹤分組。因此,沿著針對(duì)分組流的物理路徑的連續(xù)下一跳各自接收具有設(shè)置成1的ttl值的流跟蹤分組,并且各自返回超時(shí)消息。虛擬網(wǎng)絡(luò)元件可以使用從沿著物理路徑的物理下一跳返回的返回超時(shí)消息,生成物理下一跳的列表,虛擬網(wǎng)絡(luò)元件可以將該列表返回到已經(jīng)請(qǐng)求物理網(wǎng)絡(luò)路徑的設(shè)備。
因?yàn)榱鞲櫡纸M是跟蹤分組并且可能不包括用于應(yīng)用的應(yīng)用數(shù)據(jù),虛擬網(wǎng)絡(luò)元件可以在一些實(shí)例中將特殊的流跟蹤分組指示符添加到流跟蹤分組的隧道報(bào)頭的字段。隧道終端虛擬網(wǎng)絡(luò)元件或者“隧道端點(diǎn)”通常解封裝接收的隧道分組流的外部分組以移除外部報(bào)頭,并且朝向應(yīng)用轉(zhuǎn)發(fā)得到的內(nèi)部分組。流跟蹤分組指示符向隧道端點(diǎn)指示,接收分組是流跟蹤分組并且應(yīng)當(dāng)被拋棄而非轉(zhuǎn)發(fā)。因此,隧道端點(diǎn)標(biāo)識(shí)包括流跟蹤分組指示符的分組流分組并且拋棄該分組。在一些實(shí)例中,隧道端點(diǎn)可能先前已經(jīng)接收了針對(duì)分組流的先行流跟蹤分組,針對(duì)該先行流跟蹤分組,隧道端點(diǎn)向發(fā)出虛擬網(wǎng)絡(luò)元件返回超時(shí)消息。在一些示例中,在接收到流跟蹤分組的同時(shí),隧道端點(diǎn)可以向發(fā)出虛擬網(wǎng)絡(luò)元件返回icmp回應(yīng)答復(fù)消息或其它確認(rèn)消息,以便確認(rèn)流跟蹤分組在隧道終端處的接收。
本文中描述的技術(shù)可以提供一個(gè)或多個(gè)優(yōu)點(diǎn)。例如,技術(shù)可以允許確定分組流遍歷虛擬化網(wǎng)絡(luò)域的物理網(wǎng)絡(luò)路徑。使用所述技術(shù)確定針對(duì)分組流的物理網(wǎng)絡(luò)路徑還可以克服確定物理網(wǎng)絡(luò)路徑通常使用的網(wǎng)絡(luò)跟蹤路由工具的某些限制。在一些情況下,等價(jià)的多個(gè)路徑存在于虛擬網(wǎng)絡(luò)元件和目的地之間。虛擬網(wǎng)絡(luò)元件可以根據(jù)分組流分組報(bào)頭的特殊性將具有相同源和目的地的分組流分配到不同等價(jià)路徑。相比于跟蹤路由工具(其可以產(chǎn)生icmp回應(yīng)請(qǐng)求消息,icmp回應(yīng)請(qǐng)求消息形成由虛擬網(wǎng)絡(luò)元件分配給多個(gè)路徑中的不同路徑的分組流),技術(shù)可以確保在多路徑環(huán)境中由流跟蹤分組所采取的路徑匹配由對(duì)應(yīng)分組流所采取的物理網(wǎng)絡(luò)路徑。
在一個(gè)方面中,用于確定分組流的物理網(wǎng)絡(luò)路徑的方法包括利用網(wǎng)絡(luò)設(shè)備生成具有遞增式增加的相應(yīng)生存時(shí)間(ttl)值的一個(gè)或多個(gè)流跟蹤分組。方法還包括利用網(wǎng)絡(luò)設(shè)備在用于物理網(wǎng)絡(luò)路徑的網(wǎng)絡(luò)設(shè)備的出站接口上發(fā)送流跟蹤分組。方法進(jìn)一步包括利用網(wǎng)絡(luò)設(shè)備接收針對(duì)流跟蹤分組的對(duì)應(yīng)超時(shí)消息,其中每個(gè)超時(shí)消息包括在物理網(wǎng)絡(luò)路徑上的網(wǎng)絡(luò)元件的源網(wǎng)絡(luò)地址。
在另一方面中,網(wǎng)絡(luò)設(shè)備包括一個(gè)或多個(gè)處理器以及由處理器執(zhí)行的用于將分組流的分組轉(zhuǎn)發(fā)到物理網(wǎng)絡(luò)路徑的交換機(jī)。網(wǎng)絡(luò)設(shè)備還包括流跟蹤模塊,以生成具有遞增式增加的相應(yīng)生存時(shí)間(ttl)值的一個(gè)或多個(gè)流跟蹤分組,其中交換機(jī)模塊在用于物理網(wǎng)絡(luò)路徑的網(wǎng)絡(luò)設(shè)備的出站接口上轉(zhuǎn)發(fā)流跟蹤分組,其中流跟蹤模塊接收針對(duì)流跟蹤分組的對(duì)應(yīng)超時(shí)消息,以及其中每個(gè)超時(shí)消息包括在物理網(wǎng)絡(luò)路徑上的網(wǎng)絡(luò)元件的源網(wǎng)絡(luò)地址。
在另一方面中,非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)包含指令。指令使得一個(gè)或多個(gè)可編程處理器利用網(wǎng)絡(luò)設(shè)備生成具有遞增式增加的相應(yīng)生存時(shí)間(ttl)值的一個(gè)或多個(gè)流跟蹤分組。指令進(jìn)一步使得可編程處理器利用網(wǎng)絡(luò)設(shè)備在用于物理網(wǎng)絡(luò)路徑的網(wǎng)絡(luò)設(shè)備的出站接口上發(fā)送流跟蹤分組。指令進(jìn)一步使得可編程處理器利用網(wǎng)絡(luò)設(shè)備接收針對(duì)流跟蹤分組的對(duì)應(yīng)超時(shí)消息,其中每個(gè)超時(shí)消息包括在物理網(wǎng)絡(luò)路徑上的網(wǎng)絡(luò)元件的源網(wǎng)絡(luò)地址。指令還使得可編程處理器利用網(wǎng)絡(luò)設(shè)備使用超時(shí)消息的源網(wǎng)絡(luò)地址確定物理網(wǎng)絡(luò)路徑。
在附圖和下面描述中闡述本發(fā)明的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。根據(jù)描述和附圖,并且根據(jù)權(quán)利要求,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將是容易理解的。
附圖說明
圖1是圖示具有其中可以實(shí)現(xiàn)本文中描述的技術(shù)示例的數(shù)據(jù)中心的示例網(wǎng)絡(luò)的框圖。
圖2a是進(jìn)一步詳細(xì)圖示圖1的數(shù)據(jù)中心的示例實(shí)施方式的框圖。
圖2b進(jìn)一步圖示圖1和圖2a的數(shù)據(jù)中心的示例細(xì)節(jié)以在不要求底層物理網(wǎng)絡(luò)中的多播支持情況下在虛擬重疊網(wǎng)絡(luò)內(nèi)提供多播服務(wù)。
圖3是圖示示例系統(tǒng)的另一框圖,該示例系統(tǒng)圖示在如本文中描述的底架交換機(jī)和架頂(tor)交換機(jī)內(nèi)的路由信息的示例配置。
圖4是圖示依照本公開的一個(gè)或多個(gè)實(shí)施例的用于在一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)內(nèi)實(shí)現(xiàn)本文中描述的技術(shù)的任何組合的虛擬網(wǎng)絡(luò)控制器的示例實(shí)施方式的框圖。
圖5是圖示依照本公開的一個(gè)或多個(gè)實(shí)施例的虛擬網(wǎng)絡(luò)控制器的示例實(shí)施方式的框圖。
圖6是圖示依照本公開中描述的技術(shù)的用于確定虛擬化網(wǎng)絡(luò)域中的物理網(wǎng)絡(luò)路徑的網(wǎng)絡(luò)元件操作的示例模式的流程圖。
圖7是圖示根據(jù)本公開的技術(shù)的網(wǎng)絡(luò)元件操作的示例模式的流程圖。
圖8是圖示根據(jù)本文中描述的技術(shù)生成的示例流跟蹤分組的字段的框圖。
圖9是圖示根據(jù)本文中描述的技術(shù)生成的示例流跟蹤分組的字段的框圖。
圖10是圖示依照本公開的一個(gè)或多個(gè)方面的示例計(jì)算設(shè)備的框圖。
圖11至圖12是圖示依照本公開的一個(gè)或多個(gè)實(shí)施例的網(wǎng)絡(luò)設(shè)備的示例操作的流程圖。
圖13是詳細(xì)圖示根據(jù)本文中描述的技術(shù)用于動(dòng)態(tài)地修改由數(shù)據(jù)中心元件生成的日志記錄信息的虛擬網(wǎng)絡(luò)控制器的示例部件的框圖。
圖14是圖示根據(jù)本文中描述的技術(shù)用于動(dòng)態(tài)地修改由數(shù)據(jù)中心元件或其它生成器生成的日志記錄信息的虛擬網(wǎng)絡(luò)控制器的操作的示例模式的流程圖。
圖15是圖示根據(jù)本公開中描述的技術(shù)的被配置為響應(yīng)于來自收集器的指導(dǎo)而動(dòng)態(tài)地修改日志記錄范圍的示例計(jì)算設(shè)備的框圖。
圖16是圖示根據(jù)本公開中描述的技術(shù)的由應(yīng)用響應(yīng)于來自收集器的指導(dǎo)而動(dòng)態(tài)地修改日志記錄范圍的操作的示例模式的流程圖。
圖17a是圖示包括依照本公開的技術(shù)進(jìn)行操作的網(wǎng)絡(luò)設(shè)備的系統(tǒng)的框圖。
圖17b是圖示依照一個(gè)示例實(shí)施例的示例隧道封裝的框圖。
圖17c是圖示在沒有鏈路故障時(shí)指向默認(rèn)虛擬子網(wǎng)的分組的框圖。
圖17d是圖示依照一個(gè)示例實(shí)施例的示例隧道封裝的框圖。
圖17e是圖示依照一個(gè)示例實(shí)施例的示例非封裝分組的框圖。
圖18a至圖18b是圖示依照一個(gè)示例實(shí)施例的示例網(wǎng)絡(luò)轉(zhuǎn)發(fā)表的框圖。
圖19至圖20是圖示依照本公開的一個(gè)或多個(gè)實(shí)施例的網(wǎng)絡(luò)設(shè)備的示例操作的流程圖。
圖21是圖示依照本公開的一個(gè)或多個(gè)方面的示例設(shè)備的框圖。
圖22a至圖22b是圖示由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的用于提供虛擬網(wǎng)絡(luò)中的分布式多播服務(wù)的不平衡和平衡多播樹的示例的概念圖。
圖23a至圖23c是圖示由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的針對(duì)多播群組中的網(wǎng)絡(luò)端點(diǎn)的多播樹的示例的概念圖,其中任何端點(diǎn)操作作為樹的源節(jié)點(diǎn)。
圖24是圖示由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的針對(duì)具有最小化復(fù)制限制的多播群組中的所有服務(wù)器的示例多播樹的概念圖。
圖25a是圖示依照本公開的一個(gè)或多個(gè)方面用于根據(jù)由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的多播樹復(fù)制和轉(zhuǎn)發(fā)分組的示例計(jì)算設(shè)備的框圖。
圖25b是圖示利用虛擬網(wǎng)絡(luò)控制器創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的網(wǎng)絡(luò)端點(diǎn)的多播樹、并且利用端點(diǎn)之一依照多播樹復(fù)制和轉(zhuǎn)發(fā)分組以在虛擬網(wǎng)絡(luò)中提供分布式多播服務(wù)的示例操作的流程圖。
圖26是圖示依照本公開中描述的技術(shù)的各種方面的存儲(chǔ)會(huì)話信息的系統(tǒng)的另一框圖。
圖27是描繪根據(jù)本公開中描述的技術(shù)的各種方面的由服務(wù)器執(zhí)行的虛擬交換機(jī)在執(zhí)行查詢翻譯過程中的操作的流程圖。
圖28是圖示依照本公開的一個(gè)或多個(gè)方面的用于便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)操作的示例計(jì)算設(shè)備的框圖。
貫穿圖和正文,同樣的附圖標(biāo)記指示同樣的元件。
具體實(shí)施方式
圖1是圖示具有其中可以實(shí)現(xiàn)本文中描述的技術(shù)示例的數(shù)據(jù)中心10的示例網(wǎng)絡(luò)8的框圖。一般,數(shù)據(jù)中心10為通過服務(wù)提供商網(wǎng)絡(luò)7耦合到數(shù)據(jù)中心的客戶11提供用于應(yīng)用和服務(wù)的操作環(huán)境。例如,數(shù)據(jù)中心10可以托管諸如聯(lián)網(wǎng)和存儲(chǔ)系統(tǒng)、冗余電源和環(huán)境控制之類的基礎(chǔ)結(jié)構(gòu)設(shè)備。服務(wù)提供商網(wǎng)絡(luò)7可以耦合到由其它提供商管理的一個(gè)或多個(gè)網(wǎng)絡(luò),并且從而可以形成例如因特網(wǎng)的大規(guī)模公共網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)的一部分。
在一些示例中,數(shù)據(jù)中心10可以表示許多地理上分布式網(wǎng)絡(luò)數(shù)據(jù)中心之一。如在圖1的示例中圖示的,數(shù)據(jù)中心10可以是為客戶11提供網(wǎng)絡(luò)服務(wù)的設(shè)施??蛻?1可以是諸如企業(yè)和政府之類的集合實(shí)體或個(gè)體。例如,網(wǎng)絡(luò)數(shù)據(jù)中心可以托管用于若干企業(yè)和最終用戶的網(wǎng)絡(luò)服務(wù)。其它示例性服務(wù)可以包括數(shù)據(jù)存儲(chǔ)、虛擬專用網(wǎng)絡(luò)、流量工程、文件服務(wù)、數(shù)據(jù)挖掘、科學(xué)計(jì)算或超級(jí)計(jì)算等。在一些實(shí)施例中,數(shù)據(jù)中心10可以是個(gè)體網(wǎng)絡(luò)服務(wù)器、網(wǎng)絡(luò)對(duì)等體或以其他方式。
在這個(gè)示例中,數(shù)據(jù)中心10包括經(jīng)由由一個(gè)或多個(gè)層級(jí)的物理網(wǎng)絡(luò)交換機(jī)和路由器提供的高速交換機(jī)結(jié)構(gòu)14互連的一組存儲(chǔ)系統(tǒng)和應(yīng)用服務(wù)器12a至12x(本文中,“服務(wù)器12”)。交換機(jī)結(jié)構(gòu)14由耦合到底架交換機(jī)18a至18m(統(tǒng)稱為“底架交換機(jī)18”)的分布層的一組互連架頂(tor)交換機(jī)16a至16bn(統(tǒng)稱為“tor交換機(jī)16”)提供。盡管未示出,數(shù)據(jù)中心10還可以包括例如一個(gè)或多個(gè)非邊緣交換機(jī)、路由器、集線器、網(wǎng)關(guān)、諸如防火墻、入侵檢測和/或入侵防護(hù)設(shè)備之類的安全設(shè)備、服務(wù)器、計(jì)算機(jī)終端、膝上型電腦、打印機(jī)、數(shù)據(jù)庫、諸如蜂窩電話或個(gè)人數(shù)字助理之類的無線移動(dòng)設(shè)備、無線接入點(diǎn)、橋接器、電纜調(diào)制解調(diào)器、應(yīng)用加速器或者其它網(wǎng)絡(luò)設(shè)備。
在這個(gè)示例中,tor交換機(jī)16和底架交換機(jī)18向ip結(jié)構(gòu)20和服務(wù)提供商網(wǎng)絡(luò)7提供具有冗余(多宿主)連接的服務(wù)器12。底架交換機(jī)18聚集流量流并且提供在tor交換機(jī)16之間的高速連接。tor交換機(jī)16可以是提供層2(mac)和/或?qū)?(例如,ip)路由和/或交換功能的網(wǎng)絡(luò)設(shè)備。tor交換機(jī)16和底架交換機(jī)18可以各自包括一個(gè)或多個(gè)處理器和存儲(chǔ)器,并且有能力執(zhí)行一個(gè)或多個(gè)軟件過程。底架交換機(jī)18耦合到ip結(jié)構(gòu)20,ip結(jié)構(gòu)20執(zhí)行層3路由以通過服務(wù)提供商網(wǎng)絡(luò)7路由數(shù)據(jù)中心10和客戶11之間的網(wǎng)絡(luò)流量。
依照本公開的一個(gè)或多個(gè)實(shí)施例,虛擬網(wǎng)絡(luò)控制器22(“vnc”)提供邏輯上并且在一些情況下物理上集中控制器,以便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)在數(shù)據(jù)中心10內(nèi)的操作。在一些示例中,虛擬網(wǎng)絡(luò)控制器22可以響應(yīng)于從網(wǎng)絡(luò)管理員24接收的配置輸入而進(jìn)行操作。
通常,在任何兩個(gè)網(wǎng)絡(luò)設(shè)備之間(諸如,在ip結(jié)構(gòu)20內(nèi)的網(wǎng)絡(luò)設(shè)備(未示出)之間、或者在服務(wù)器12和客戶11之間、或者在服務(wù)器12之間)的流量例如可以使用許多不同路徑遍歷物理網(wǎng)絡(luò)。例如,在兩個(gè)網(wǎng)絡(luò)設(shè)備之間可以存在等價(jià)的若干不同路徑。在一些情況下,屬于從一個(gè)網(wǎng)絡(luò)設(shè)備到另一個(gè)網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)流量的分組可以在每個(gè)網(wǎng)絡(luò)交換機(jī)節(jié)點(diǎn)處被分布在使用路由策略的各種可能路徑(被稱為多路徑路由)當(dāng)中。例如,因特網(wǎng)工程任務(wù)組(ietf)rfc2992“analysisofanequal-costmulti-pathalgorithm”描述了用于沿著多條等價(jià)路徑路由分組的路由技術(shù)。rfc2992的技術(shù)分析涉及通過散列分組報(bào)頭字段將流指派給倉(bin)的一種特定多路徑路由策略,該策略通過單個(gè)確定性路徑發(fā)送來自特定網(wǎng)絡(luò)流的所有分組。
例如,“流”可以由在報(bào)頭中用于分組的五個(gè)值來定義,或者由用于通過物理網(wǎng)絡(luò)路由分組的“五元組”(即,協(xié)議、源ip地址、目的地ip地址、源端口和目的地端口)定義。例如,協(xié)議指定諸如tcp或udp之類的通信協(xié)議,并且源端口和目的地端口指的是連接的源和目的地端口。匹配特定流條目的一個(gè)或多個(gè)分組數(shù)據(jù)單元(pdu)的集表示流。使用諸如源和目的地mac和ip地址之類的pdu的任何參數(shù)、虛擬局域網(wǎng)(vlan)標(biāo)簽、傳輸層信息、多協(xié)議標(biāo)記交換(mpls)或通用mpls(gmpls)標(biāo)記、以及接收流的網(wǎng)絡(luò)設(shè)備的入口端,可以對(duì)流進(jìn)行大致分類。例如,流可以是在傳輸控制協(xié)議(tcp)連接中發(fā)射的所有pdu、源自特定mac地址或ip地址的所有pdu、具有相同vlan標(biāo)簽的所有pdu、或者在相同交換機(jī)端口處接收的所有pdu。
網(wǎng)絡(luò)中的每個(gè)個(gè)體交換機(jī)路由器可以執(zhí)行其自身的獨(dú)立的散列計(jì)算,以確定將由特定流使用的路徑。在第一網(wǎng)絡(luò)設(shè)備和第二網(wǎng)絡(luò)設(shè)備之間的ecmp路徑可以被虛擬網(wǎng)絡(luò)看作一個(gè)物理連接,因?yàn)樗鼈兊姆纸M(內(nèi)部分組)由外部ip報(bào)頭封裝。
在圖1的示例中,從服務(wù)器12a到服務(wù)器12x存在相等路由成本的多個(gè)路徑27a至27b(統(tǒng)稱為“路徑27”)。路徑27b遍歷從服務(wù)器12a出發(fā)并且由tor交換機(jī)16a、底架交換機(jī)18a、tor交換機(jī)16n和服務(wù)器12x組成的物理網(wǎng)絡(luò)路徑。相比之下,路徑27a遍歷從服務(wù)器12a出發(fā)并且由tor交換機(jī)16a、底架交換機(jī)18m、tor交換機(jī)16n和服務(wù)器12x組成的物理網(wǎng)絡(luò)路徑。服務(wù)器12a可以根據(jù)分配方案向路徑27中的任何路徑分配由在服務(wù)器12a上執(zhí)行的應(yīng)用(在圖1中未示出)生成的分組流。例如,分配方案可以根據(jù)分組報(bào)頭字段的不變量選擇來分配分組,從而分組括源ip地址、目的地ip地址、ip協(xié)議(ipv4)或下一個(gè)報(bào)頭(ipv6)、傳輸層源端口和/或傳輸層目的地端口。不變量被用來指在屬于分組流的分組當(dāng)中不改變的分組字段。例如,屬于分配給路徑27a的分組流的分組遍歷路徑27a以到達(dá)服務(wù)器12x。
依照本公開中描述的技術(shù),服務(wù)器12a可以接收請(qǐng)求29a以確定由服務(wù)器12a已經(jīng)分配給路徑27a的特定分組流的分組遍歷的物理網(wǎng)絡(luò)路徑。服務(wù)器12a根據(jù)分配方案生成如下第一流跟蹤分組:至少具有與請(qǐng)求分組流的分組完全相同、足以使得服務(wù)器12a匹配第一流跟蹤分組與分組流并且從而使得第一流跟蹤分組根據(jù)路徑27a被轉(zhuǎn)發(fā)的分組報(bào)頭字段的第一流跟蹤分組。結(jié)果,第一流跟蹤分組將遍歷與分組流的分組完全相同的物理網(wǎng)絡(luò)路徑。
為了確定沿著由分組流采取的物理網(wǎng)絡(luò)路徑的第一下一跳,服務(wù)器12a將針對(duì)流跟蹤分組的生存時(shí)間(ttl)值設(shè)置成1,然后將第一流跟蹤分組轉(zhuǎn)發(fā)到路徑27a的第一下一跳(即,tor交換機(jī)16a)。因?yàn)獒槍?duì)第一流跟蹤分組的ttl值被設(shè)置成1,tor交換機(jī)16a將ttl值遞減為零,拋棄第一流跟蹤分組,并且返回針對(duì)第一流跟蹤分組的因特網(wǎng)控制消息協(xié)議(icmp)超時(shí)消息(其包括tor交換機(jī)16a的網(wǎng)絡(luò)地址)。盡管描述為icmp超時(shí)消息,超時(shí)消息可以包括指示tor交換機(jī)16a已經(jīng)接收具有ttl值=1的ip分組的另一類型的消息。
服務(wù)器12a以類似于第一流跟蹤分組的其它方式生成第二流跟蹤分組,但是遞增ttl值以將第二流跟蹤分組上的ttl值設(shè)置成2。服務(wù)器12a沿著路徑27a轉(zhuǎn)發(fā)第二流跟蹤分組。底架交換機(jī)18m接收第二流跟蹤分組,拋棄分組,并且響應(yīng)地將icmp超時(shí)消息返回到服務(wù)器12a。服務(wù)器12a迭代地生成針對(duì)分組流的另外的流跟蹤分組,從而通過每個(gè)連續(xù)連續(xù)流跟蹤分組遞增ttl值并且沿著路徑27a轉(zhuǎn)發(fā)另外的流跟蹤分組。結(jié)果,針對(duì)分組流,沿著路徑27a的連續(xù)下一跳各自接收具有零ttl的流跟蹤分組并且各自將icmp超時(shí)消息返回到服務(wù)器12a。相比于跟蹤路由工具(如果由服務(wù)器12a執(zhí)行,其將產(chǎn)生icmp回應(yīng)請(qǐng)求消息,icmp回應(yīng)請(qǐng)求消息形成可以由服務(wù)器12a分配給路徑27b的分組流),技術(shù)可以確保由流跟蹤分組所采取的路徑匹配由對(duì)應(yīng)分組流所采取的物理網(wǎng)絡(luò)路徑(即,多路徑環(huán)境中的路徑27a)。服務(wù)器12a可以使用從沿著路徑27a的物理下一跳返回的返回icmp超時(shí)消息,以生成物理下一跳的列表,在響應(yīng)29b中服務(wù)器12a將物理下一跳的列表返回到vnc22。在一些實(shí)例中,上面描述為由服務(wù)器12a執(zhí)行的技術(shù)可以代替地或另外地由諸如tor交換機(jī)16和底架交換機(jī)18之類的交換機(jī)結(jié)構(gòu)14元件執(zhí)行。
在如圖1的示例中示出的虛擬網(wǎng)絡(luò)中,網(wǎng)絡(luò)控制器22可以指導(dǎo)技術(shù)使用統(tǒng)計(jì)技術(shù)找到真實(shí)延遲。通常,虛擬網(wǎng)絡(luò)域獨(dú)立于物理網(wǎng)絡(luò)域被控制,因此,確定虛擬網(wǎng)絡(luò)域內(nèi)的給定網(wǎng)絡(luò)流的分組的實(shí)際路徑的能力是不直接的,并且通常要求了解物理網(wǎng)絡(luò)的狀態(tài)。
可以被采用用于確定由通過交換機(jī)路由器網(wǎng)絡(luò)的網(wǎng)絡(luò)ip分組所采取的路徑的一種技術(shù)是使用由大多數(shù)操作系統(tǒng)以及網(wǎng)絡(luò)操作系統(tǒng)支持的ip跟蹤路由功能。然而,在采用對(duì)于虛擬網(wǎng)絡(luò)和虛擬路由技術(shù)來說不易得到的任何特定流的多路徑延遲(即,分組經(jīng)由交換機(jī)和連接器的特定路徑從一個(gè)網(wǎng)絡(luò)設(shè)備(例如,服務(wù)器)行進(jìn)到另一個(gè)網(wǎng)絡(luò)設(shè)備所用的時(shí)間(例如,在ip結(jié)構(gòu)20內(nèi)))時(shí),這樣的跟蹤路由功能可能無法良好工作,這是因?yàn)椴煌W(wǎng)絡(luò)流使用不同的路徑通過網(wǎng)絡(luò)并且用于確定路由的跟蹤路由分組將不具有與應(yīng)用分組相同的報(bào)頭。因?yàn)榇蠖鄶?shù)網(wǎng)絡(luò)交換機(jī)路由器中的散列函數(shù)依賴于分組報(bào)頭,這種跟蹤路由分組可以不遵循相同的路徑。
依照本公開的技術(shù),用于確定多路徑路由環(huán)境中的延遲的一種方法是收集每個(gè)虛擬交換機(jī)節(jié)點(diǎn)(例如,駐留在服務(wù)器12上的)上的統(tǒng)計(jì)數(shù)據(jù),也就是說,每個(gè)交換機(jī)節(jié)點(diǎn)收集關(guān)于哪些分組已經(jīng)行進(jìn)通過服務(wù)器12之間的交換機(jī)節(jié)點(diǎn)和什么時(shí)候它們行進(jìn)通過服務(wù)器12之間的交換機(jī)節(jié)點(diǎn)的數(shù)據(jù)。然后交換機(jī)將該數(shù)據(jù)發(fā)送到在虛擬網(wǎng)絡(luò)控制器22上執(zhí)行的分析引擎。分析引擎可以使用數(shù)據(jù)來計(jì)算延遲。然而,從所有服務(wù)器12上的虛擬交換機(jī)節(jié)點(diǎn)收集所有這樣的數(shù)據(jù)可能會(huì)導(dǎo)致可能難以有效地使用并且將侵蝕網(wǎng)絡(luò)帶寬的大量數(shù)據(jù)。所以在一些示例性實(shí)施例中,管理員24可以選擇限制被聚集的數(shù)據(jù)。例如,管理員24可以在虛擬網(wǎng)絡(luò)控制器22處指定要針對(duì)某類流量捕獲統(tǒng)計(jì)數(shù)據(jù),并且還可以限制收集統(tǒng)計(jì)數(shù)據(jù)的時(shí)間段。為了捕獲某類流量,分組可以像匹配列表那樣被使用,稱為分組分類器。虛擬網(wǎng)絡(luò)控制器22可以向下發(fā)送分組分類器,以安裝在適當(dāng)?shù)姆?wù)器12上。
為了為客戶11提供網(wǎng)絡(luò)服務(wù),數(shù)據(jù)中心10的服務(wù)器12可以經(jīng)由交換機(jī)結(jié)構(gòu)14彼此交換大量數(shù)據(jù)。一般,可能期望服務(wù)器12使用多播服務(wù)進(jìn)行通信。多播服務(wù)涉及在單個(gè)發(fā)射中將數(shù)據(jù)從源設(shè)備通過網(wǎng)絡(luò)基本上同時(shí)地遞送到訂戶的群組。在圖1的示例中,在兩個(gè)或更多的服務(wù)器12有興趣接收來自例如源服務(wù)器12a的相同多播數(shù)據(jù)時(shí),感興趣的服務(wù)器12可以請(qǐng)求加入與多播數(shù)據(jù)關(guān)聯(lián)的多播群組。
在常規(guī)的數(shù)據(jù)中心中,為了將多播數(shù)據(jù)從源服務(wù)器轉(zhuǎn)發(fā)到兩個(gè)或更多其它服務(wù)器,多播數(shù)據(jù)按需由交換機(jī)結(jié)構(gòu)內(nèi)的物理網(wǎng)絡(luò)交換機(jī)和路由器復(fù)制。用于復(fù)制和轉(zhuǎn)發(fā)針對(duì)多播群組的多播數(shù)據(jù)的網(wǎng)絡(luò)交換機(jī)和路由器可以創(chuàng)建通過交換機(jī)結(jié)構(gòu)的多播分布樹,以管理多播數(shù)據(jù)的復(fù)制和遞送。在其中大量服務(wù)器(例如,2000個(gè)服務(wù)器)通過交換機(jī)結(jié)構(gòu)互連的情況下,每對(duì)服務(wù)器可以具有大量的在它們之間的等價(jià)路徑。物理服務(wù)器可以使用單播服務(wù)進(jìn)行通信,但是由于交換機(jī)結(jié)構(gòu)中的大量冗余路徑,物理服務(wù)器之間的多播服務(wù)可能更難以管理。
另外,在常規(guī)數(shù)據(jù)中心中使用的多播協(xié)議會(huì)通過沒有高效地使用交換機(jī)結(jié)構(gòu)內(nèi)的所有可用鏈路而浪費(fèi)帶寬。而且,交換機(jī)結(jié)構(gòu)內(nèi)的物理交換機(jī)和路由器可以僅能夠支持非常少數(shù)的多播表,使得常規(guī)數(shù)據(jù)中心將不能夠擴(kuò)展以支持針對(duì)大量互連服務(wù)器所必要的大量多播群組。
在大數(shù)據(jù)中心中在服務(wù)器之間提供l3多播服務(wù)情況下的上述問題然而可能無法利用建立在交換機(jī)結(jié)構(gòu)上、用于仿真在服務(wù)器上執(zhí)行的虛擬交換機(jī)之間的l2網(wǎng)絡(luò)的虛擬重疊網(wǎng)絡(luò)來解決。通常,為了虛擬重疊網(wǎng)絡(luò)仿真l2多播服務(wù),底層交換機(jī)結(jié)構(gòu)也必須支持多播服務(wù)。
總體上,本公開描述在不要求底層網(wǎng)絡(luò)中的多播支持情況下用于在虛擬網(wǎng)絡(luò)內(nèi)提供多播服務(wù)的技術(shù)。更具體地,技術(shù)使用虛擬網(wǎng)絡(luò)控制器22和端點(diǎn)復(fù)制使得能夠在交換機(jī)結(jié)構(gòu)14的虛擬重疊網(wǎng)絡(luò)中支持l2多播服務(wù)。虛擬網(wǎng)絡(luò)控制器22被配置為創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備(例如,服務(wù)器12)的多播樹。多播樹被認(rèn)為是多播樹,因?yàn)樗诜抡鎙2多播的虛擬重疊網(wǎng)絡(luò)中被創(chuàng)建,使得任何服務(wù)器12可以是多播流量的源服務(wù)器,稱為雙向多播。然后,虛擬網(wǎng)絡(luò)控制器22將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)服務(wù)器12,以指示服務(wù)器12根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到屬于多播群組的兩個(gè)或更多服務(wù)器12。
根據(jù)技術(shù),多播樹在虛擬網(wǎng)絡(luò)控制器22處被計(jì)算,而不是由服務(wù)多播群組的交換機(jī)結(jié)構(gòu)14中的網(wǎng)絡(luò)交換機(jī)和路由器以分布式方式來計(jì)算。另外,多播分組的復(fù)制和轉(zhuǎn)發(fā)由執(zhí)行在虛擬網(wǎng)絡(luò)的服務(wù)器12上的虛擬交換機(jī)來執(zhí)行。在底層交換機(jī)結(jié)構(gòu)14內(nèi)不執(zhí)行復(fù)制。用這種方法,技術(shù)使得多播服務(wù)能夠在不要求底層網(wǎng)絡(luò)中的多播支持情況下在虛擬網(wǎng)絡(luò)內(nèi)進(jìn)行。例如,交換機(jī)結(jié)構(gòu)14不需要支持l3多播,這可以使交換機(jī)結(jié)構(gòu)14簡單和易于管理。
另外,虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建多播樹以最小化復(fù)制限制,使得若干服務(wù)器12可以復(fù)制和轉(zhuǎn)發(fā)少數(shù)的多播分組,而不是單個(gè)源服務(wù)器必須承擔(dān)復(fù)制分組并且將分組轉(zhuǎn)發(fā)到屬于多播群組的所有服務(wù)器的負(fù)載。進(jìn)一步地,虛擬網(wǎng)絡(luò)控制器22可以配置針對(duì)多播群組的多播樹中的每個(gè)鏈路方向的唯一虛擬網(wǎng)絡(luò)隧道封裝,以便高效地使用交換機(jī)結(jié)構(gòu)14中的帶寬。在圖2a和圖2b中關(guān)于虛擬網(wǎng)絡(luò)控制器22和服務(wù)器12更詳細(xì)地描述技術(shù)。
在一些示例中,虛擬網(wǎng)絡(luò)控制器22作為日志記錄信息收集器進(jìn)行操作,以從數(shù)據(jù)中心10的不同元件(包括底架交換機(jī)18、tor交換機(jī)16、if-map服務(wù)器26中的任何一個(gè),以及服務(wù)器12或執(zhí)行在其上的應(yīng)用中的任何一個(gè))獲得日志記錄信息。底架交換機(jī)18、tor交換機(jī)16、if-map服務(wù)器26以及任何服務(wù)器12本文中一般可以被稱為“生成器”。盡管下面主要關(guān)于服務(wù)器12a進(jìn)行描述,本公開的技術(shù)因此可應(yīng)用于至少任何前述網(wǎng)絡(luò)元件。
服務(wù)器12a被配置為依照日志記錄的基線范圍來生成日志記錄信息。服務(wù)器12a以及日志記錄信息的其它生成器在本文中備選地被稱為“生成器”?;€范圍指的是在日志記錄范圍未被vnc22修改的情況下由生成器在普通或“基線”操作環(huán)境下收集的日志記錄信息的類型和數(shù)量。服務(wù)器12a將收集的日志記錄信息以日志消息發(fā)送到vnc22。服務(wù)器12a可以周期性地或響應(yīng)于一些事件(例如,新日志記錄信息的生成或者所生成的日志記錄信息的某個(gè)數(shù)量)發(fā)送日志消息,以更新vnc22上針對(duì)服務(wù)器12a的日志記錄信息。在圖示的示例中,服務(wù)器12a將包括新生成的日志記錄信息的日志消息25發(fā)送到vnc22。
依照本文中描述的技術(shù),vnc22分析日志消息25中的日志記錄信息,確定應(yīng)當(dāng)修改由服務(wù)器12a執(zhí)行的日志記錄的范圍。因此,虛擬網(wǎng)絡(luò)控制器22生成日志記錄修改消息27并且將日志記錄修改消息27發(fā)送到服務(wù)器12a,以向服務(wù)器12a指示新的日志記錄范圍。服務(wù)器12a修改其日志記錄操作以符合由vnc22指定的日志記錄范圍,這可以包括通過以下方式來增加日志記錄的數(shù)量:例如,返回針對(duì)應(yīng)用的已經(jīng)存儲(chǔ)到存儲(chǔ)器的狀態(tài)信息,指導(dǎo)應(yīng)用執(zhí)行一個(gè)或多個(gè)診斷子例程以生成另外的日志記錄信息,設(shè)置使得應(yīng)用生成比基線更大范圍的日志記錄信息的變量或標(biāo)志。服務(wù)器12a在日志消息29中返回依照超過基線范圍的增加所生成的日志記錄信息。用這種方法,vnc22動(dòng)態(tài)地適配由服務(wù)器12a執(zhí)行的日志記錄的范圍,以擴(kuò)大在由先前接收的日志記錄信息(這里,日志消息25中的日志記錄信息)指示時(shí)收集的日志記錄信息的數(shù)量。
在一些示例中,除了動(dòng)態(tài)地調(diào)整由服務(wù)器12a生成的日志記錄信息的范圍,vnc22還可以指導(dǎo)服務(wù)器12a修改發(fā)送日志消息的速率。例如,服務(wù)器12a可以周期性地生成針對(duì)基線日志記錄信息的日志消息。在根據(jù)所描述的技術(shù)由vnc22指導(dǎo)時(shí),服務(wù)器12a可以增加日志消息的速率,和/或可以將依照超過基線范圍的增加所生成的日志記錄信息在其生成之后盡可能快地發(fā)送,以快速地向vnc22提供日志記錄信息,以便于對(duì)感興趣事件(例如,由服務(wù)器12a執(zhí)行一個(gè)或多個(gè)應(yīng)用所造成的錯(cuò)誤和/或異常)的快速響應(yīng)。
在一些示例中,vnc22可以實(shí)現(xiàn)技術(shù)以便于在諸如元數(shù)據(jù)接入點(diǎn)接口(if-map)服務(wù)器26(“if-map服務(wù)器26”)之類的廠商中立服務(wù)器的上下文中的多租戶。if-map服務(wù)器26可以表示依照廠商中立數(shù)據(jù)模型存儲(chǔ)信息的中間網(wǎng)絡(luò)設(shè)備?!癷f-map”原本指的是提供廠商可以采用的標(biāo)準(zhǔn)化授權(quán)數(shù)據(jù)模型的授權(quán)數(shù)據(jù)模型,以便于降低在廠商指定或?qū)S惺跈?quán)數(shù)據(jù)模型之間出現(xiàn)的通信或互操作性問題。負(fù)責(zé)引入if-map的群組(稱為可信計(jì)算組織(tcg))正在鼓勵(lì)廠商接受這種新的if-map標(biāo)準(zhǔn),并且廠商正在發(fā)行與該標(biāo)準(zhǔn)兼容的設(shè)備。
if-map標(biāo)準(zhǔn)不僅提供廠商中立或跨廠商數(shù)據(jù)模型,而且提供if-map協(xié)議,通過if-map協(xié)議訪問根據(jù)該標(biāo)準(zhǔn)(廠商中立授權(quán)數(shù)據(jù)模型)存儲(chǔ)的授權(quán)信息。if-map協(xié)議支持各種if-map消息或通信,通過if-map消息或通信公布授權(quán)信息、搜索存儲(chǔ)在if-map服務(wù)器內(nèi)的授權(quán)信息、訂閱存儲(chǔ)在if-map服務(wù)器內(nèi)的授權(quán)信息、以及輪詢針對(duì)給定設(shè)備訂閱的授權(quán)信息的if-map服務(wù)器。關(guān)于if-map跨廠商或廠商中立數(shù)據(jù)模型和協(xié)議的更多信息可以在日期為2012年5月7日、規(guī)范版本2.1、修訂15、名稱為“tncif-mapbindingforsoap”的說明書中找到,其內(nèi)容通過引用方式并入于此,如同將其整體闡述一樣。
此后,if-map已經(jīng)被擴(kuò)大或修改,以適應(yīng)包括云計(jì)算(其可以涉及托管云計(jì)算應(yīng)用的諸如數(shù)據(jù)中心10之類的數(shù)據(jù)中心)的不同技術(shù)。if-map服務(wù)器26可以表示實(shí)現(xiàn)符合在該云計(jì)算上下文中的if-map的數(shù)據(jù)模型并且支持用于公布、輪詢、訪問和/或接收存儲(chǔ)到if-map數(shù)據(jù)模型的該云計(jì)算版本的數(shù)據(jù)的if-map協(xié)議的if-map服務(wù)器。
雖然本文中關(guān)于通過if-map標(biāo)準(zhǔn)闡述的該特定廠商中立授權(quán)數(shù)據(jù)模型進(jìn)行描述,但是技術(shù)可以關(guān)于任何標(biāo)準(zhǔn)或接受授權(quán)數(shù)據(jù)模型來實(shí)現(xiàn)。而且,雖然描述為例如獨(dú)立數(shù)據(jù)庫的分離設(shè)備,但是if-map服務(wù)器22可以被集成在示出為駐留在圖1中的數(shù)據(jù)中心10內(nèi)的任何一個(gè)網(wǎng)絡(luò)設(shè)備內(nèi)。例如,虛擬網(wǎng)絡(luò)控制器22可以包括集成if-map服務(wù)器26。因此在這方面,本公開的技術(shù)不應(yīng)當(dāng)被限制于圖1的示例。
虛擬網(wǎng)絡(luò)可以通過多租戶使用。術(shù)語“多租戶”可以指其中單個(gè)硬件和軟件平臺(tái)同時(shí)支持來自共同數(shù)據(jù)存儲(chǔ)的多個(gè)租戶(例如,客戶、客戶端)的系統(tǒng)。多租戶架構(gòu)中的共享平臺(tái)通常實(shí)際上設(shè)計(jì)成分區(qū)數(shù)據(jù)和操作,因此每個(gè)租戶利用唯一的虛擬應(yīng)用實(shí)例進(jìn)行工作。在一個(gè)實(shí)施方式中,圖1中示出的每個(gè)子網(wǎng)可以服務(wù)一個(gè)租戶,例如一家公司。在一些示例中,第一虛擬網(wǎng)絡(luò)將屬于公司a,第二虛擬網(wǎng)絡(luò)將屬于公司b等。
然而,在來自不同公司的標(biāo)識(shí)符重疊時(shí),if-map服務(wù)器26可以不支持多租戶。為了通過示例的方式圖示,公司a和公司b兩者都可以具有標(biāo)識(shí)為“雇員#5”的雇員,其中該標(biāo)識(shí)符可以用于檢索關(guān)于“雇員#5”的授權(quán)或其它信息。if-map服務(wù)器26可能不能夠決定針對(duì)關(guān)于“雇員#5”的信息的請(qǐng)求將被返回到公司a和公司b中的哪個(gè)。在這個(gè)意義上,if-map服務(wù)器26可能不能夠保持針對(duì)公司a處的“雇員#5”和公司b處的“雇員#5”的不同記錄,這會(huì)導(dǎo)致用于公司a和公司b處的雇員#5兩者的單個(gè)記錄??绻綼和公司b以這種方式的信息混合可以表示實(shí)質(zhì)性的安全漏洞,特別是考慮到if-map服務(wù)器26可以存儲(chǔ)授權(quán)信息,該授權(quán)信息可以導(dǎo)致雇員#5接收授權(quán)以訪問針對(duì)雇員#5可能不在該處工作的公司a的數(shù)據(jù)。
依照本公開中描述的技術(shù)的各種方面,一個(gè)或多個(gè)服務(wù)器12可以將可以被稱為“局部唯一”標(biāo)識(shí)符的翻譯成在數(shù)據(jù)中心10的上下文內(nèi)是唯一的全局唯一標(biāo)識(shí)符。換言之,服務(wù)器12可以將用于訪問存儲(chǔ)到if-map服務(wù)器26的數(shù)據(jù)、在公司的上下文內(nèi)是局部唯一的標(biāo)識(shí)符翻譯成跨訪問數(shù)據(jù)中心10的所有公司唯一的標(biāo)識(shí)符,從而可能在數(shù)據(jù)僅由特定公司a訪問而不能由數(shù)據(jù)中心10的另一公司或客戶訪問的意義上,確保存儲(chǔ)到if-map服務(wù)器26的數(shù)據(jù)保持安全。
在操作中,作為一個(gè)示例,服務(wù)器12a可以接收關(guān)于與標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的請(qǐng)求,該標(biāo)識(shí)符在發(fā)起請(qǐng)求的數(shù)據(jù)中心10的若干客戶之一(其中,如下面更加詳細(xì)描述的,每個(gè)客戶在數(shù)據(jù)中心10內(nèi)常常由對(duì)應(yīng)若干虛擬網(wǎng)絡(luò)之一表示)內(nèi)是唯一的。在圖1的示例中,請(qǐng)求符合廠商中立if-map協(xié)議,但是技術(shù)可以關(guān)于任何廠商中立或廠商指定協(xié)議來執(zhí)行。
然后,服務(wù)器12a可以翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符(例如,雇員#5),以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符。通常,這種翻譯對(duì)于客戶來說是透明的,這是考慮到標(biāo)識(shí)符在公司a的上下文內(nèi)是局部唯一的,客戶(在這個(gè)示例中,公司a)不知道這種翻譯的另一種方法。也就是說,服務(wù)器12a可以以這樣的方式翻譯標(biāo)識(shí)符,使得公司a的用戶和設(shè)備不能夠檢測出翻譯發(fā)生。
通常,服務(wù)器12a可以存儲(chǔ)在每個(gè)客戶(或者客戶的虛擬網(wǎng)絡(luò)表示)和名稱空間之間的關(guān)聯(lián)。作為一個(gè)示例,名稱空間可以包括客戶(例如,公司a)的名稱。然后,服務(wù)器12a可以將該名稱空間附加到標(biāo)識(shí)符,以生成全局唯一標(biāo)識(shí)符。為了說明,服務(wù)器12a可以接收來自具有標(biāo)識(shí)符(雇員#5)的公司a的請(qǐng)求。通過將公司a附加到雇員#5、利用得到的“公司a:雇員#5”的全局唯一標(biāo)識(shí)符,服務(wù)器12a可以將標(biāo)識(shí)符雇員#5翻譯成全局唯一標(biāo)識(shí)符。以這種方式附加名稱空間類似于名稱空間如何被用在諸如c++之類的各種計(jì)算機(jī)編程語言中。
在任何情況下,在生成全局唯一標(biāo)識(shí)符之后,服務(wù)器12a可以更新請(qǐng)求,以用全局唯一標(biāo)識(shí)符替換包含在請(qǐng)求內(nèi)的標(biāo)識(shí)符。然后,服務(wù)器12a可以將更新的請(qǐng)求發(fā)射到if-map服務(wù)器26。該請(qǐng)求可以包括任何形式的通信,從而包括數(shù)據(jù)公布請(qǐng)求、數(shù)據(jù)輪詢請(qǐng)求、數(shù)據(jù)檢索請(qǐng)求或者任何其它形式的if-map請(qǐng)求或通信。因此在這個(gè)意義上,術(shù)語“請(qǐng)求”不應(yīng)被限制于針對(duì)數(shù)據(jù)的請(qǐng)求,而是可以指任何請(qǐng)求或通信。
if-map服務(wù)器26可以發(fā)出對(duì)請(qǐng)求的響應(yīng),其中響應(yīng)可以包括全局唯一標(biāo)識(shí)符??紤]到客戶(在這個(gè)示例中,公司a)常常不知道由服務(wù)器12a執(zhí)行的翻譯,服務(wù)器12a可以翻譯該全局唯一標(biāo)識(shí)符以恢復(fù)原始標(biāo)識(shí)符,該原始標(biāo)識(shí)符再次在公司a的上下文內(nèi)是局部唯一的。服務(wù)器12a然后可以更新響應(yīng),以用恢復(fù)的局部唯一標(biāo)識(shí)符替換全局唯一標(biāo)識(shí)符。服務(wù)器12a然后可以將更新的響應(yīng)發(fā)射到公司a,公司a可以以任何數(shù)量的方式處理響應(yīng),但是常常在授權(quán)標(biāo)識(shí)符以訪問由一個(gè)或多個(gè)服務(wù)器12存儲(chǔ)的數(shù)據(jù)或者由一個(gè)或多個(gè)服務(wù)器12執(zhí)行的應(yīng)用的上下文中。
雖然上面描述為使用名稱空間,技術(shù)一般可以涉及標(biāo)識(shí)符從局部唯一標(biāo)識(shí)符到全局唯一標(biāo)識(shí)符的翻譯或變換。以上面描述的方式使用名稱空間只是這種翻譯的一個(gè)示例,并且技術(shù)可以關(guān)于其它形式的翻譯來執(zhí)行。例如,翻譯可以使用客戶/標(biāo)識(shí)符組合和全局唯一標(biāo)識(shí)符之間的映射(其可以是到表中的數(shù)字或索引)來執(zhí)行。換言之,雖然名稱空間被附加到標(biāo)識(shí)符以形成全局唯一標(biāo)識(shí)符,技術(shù)可以關(guān)于不以上面關(guān)于名稱空間描述的方式重新使用局部唯一標(biāo)識(shí)符的其它形式的翻譯來執(zhí)行。
用這種方法,每個(gè)租戶在其自己的子網(wǎng)內(nèi)將被指派其自己的名稱空間,諸如“公司a”和“公司b”。租戶保持在其相應(yīng)上下文/子網(wǎng)中唯一的標(biāo)識(shí)符,但是標(biāo)識(shí)符可以不是全局唯一的。例如,在它們相應(yīng)的名稱空間中,公司a可以具有標(biāo)識(shí)符“雇員#5”并且公司b也可以具有相同的標(biāo)識(shí)符“雇員#5”。由于每個(gè)公司具有其自己的名稱空間,相同的標(biāo)識(shí)符可以被多個(gè)公司使用而不沖突。然后,每個(gè)租戶可以僅知道在其自己的名稱空間中的標(biāo)識(shí)符。
圖2a是進(jìn)一步詳細(xì)圖示圖1的數(shù)據(jù)中心10的示例實(shí)施方式的框圖。在圖2a的示例中,數(shù)據(jù)中心10包括使交換機(jī)結(jié)構(gòu)14從物理交換機(jī)16、物理交換機(jī)18延伸至軟件或“虛擬”交換機(jī)30a至30x(統(tǒng)稱為“虛擬交換機(jī)30”)的重疊網(wǎng)絡(luò)。虛擬交換機(jī)30動(dòng)態(tài)地創(chuàng)建和管理可用于應(yīng)用實(shí)例之間的通信的一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)34。在一個(gè)示例中,虛擬交換機(jī)30將虛擬網(wǎng)絡(luò)執(zhí)行為重疊網(wǎng)絡(luò),該重疊網(wǎng)絡(luò)提供從應(yīng)用執(zhí)行在其上的服務(wù)器12a至12x(“服務(wù)器12”)之一的物理地址(例如,ip地址)解耦應(yīng)用的虛擬地址的能力。每個(gè)虛擬網(wǎng)絡(luò)可以使用其自己的尋址和安全性方案,并且可以被視為正交于物理網(wǎng)絡(luò)及其尋址方案。各種技術(shù)可以用于在物理網(wǎng)絡(luò)之上的虛擬網(wǎng)絡(luò)34內(nèi)并且跨物理網(wǎng)絡(luò)之上的虛擬網(wǎng)絡(luò)34傳輸分組。在一些示例中,本公開中描述的技術(shù)在虛擬網(wǎng)絡(luò)34內(nèi)提供多播服務(wù),而不要求底層物理網(wǎng)絡(luò)中的多播支持。
每個(gè)虛擬交換機(jī)30可以在每個(gè)服務(wù)器12的管理程序、主機(jī)操作系統(tǒng)或其它部件內(nèi)執(zhí)行。在圖2a的示例中,虛擬交換機(jī)30a在管理程序31(還常常被稱為虛擬機(jī)管理器(vmm))內(nèi)執(zhí)行,管理程序31提供允許多個(gè)操作系統(tǒng)在主機(jī)服務(wù)器12之一上同時(shí)運(yùn)行的虛擬化平臺(tái)。在圖2a的示例中,虛擬交換機(jī)30a管理虛擬網(wǎng)絡(luò)34,每個(gè)虛擬網(wǎng)絡(luò)34提供用于在由管理程序31提供的虛擬化平臺(tái)的頂部上執(zhí)行一個(gè)或多個(gè)虛擬機(jī)(vm)36的網(wǎng)絡(luò)環(huán)境。每個(gè)vm36與由管理程序31管理的虛擬子網(wǎng)vn0至vn1之一關(guān)聯(lián)。
一般,每個(gè)vm36可以是任何類型的軟件應(yīng)用,并且可以被指派虛擬地址以在對(duì)應(yīng)虛擬網(wǎng)絡(luò)34內(nèi)使用,其中每個(gè)虛擬網(wǎng)絡(luò)可以是由虛擬交換機(jī)30a提供的不同虛擬子網(wǎng)。vm36可以被指派其自己的虛擬層三(l3)ip地址例如以用于發(fā)送和接收通信,但是可以不知道虛擬機(jī)執(zhí)行在其上的物理服務(wù)器12a的ip地址。用這種方法,“虛擬地址”是針對(duì)應(yīng)用的地址,該地址不同于針對(duì)例如圖2a和圖2b的示例中的服務(wù)器12a的底層(物理計(jì)算機(jī)系統(tǒng))的邏輯地址。
在一個(gè)實(shí)施方式中,每個(gè)服務(wù)器12包括對(duì)應(yīng)虛擬網(wǎng)絡(luò)(vn)代理35a至35x(統(tǒng)稱為“vn代理35”)之一,vn代理35控制虛擬網(wǎng)絡(luò)34的重疊并且協(xié)調(diào)數(shù)據(jù)分組在服務(wù)器12內(nèi)的路由。一般,每個(gè)vn代理35與虛擬網(wǎng)絡(luò)控制器22進(jìn)行通信,虛擬網(wǎng)絡(luò)控制器22生成命令以控制分組通過數(shù)據(jù)中心10的路由。vn代理35可以操作作為針對(duì)虛擬機(jī)36和虛擬網(wǎng)絡(luò)控制器22之間的控制平面消息的代理。例如,vm36可以請(qǐng)求使用其虛擬地址經(jīng)由vn代理35a來發(fā)送消息,并且vn代理35a可以轉(zhuǎn)而發(fā)送消息并且請(qǐng)求發(fā)出第一消息的vm36的虛擬地址接收對(duì)消息的響應(yīng)。在一些情況下,vm36可以調(diào)用由vn代理35a的應(yīng)用編程接口給出的過程或函數(shù)調(diào)用,并且vn代理35a也可以處理消息的封裝,從而包括尋址。
在一個(gè)示例中,例如在虛擬網(wǎng)絡(luò)域內(nèi)由虛擬機(jī)36執(zhí)行的應(yīng)用實(shí)例生成或消耗的層三(l3)ip分組或?qū)佣?l2)以太網(wǎng)分組的網(wǎng)絡(luò)分組可以被封裝在由物理網(wǎng)絡(luò)傳輸?shù)牧硪环纸M(例如,另一ip或以太網(wǎng)分組)中。在虛擬網(wǎng)絡(luò)中傳輸?shù)姆纸M本文中可以被稱為“內(nèi)部分組”,而物理網(wǎng)絡(luò)分組本文中可以被稱為“外部分組”。虛擬網(wǎng)絡(luò)分組在物理網(wǎng)絡(luò)分組內(nèi)的封裝和/或解封裝可以在虛擬交換機(jī)30內(nèi)執(zhí)行,例如在運(yùn)行在每個(gè)服務(wù)器12上的管理程序或主機(jī)操作系統(tǒng)內(nèi)執(zhí)行。作為另一示例,封裝和解封裝功能可以在交換機(jī)結(jié)構(gòu)14的邊緣處在第一跳tor交換機(jī)16處執(zhí)行,該第一跳tor交換機(jī)16從發(fā)起分組的應(yīng)用實(shí)例移除的一跳。這一功能本文中被稱為隧道,并且可以在數(shù)據(jù)中心10內(nèi)使用以創(chuàng)建一個(gè)或多個(gè)重疊網(wǎng)絡(luò)。除ipinip外,可以使用的其它示例隧道協(xié)議包括gre之上的ip、vxlan、gre之上的mpls等。
如上所述,虛擬網(wǎng)絡(luò)控制器22提供邏輯集中控制器,以便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)在數(shù)據(jù)中心10內(nèi)的操作。例如,虛擬網(wǎng)絡(luò)控制器22可以保持路由信息庫,例如存儲(chǔ)針對(duì)數(shù)據(jù)中心10的物理網(wǎng)絡(luò)以及一個(gè)或多個(gè)重疊網(wǎng)絡(luò)的路由信息的一個(gè)或多個(gè)路由表。類似地,交換機(jī)16、交換機(jī)18和虛擬交換機(jī)30保持諸如一個(gè)或多個(gè)路由和/或轉(zhuǎn)發(fā)表之類的路由信息。在一個(gè)示例實(shí)施方式中,管理程序31的虛擬交換機(jī)30a實(shí)現(xiàn)針對(duì)每個(gè)虛擬網(wǎng)絡(luò)34的網(wǎng)絡(luò)轉(zhuǎn)發(fā)表(nft)32。一般,每個(gè)nft32存儲(chǔ)針對(duì)對(duì)應(yīng)虛擬網(wǎng)絡(luò)34的轉(zhuǎn)發(fā)信息,并且標(biāo)識(shí)數(shù)據(jù)分組將被轉(zhuǎn)發(fā)的地方以及分組是否將以隧道協(xié)議被封裝,諸如具有可以包括針對(duì)虛擬網(wǎng)絡(luò)協(xié)議棧的不同層的一個(gè)或多個(gè)報(bào)頭的隧道報(bào)頭。
例如,虛擬機(jī)36vm1通過內(nèi)部鏈路發(fā)送分組41(“內(nèi)部分組”)到虛擬交換機(jī)30a。虛擬交換機(jī)30a使用nft1查找分組41的虛擬網(wǎng)絡(luò)目的地網(wǎng)絡(luò)地址。nft1指定虛擬交換機(jī)30a的出站接口以及分組41的封裝。虛擬交換機(jī)30a應(yīng)用封裝以添加隧道報(bào)頭,以生成外部分組43并且在出站接口上輸出外部分組43,在這種情況下朝向tor交換機(jī)16a輸出外部分組43。
例如,路由信息可以將分組密鑰信息(例如,來自分組報(bào)頭的目的地ip信息和其它選擇信息)映射到在由虛擬交換機(jī)30和交換機(jī)結(jié)構(gòu)14提供的網(wǎng)絡(luò)內(nèi)的一個(gè)或多個(gè)指定下一跳。在一些情況下,下一跳可以鏈接指定在轉(zhuǎn)發(fā)分組時(shí)對(duì)每個(gè)分組要執(zhí)行一組操作的下一跳,諸如可以用于洪傳輸下一跳和多播復(fù)制。在一些情況下,虛擬網(wǎng)絡(luò)控制器22以具有表示網(wǎng)絡(luò)內(nèi)的目的地的葉節(jié)點(diǎn)的基數(shù)樹的形式保持路由信息。美國專利7,184,437提供了關(guān)于將基數(shù)樹用于路由解決的路由器的示例性實(shí)施例的細(xì)節(jié),美國專利7,184,437的內(nèi)容通過引用方式整體并入于此。
如圖2a所示,每個(gè)虛擬網(wǎng)絡(luò)34提供針對(duì)通過交換機(jī)結(jié)構(gòu)14建立的重疊網(wǎng)絡(luò)的封裝分組通信37的通信框架。用這種方法,與任何虛擬機(jī)36關(guān)聯(lián)的網(wǎng)絡(luò)分組可以作為封裝分組通信37經(jīng)由重疊網(wǎng)絡(luò)傳輸。另外,在圖2a的示例中,每個(gè)虛擬交換機(jī)30包括默認(rèn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)表nft0,并且提供允許分組在不封裝的情況下被轉(zhuǎn)發(fā)到虛擬子網(wǎng)vn0的默認(rèn)路由,即按照數(shù)據(jù)中心10的物理網(wǎng)絡(luò)的路由規(guī)則的非封裝分組通信39。通過使用這種方法,子網(wǎng)vn0和虛擬默認(rèn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)表nft0提供用于繞過重疊網(wǎng)絡(luò)并且將非封裝分組通信39發(fā)送到交換機(jī)結(jié)構(gòu)14的機(jī)制。
而且,在重疊網(wǎng)絡(luò)的發(fā)現(xiàn)和初始化期間,以及在其中故障鏈路已經(jīng)暫時(shí)停止了經(jīng)由重疊網(wǎng)絡(luò)的通信的條件期間,虛擬網(wǎng)絡(luò)控制器22和虛擬交換機(jī)30可以依照默認(rèn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)表nft0使用虛擬子網(wǎng)vn0進(jìn)行通信。一旦建立與虛擬網(wǎng)絡(luò)控制器22的連接,虛擬網(wǎng)絡(luò)控制器22就更新其本地路由表,以考慮關(guān)于任何故障鏈路的新信息并且指導(dǎo)虛擬交換機(jī)30更新它們的本地網(wǎng)絡(luò)轉(zhuǎn)發(fā)表32。例如,虛擬網(wǎng)絡(luò)控制器22可以向虛擬網(wǎng)絡(luò)代理35輸出命令,以更新一個(gè)或多個(gè)nft32,以指導(dǎo)虛擬交換機(jī)30改變隧道封裝,以便于重新路由在重疊網(wǎng)絡(luò)內(nèi)的通信,例如以避開故障鏈路。
在檢測到鏈路故障時(shí),故障鏈路本地的虛擬網(wǎng)絡(luò)代理35(例如,vn代理35a)可以立即改變網(wǎng)絡(luò)分組的封裝,以使重疊網(wǎng)絡(luò)內(nèi)的流量改向并且通知虛擬網(wǎng)絡(luò)控制器22路由改變。轉(zhuǎn)而,虛擬網(wǎng)絡(luò)控制器22更新其路由信息,可以發(fā)出消息到其它虛擬網(wǎng)絡(luò)代理35,以更新由虛擬網(wǎng)絡(luò)代理存儲(chǔ)在網(wǎng)絡(luò)轉(zhuǎn)發(fā)表32內(nèi)的本地路由信息。
服務(wù)器12a的虛擬交換機(jī)30a包括流跟蹤模塊(ftm)48,以確定由虛擬交換機(jī)30a交換的分組流所遍歷的物理網(wǎng)絡(luò)路徑。流跟蹤模塊48可以由管理程序31、服務(wù)器12a的主機(jī)操作系統(tǒng)或者服務(wù)器12的vm代理35a來執(zhí)行。為了跟蹤外部分組45遍歷的物理網(wǎng)絡(luò)路徑,流跟蹤模塊48生成流跟蹤分組45a,流跟蹤分組45a包括與外部分組43的隧道報(bào)頭類似的隧道報(bào)頭。然而,流跟蹤模塊48最初將第一流跟蹤分組45a的ttl值設(shè)置為1。另外,流跟蹤模塊48可以在流跟蹤分組45a以及對(duì)應(yīng)于流跟蹤分組45a的隨后流跟蹤分組(例如,流跟蹤分組45b)的隧道報(bào)頭的字段中設(shè)置特殊的流跟蹤分組指示符,以指導(dǎo)數(shù)據(jù)中心10的接收虛擬交換機(jī)30:如果接收到具有設(shè)置為大于1的ttl值的第一流跟蹤分組,則拋棄第一流跟蹤分組的內(nèi)部分組。虛擬交換機(jī)30a在由流跟蹤分組45a和外部分組43共享的輸出接口上輸出流跟蹤分組45a。其上針對(duì)流跟蹤分組45a和外部分組43的物理網(wǎng)絡(luò)路徑上的第一下一跳的tor交換機(jī)16a接收流跟蹤分組45a,使ttl值遞減到0,并且因?yàn)閠tl值是0,將icmp超時(shí)消息47a返回到虛擬交換機(jī)30a。
icmp超時(shí)消息47a可以包括超時(shí)消息代碼0,以指示tor交換機(jī)16a由于過期ttl字段而拋棄了流跟蹤分組45a。icmp超時(shí)消息47a是包括imcp超時(shí)消息(icmp類型11)的ip分組。ip分組報(bào)頭具有tor交換機(jī)16a的源ip地址以及其是流跟蹤分組45a的源ip地址的目的地ip地址(例如,虛擬機(jī)36vm1的ip地址)。imcp超時(shí)消息包括ip報(bào)頭以及流跟蹤分組45a的封裝數(shù)據(jù)的前八個(gè)字節(jié)。
流跟蹤模塊48另外生成流跟蹤分組45b,流跟蹤分組45b與流跟蹤分組45a類似,但是具有為2的ttl值。虛擬交換機(jī)30a在由流跟蹤分組45b和外部分組43共享的輸出接口上輸出流跟蹤分組45b。底架交換機(jī)18a接收具有設(shè)置為1的ttl值的流跟蹤分組45b,流跟蹤分組45b已經(jīng)由tor交換機(jī)16a遞減ttl值并且轉(zhuǎn)發(fā)。像關(guān)于流跟蹤分組45a的tor交換機(jī)16a那樣,底架交換機(jī)18a將流跟蹤分組45b的ttl值遞減到0,并且因此將icmp超時(shí)消息47b返回到虛擬交換機(jī)30a。icmp超時(shí)消息47b類似于icmp超時(shí)消息47a,但是具有其是底架交換機(jī)18a的ip地址的源ip地址。
流跟蹤模塊48繼續(xù)以這種方式生成流跟蹤分組,直到交換機(jī)30a接收到確認(rèn)消息49:隨后的流跟蹤分組之一已經(jīng)到達(dá)另一虛擬交換機(jī)30(在這種情況下,服務(wù)器12x)。確認(rèn)消息可以包括例如icmp回應(yīng)答復(fù)消息。用這種方法,交換機(jī)30a的ftm48可以從外部分組45遍歷的物理網(wǎng)絡(luò)路徑上的每個(gè)物理網(wǎng)絡(luò)元件接收包括icmp超時(shí)消息47a、47b的消息。流跟蹤模塊48可以將來自相應(yīng)接收消息的針對(duì)每個(gè)物理網(wǎng)絡(luò)元件的ip地址聚集成列表,ftm48可以將該列表發(fā)送到例如數(shù)據(jù)中心10的虛擬網(wǎng)絡(luò)控制器22。在一些實(shí)例中,流跟蹤模塊48可以將在確認(rèn)消息49中接收的針對(duì)服務(wù)器12x的虛擬ip地址附加到列表。流跟蹤模塊48將針對(duì)物理網(wǎng)絡(luò)元件的ip地址的列表返回到請(qǐng)求設(shè)備,或者例如,可以將列表提供給虛擬交換機(jī)30a的另一部件或者服務(wù)器12a的主機(jī)操作系統(tǒng)。
依照本公開的技術(shù),網(wǎng)絡(luò)控制器22可以指導(dǎo)部件找到通過虛擬化網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)的延遲。例如,管理員24可以配置分組分類器,以經(jīng)由在網(wǎng)絡(luò)控制臺(tái)42中輸入的命令指定要在虛擬網(wǎng)絡(luò)控制器22上針對(duì)延遲以及在哪些時(shí)域上監(jiān)控哪些分組。虛擬網(wǎng)絡(luò)控制器22基于分組分類器通知相關(guān)vn代理35分組監(jiān)控定義。vn代理35在相應(yīng)虛擬交換機(jī)30上安裝分組捕獲邏輯。虛擬交換機(jī)30使用分組捕獲邏輯對(duì)分組進(jìn)行匹配,并且將匹配分組的副本發(fā)送到vn代理35。vn代理35計(jì)算針對(duì)每個(gè)分組的分組簽名,并且將信息發(fā)送到虛擬網(wǎng)絡(luò)控制器22,諸如指定分組簽名、對(duì)分組進(jìn)行匹配的虛擬交換機(jī)30的交換機(jī)標(biāo)識(shí)符、以及指示計(jì)算分組簽名的時(shí)間(或者例如對(duì)分組進(jìn)行匹配的時(shí)間)的時(shí)間戳的信息。虛擬網(wǎng)絡(luò)控制器22的分布式分析引擎分析接收到的信息,并且關(guān)于分組延遲編譯結(jié)果,如下面進(jìn)一步詳細(xì)描述的。虛擬網(wǎng)絡(luò)控制器22可以將諸如報(bào)告之類的結(jié)果發(fā)送到網(wǎng)絡(luò)控制臺(tái)42,以向管理員24顯示。
在一些示例中,vm136或者執(zhí)行在其上的應(yīng)用被配置為依照日志記錄的基線范圍生成日志記錄信息。vm136將收集的日志記錄信息以日志消息發(fā)送到vnc22。在圖示的示例中,vm136將包括新生成的日志記錄信息的日志消息41發(fā)送到vnc22。vm136可以被配置為使用提供默認(rèn)路由的默認(rèn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)表nft0發(fā)送日志消息41,默認(rèn)路由允許分組在不封裝的情況下通過虛擬子網(wǎng)vn0被轉(zhuǎn)發(fā)到vnc22,即按照數(shù)據(jù)中心10的物理網(wǎng)絡(luò)的路由規(guī)則的非封裝分組通信39。在一些示例中,針對(duì)日志消息41到vnc22的非封裝發(fā)射,vm136可以配置具有虛擬交換機(jī)30a將其映射到vnc22的物理網(wǎng)絡(luò)地址的虛擬網(wǎng)絡(luò)地址。
在再進(jìn)一步的示例中,vm136通過vn代理35a發(fā)送日志消息41,vn代理35a操作作為針對(duì)虛擬機(jī)36和虛擬網(wǎng)絡(luò)控制器22之間的控制平面消息的代理。例如,vm136請(qǐng)求使用其虛擬地址經(jīng)由vn代理35a發(fā)送日志消息41,并且vn代理35a可以轉(zhuǎn)而發(fā)送日志消息41并且請(qǐng)求發(fā)起日志消息41的vm36的虛擬地址接收對(duì)消息的響應(yīng)。在一些情況下,vm36可以調(diào)用由vn代理35a的應(yīng)用編程接口給出的過程或函數(shù)調(diào)用,并且vn代理35a也可以處理消息的封裝,從而包括尋址。
vnc22分析日志消息25中的日志記錄信息以確定由vm136執(zhí)行的日志記錄的范圍應(yīng)當(dāng)被修改。因此,虛擬網(wǎng)絡(luò)控制器22生成日志記錄修改消息43,并且將日志記錄修改消息43發(fā)送到服務(wù)器vm136以向vm136指示新的日志記錄范圍。vm136修改其日志記錄操作,以符合由vnc22指定的日志記錄范圍,這可以包括通過以下方式來增加日志記錄的數(shù)量:例如,返回針對(duì)應(yīng)用的已經(jīng)存儲(chǔ)到存儲(chǔ)器的狀態(tài)信息或者指導(dǎo)應(yīng)用執(zhí)行一個(gè)或多個(gè)診斷子例程以生成另外的日志記錄信息。根據(jù)上面描述的技術(shù),vm136可以將依照超過基線范圍的增加所生成的日志記錄信息以日志消息返回到vnc22。
如在圖2的示例中進(jìn)一步示出的,多個(gè)服務(wù)器12可以經(jīng)由虛擬網(wǎng)絡(luò)控制器22訪問if-map服務(wù)器26。同樣地,多個(gè)租戶可以訪問相同的if-map服務(wù)器26。每個(gè)服務(wù)器12具有多個(gè)租戶vn1、vn2、vn3以及翻譯器(以vn0的形式),翻譯器知道由其服務(wù)器12管理的所有租戶。在從屬于公司a的諸如vn1之類的子網(wǎng)接收到查詢(其可以是上面提及的請(qǐng)求的另一種提及方式)的同時(shí),翻譯器vn0通過添加查詢租戶的唯一名稱空間(在這種情況下,公司a)將查詢轉(zhuǎn)換成全局唯一查詢。
例如,假設(shè)關(guān)于雇員#5的查詢由公司a生成。在沒有翻譯器vn0的情況下,關(guān)于雇員#5的查詢可能不被處理,因?yàn)楣綽和公司c也可以在它們的相應(yīng)名稱空間中具有標(biāo)識(shí)符雇員#5,并且if-map服務(wù)器26將不知道查詢涉及哪個(gè)雇員#5。通過標(biāo)識(shí)查詢通過其進(jìn)入的連接(即,在圖2的示例中,是否它來自vn1、vn2等),翻譯器vn0將查詢“雇員#5”翻譯成“公司a:雇員#5”。利用其是全局唯一的翻譯查詢,技術(shù)可以促進(jìn)if-map服務(wù)器26的高效使用(因?yàn)閕f-map服務(wù)器26可以由多個(gè)租戶共享)。
由if-map服務(wù)器26生成的查詢結(jié)果(其是上面提及的響應(yīng)的另一種提及方式)可以包括名稱空間“公司a”。如果需要的話,則在向子網(wǎng)vn1(其是發(fā)起請(qǐng)求/查詢的子網(wǎng))轉(zhuǎn)發(fā)結(jié)果之前,翻譯器vn0可以從全局唯一標(biāo)識(shí)符剝離名稱空間(并且從而恢復(fù)局部唯一標(biāo)識(shí)符),這是因?yàn)樽泳W(wǎng)vn1可能不識(shí)別包括名稱空間“公司a”的結(jié)果。
雖然租戶不是“虛擬化知道的”或者換言之,不知道數(shù)據(jù)中心10的多租戶,但是if-map服務(wù)器26是虛擬化知道的,并且在關(guān)聯(lián)針對(duì)特定標(biāo)識(shí)符的會(huì)話數(shù)據(jù)與數(shù)據(jù)庫中的名稱空間:標(biāo)識(shí)符時(shí),可以使用諸如“名稱空間:標(biāo)識(shí)符”之類的格式。
在這個(gè)意義上,其可以表示虛擬交換機(jī)30a的翻譯器的vn0(作為一個(gè)示例)可以接收關(guān)于與標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的請(qǐng)求,該標(biāo)識(shí)符在發(fā)起請(qǐng)求的vn34之一內(nèi)是唯一的。然后,vn0可以翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符,以生成在vn34內(nèi)唯一的全局唯一標(biāo)識(shí)符。vn0還可以更新請(qǐng)求,以用全局唯一標(biāo)識(shí)符替換包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符并且將更新請(qǐng)求經(jīng)由虛擬網(wǎng)絡(luò)控制器22發(fā)射到if-map服務(wù)器26。
在一些實(shí)例中,如上所述,通過將指派給發(fā)起請(qǐng)求的虛擬網(wǎng)絡(luò)之一(即,在上面示例中的vn1)的名稱空間附加到標(biāo)識(shí)符以生成全局唯一標(biāo)識(shí)符,vn0可以執(zhí)行翻譯。
如上所述,通過便于多租戶,技術(shù)可以促進(jìn)if-map服務(wù)器26的更高效使用。作為執(zhí)行技術(shù)的結(jié)果,vn0可以從與發(fā)起上面描述的可以被稱為第一請(qǐng)求的vn34之一(即,上面示例中的vn1)不同的vn34之一接收另一請(qǐng)求,其中該第二請(qǐng)求可以涉及與包括在第一請(qǐng)求中的標(biāo)識(shí)符相同的標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)。該相同標(biāo)識(shí)符也可以在該另一個(gè)vn34(例如,vn2)內(nèi)是唯一的。然后,vn0可以翻譯包括在第二請(qǐng)求內(nèi)的標(biāo)識(shí)符,以生成第二全局唯一標(biāo)識(shí)符,第二全局唯一標(biāo)識(shí)符在vn34內(nèi)是唯一的并且不同于針對(duì)第一請(qǐng)求生成的另一全局唯一標(biāo)識(shí)符。vn0可以更新該第二請(qǐng)求以用第二全局唯一標(biāo)識(shí)符替換包括在第二請(qǐng)求內(nèi)的第二標(biāo)識(shí)符,并且將更新的第二請(qǐng)求發(fā)射到if-map服務(wù)器26。以這種方式,在不必虛擬化或以其他方式創(chuàng)建和保持if-map服務(wù)器26的多個(gè)實(shí)例(諸如每個(gè)客戶或租戶一個(gè))的情況下,技術(shù)可以促進(jìn)if-map服務(wù)器26內(nèi)的多租戶。
圖2b進(jìn)一步圖示圖1和圖2a的數(shù)據(jù)中心的示例細(xì)節(jié)以在不要求底層物理網(wǎng)絡(luò)中的多播支持情況下在虛擬重疊網(wǎng)絡(luò)內(nèi)提供多播服務(wù)。依照技術(shù),在這個(gè)示例中,虛擬網(wǎng)絡(luò)控制器22包括樹單元40,樹單元40被配置為創(chuàng)建或計(jì)算針對(duì)屬于虛擬網(wǎng)絡(luò)34中給定多播群組的一個(gè)或多個(gè)服務(wù)器12的多播樹。一般,樹單元40可以創(chuàng)建針對(duì)每個(gè)虛擬網(wǎng)絡(luò)34內(nèi)的每個(gè)多播群組的不同多播樹。樹單元40可以創(chuàng)建多播樹以便于針對(duì)多播群組的多播分組在虛擬網(wǎng)絡(luò)34中的兩個(gè)或更多服務(wù)器之間的遞送。然后,樹單元40將不同多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器22內(nèi)的存儲(chǔ)器42中。
在一些情況下,多播樹可以是單向多播樹,其中多播樹的根節(jié)點(diǎn)操作作為針對(duì)多播群組的多播分組的源,并且多播分組沿從根節(jié)點(diǎn)的單個(gè)、下游方向進(jìn)行通信。在其它情況下,多播樹可以是雙向多播樹,其中多播樹的任何節(jié)點(diǎn)可以操作作為針對(duì)多播群組的多播分組的源,并且多播分組可以沿從多播樹的根節(jié)點(diǎn)的上游或下游方向進(jìn)行通信。根據(jù)技術(shù),虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建雙向多播樹,這是因?yàn)樘摂M網(wǎng)絡(luò)34仿真其支持雙向多播的l2多播。
根據(jù)技術(shù),多播樹在虛擬網(wǎng)絡(luò)控制器22的集中位置處被計(jì)算,而不是由底層物理網(wǎng)絡(luò)中的服務(wù)多播群組的tor交換機(jī)16和底架交換機(jī)18以分布式方式被計(jì)算。用這種方法,服務(wù)器12連接到底層網(wǎng)絡(luò)的位置可以被考慮。例如,在數(shù)據(jù)中心中,可能期望樹單元40創(chuàng)建多播樹,使得由服務(wù)器在給定物理機(jī)架內(nèi)的復(fù)制不跨機(jī)架邊界。
在虛擬網(wǎng)絡(luò)34中多播的上下文中,在服務(wù)器12中執(zhí)行的vm36可以交換消息以了解其它服務(wù)器12中“鄰近的”多播使能的vm36。在虛擬網(wǎng)絡(luò)34的上下文中,服務(wù)器12可以被認(rèn)為是通過隧穿通過底層物理網(wǎng)絡(luò)直接可達(dá)的邏輯鄰居。在一個(gè)示例中,服務(wù)器12可以在虛擬網(wǎng)絡(luò)34中交換協(xié)議獨(dú)立的多播(pim)消息。如上所述,底層物理網(wǎng)絡(luò)可以不支持多播服務(wù),使得多播鄰居消息可以使用虛擬網(wǎng)絡(luò)34在服務(wù)器12和虛擬網(wǎng)絡(luò)控制器22之間傳達(dá)。
為了創(chuàng)建多播樹,虛擬網(wǎng)絡(luò)控制器22可以接收來自有興趣接收與特定多播群組關(guān)聯(lián)的多播分組的一個(gè)或多個(gè)服務(wù)器12的加入請(qǐng)求。虛擬網(wǎng)絡(luò)控制器22可以類似地接收來自想停止接收針對(duì)多播群組的多播分組的服務(wù)器12的離開請(qǐng)求。例如,虛擬網(wǎng)絡(luò)控制器22可以接收作為符合因特網(wǎng)群組管理協(xié)議(igmp)或另一多播協(xié)議的分組的加入或離開請(qǐng)求。加入和離開請(qǐng)求分組可以包括多播群組標(biāo)識(shí)符,以及有興趣加入或離開標(biāo)識(shí)多播群組的服務(wù)器12之一上執(zhí)行的vm36的虛擬地址。如上所述,底層網(wǎng)絡(luò)可以不支持多播服務(wù),使得針對(duì)多播群組的加入和離開請(qǐng)求可以使用虛擬網(wǎng)絡(luò)34在服務(wù)器12和虛擬網(wǎng)絡(luò)控制器22之間傳達(dá)。虛擬網(wǎng)絡(luò)控制器22可以保持針對(duì)每個(gè)虛擬網(wǎng)絡(luò)34的將vm36映射到多播群組的成員信息。
然后,基于針對(duì)物理網(wǎng)絡(luò)和關(guān)聯(lián)虛擬網(wǎng)絡(luò)34保持的成員信息和路由信息,虛擬網(wǎng)絡(luò)控制器22的樹單元40可以創(chuàng)建給定多播群組的多播樹。例如,基于包括屬于多播群組的vm36的服務(wù)器12、物理網(wǎng)絡(luò)中在包括在多播群組中的服務(wù)器12之間的可用路徑、以及虛擬網(wǎng)絡(luò)34中服務(wù)器12之間的隧道,樹單元40可以確定多播樹的拓?fù)浣Y(jié)構(gòu)。
另外,樹單元40可以基于針對(duì)包括在多播樹的多播群組中的每個(gè)服務(wù)器12的復(fù)制限制來確定多播樹的拓?fù)浣Y(jié)構(gòu)。在一些情況下,樹單元40可以計(jì)算多播樹,以便最小化針對(duì)每個(gè)服務(wù)器的復(fù)制限制并且跨樹平衡復(fù)制。通過使用這種方法,樹單元40可以創(chuàng)建多播樹,使得每個(gè)服務(wù)器12執(zhí)行類似的、小量的復(fù)制,而不是一個(gè)或兩個(gè)服務(wù)器必須承擔(dān)復(fù)制分組并且將分組轉(zhuǎn)發(fā)到屬于多播群組的所有服務(wù)器的負(fù)載。
作為示例,樹單元40可以創(chuàng)建多播樹以最小化復(fù)制限制,使得每個(gè)服務(wù)器12至多發(fā)送若干(n)分組副本。復(fù)制限制可以被選擇為大于或等于2并且遠(yuǎn)少于多播群組中服務(wù)器的量(m),即2≤n<<m。在另一示例中,復(fù)制限制可以被選擇為少于或等于設(shè)備減去1的量,即2≤n≤m-1。在又一示例中,針對(duì)每個(gè)服務(wù)器12的復(fù)制限制可以被配置為固定在某個(gè)值,例如,8或16。
在一些情況下,樹單元40可以被配置為至少基于多播群組中服務(wù)器的數(shù)目(m)和延遲要求來確定復(fù)制限制(n),延遲要求與復(fù)制階段或級(jí)別的數(shù)目(即,多播樹的深度)成比例。在這種情況下,復(fù)制限制可以基于平衡兩個(gè)因素來確定:最小化多播樹的樹深度(d)和最小化針對(duì)多播樹中每個(gè)服務(wù)器的復(fù)制限制(n)。樹單元40可以能夠配置為給予樹深度或復(fù)制限制更大的權(quán)重。例如,可以確定復(fù)制限制以便滿足[logn(m)]=d。在一些情況下,針對(duì)給定服務(wù)器12的復(fù)制的數(shù)目可以是服務(wù)器12的復(fù)制單元40的性能的函數(shù)。例如,樹單元40可以在存儲(chǔ)器42中保持表,該表基于服務(wù)器12的類型給出復(fù)制計(jì)數(shù)。如果針對(duì)多播群組中的服務(wù)器12的最小表?xiàng)l目等于k,則2≤n≤k使得如果[logk(m)]小于d并且[logn(m)]=d。下面關(guān)于圖6a至圖6b和圖8更詳細(xì)地描述用于最小化復(fù)制限制以及平衡復(fù)制限制和樹深度的若干方法。
虛擬網(wǎng)絡(luò)控制器22還可以被配置為生成針對(duì)生成多播樹的每個(gè)鏈路方向的唯一隧道封裝。在多播樹中,每個(gè)方向上的隧道封裝是唯一的,因?yàn)閮蓚€(gè)服務(wù)器12之間的鏈路的每個(gè)方向具有源ip地址(sip)、目的地ip地址(dip)和多播群組id(mgid)的不同組合。以有序元組{sip,dip,mgid}的這種組合不會(huì)針對(duì)任何其它群組或鏈路或相同鏈路的其它方向重復(fù)。用這種方法,服務(wù)器12可以使用針對(duì)每個(gè)分組副本的不同隧道封裝報(bào)頭。
在數(shù)據(jù)中心10中,服務(wù)器12之間通過交換機(jī)結(jié)構(gòu)14的路徑可以是基本上同等可能的,使得轉(zhuǎn)發(fā)可以不限于由底層物理網(wǎng)絡(luò)中的多播算法選擇的某些鏈路。不同隧道封裝報(bào)頭允許物理網(wǎng)絡(luò)中的多個(gè)等價(jià)路徑被用于相同的多播群組,這高效地利用網(wǎng)絡(luò)的帶寬。其中多播樹中的每個(gè)鏈路方向具有唯一隧道封裝報(bào)頭的配置可以使得虛擬網(wǎng)絡(luò)控制器22能夠使流量在底層物理網(wǎng)絡(luò)中的多個(gè)等價(jià)路徑之上的分布隨機(jī)化。
為了執(zhí)行虛擬網(wǎng)絡(luò)34中的多播,虛擬網(wǎng)絡(luò)控制器22在虛擬網(wǎng)絡(luò)34中將針對(duì)指定多播群組創(chuàng)建的多播樹傳達(dá)給屬于多播群組的服務(wù)器12。在一些示例中,虛擬網(wǎng)絡(luò)控制器22將多播樹作為包括多播樹的與一個(gè)特定服務(wù)器12相關(guān)的一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目的樹轉(zhuǎn)發(fā)狀態(tài)傳達(dá)給服務(wù)器12之一。轉(zhuǎn)發(fā)條目可以存儲(chǔ)在與虛擬網(wǎng)絡(luò)34對(duì)應(yīng)的nft32中。樹轉(zhuǎn)發(fā)狀態(tài)可以包括針對(duì)服務(wù)器12的虛擬交換機(jī)30的多播樹的下一跳信息。下一跳可以是鏈接的下一跳,該鏈接的下一跳指定由虛擬交換機(jī)30在轉(zhuǎn)發(fā)分組時(shí)執(zhí)行對(duì)多播群組的每個(gè)多播分組的復(fù)制。
傳達(dá)的多播樹指示服務(wù)器12的虛擬交換機(jī)30根據(jù)多播樹復(fù)制多播分組并且向其它服務(wù)器12轉(zhuǎn)發(fā)多播分組。如在圖2a中圖示的,虛擬交換機(jī)30各自包括復(fù)制單元44a至44x(“rep.單元44”)中的一個(gè)對(duì)應(yīng)復(fù)制單元。復(fù)制單元44基于多播樹的拓?fù)浣Y(jié)構(gòu)復(fù)制接收到的多播分組。然后,虛擬交換機(jī)30使用隧道封裝依照如由虛擬網(wǎng)絡(luò)控制器22配置的nft32之一將分組副本轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它服務(wù)器。
根據(jù)技術(shù),例如,服務(wù)器12a在虛擬網(wǎng)絡(luò)34中從虛擬網(wǎng)絡(luò)控制器22接收針對(duì)服務(wù)器12a屬于的多播群組的多播樹。然后,服務(wù)器12a可以接收針對(duì)多播群組的多播分組,該多播分組將根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上被轉(zhuǎn)發(fā)。服務(wù)器12a的虛擬交換機(jī)30a使用復(fù)制單元44a根據(jù)根據(jù)接收到的雙向多播復(fù)制針對(duì)多播群組的多播分組。如果服務(wù)器12a是多播樹中的源服務(wù)器或中間服務(wù)器,則復(fù)制單元44a可以創(chuàng)建如多播樹所要求的分組的一個(gè)或多個(gè)副本。根據(jù)多播樹,服務(wù)器12a的復(fù)制單元44a可以生成不多于n個(gè)副本的多播分組。服務(wù)器12b至12x中屬于相同多播群組的一個(gè)或多個(gè)服務(wù)器也可以從虛擬網(wǎng)絡(luò)控制器22接收多播樹。服務(wù)器12b至12x中每個(gè)服務(wù)器的復(fù)制單元44b至44x也可以根據(jù)多播樹生成多播分組的一些副本。在一些情況下,副本的數(shù)目可以與由復(fù)制單元44a生成的副本數(shù)目相同。在其它情況下,副本的數(shù)目可以不同于由復(fù)制單元44a生成的副本數(shù)目。
然后,虛擬交換機(jī)30a根據(jù)多播樹使用隧道封裝將復(fù)制的多播分組在虛擬網(wǎng)絡(luò)中轉(zhuǎn)發(fā)到多播群組的其它服務(wù)器12。虛擬交換機(jī)30a可以將分組的每個(gè)副本封裝在如由虛擬網(wǎng)絡(luò)控制器22配置的、如由虛擬交換機(jī)30a中的nft32之一指定的唯一隧道封裝報(bào)頭中。用這種方法,底層網(wǎng)絡(luò)中的多個(gè)等價(jià)路徑可以用于相同的多播群組,以高效使用帶寬。唯一隧道封裝報(bào)頭可以由虛擬網(wǎng)絡(luò)控制器22配置,使得多播樹中的每個(gè)鏈路方向具有唯一的虛擬網(wǎng)絡(luò)隧道封裝。多播分組的復(fù)制和轉(zhuǎn)發(fā)僅在虛擬網(wǎng)絡(luò)中由服務(wù)器12上執(zhí)行的虛擬交換機(jī)30執(zhí)行。沒有復(fù)制在底層網(wǎng)絡(luò)內(nèi)執(zhí)行。用這種方法,技術(shù)使得多播服務(wù)能夠在虛擬網(wǎng)絡(luò)內(nèi)進(jìn)行,而不要求底層網(wǎng)絡(luò)中的多播支持。
圖3是圖示示例系統(tǒng)50的另一框圖,示例系統(tǒng)50圖示了在如本文中描述的底架交換機(jī)和tor交換機(jī)內(nèi)的路由信息的示例配置。例如,圖3的系統(tǒng)50可以對(duì)應(yīng)于圖1和圖2中圖示的數(shù)據(jù)中心10的一部分。
在這個(gè)示例中,其可以是圖1的任何底架交換機(jī)18的底架交換機(jī)52(“ch52”)通過底架鏈路60a和底架鏈路60b(“底架鏈路60”)分別耦合到架頂(tor)交換機(jī)58a至58b(“tor58”)。在一些示例中,tor58可以是圖1的任何tor16。在圖3的示例中,tor58通過tor鏈路62a至62d(“tor鏈路62”)還耦合到服務(wù)器51a至51b(“服務(wù)器51”)。服務(wù)器51可以是任何服務(wù)器210(圖1)。這里,服務(wù)器51與兩個(gè)tor58都進(jìn)行通信,并且可以物理駐留在任一關(guān)聯(lián)的機(jī)架中。tor58各自與包括底架交換機(jī)52的若干網(wǎng)絡(luò)交換機(jī)進(jìn)行通信。
底架交換機(jī)52具有與接口(用于與所示網(wǎng)絡(luò)進(jìn)行通信)進(jìn)行通信的處理器54a,以及將存儲(chǔ)器(未示出)連接到處理器54a的總線。存儲(chǔ)器可以存儲(chǔ)若干軟件模塊。這些模塊包括控制網(wǎng)絡(luò)路由的軟件,諸如包含用于遵照ospf協(xié)議操作底架交換機(jī)52的指令的ospf模塊(未示出)。底架交換機(jī)52保持包含針對(duì)分組的路由信息的路由表(“rt表”)56a,其描述網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。例如,路由表56a可以是分組目的地因特網(wǎng)協(xié)議(ip)地址以及例如表示為到網(wǎng)絡(luò)部件的鏈路的對(duì)應(yīng)下一跳的表。本文中提及ip可以指ipv4或ipv6。
tor58各自具有相應(yīng)處理器54b、54c、與底架交換機(jī)52進(jìn)行通信的接口、以及存儲(chǔ)器(未示出)。如上所述,每個(gè)存儲(chǔ)器包含包括ospf模塊的軟件模塊以及路由表56b、56c。
諸如通過使用諸如開放式最短路徑優(yōu)選(ospf)或is-is之類的鏈路狀態(tài)路由協(xié)議,tor58和底架交換機(jī)52可以交換指定可用路由的路由信息。tor58可以被配置作為不同路由子網(wǎng)的所有者。例如,tor58a被配置作為其是圖2a的示例中的子網(wǎng)10.10.10.0/24的子網(wǎng)1的所有者,并且tor58a被配置作為其是圖2a和圖2b的示例中的子網(wǎng)10.10.11.0/24的子網(wǎng)2的所有者。作為它們相應(yīng)子網(wǎng)的所有者,tor58本地存儲(chǔ)針對(duì)它們子網(wǎng)的個(gè)體路由,并且不需要播送所有路由通告直到底架交換機(jī)52。備選地,一般tor58將僅向底架交換機(jī)52通告它們的子網(wǎng)地址。
基于從tor58接收的路由通告,底架交換機(jī)52保持路由表(“rt表”)56a,該路由表包括表示為由tor58可達(dá)的子網(wǎng)的路由。在圖2a的示例中,rt表56a存儲(chǔ)路由,該路由指示目的地為子網(wǎng)10.10.11.0/24內(nèi)的地址的流量可以在鏈路60b上被轉(zhuǎn)發(fā)到tor58b,并且目的地為子網(wǎng)10.10.10.0/24內(nèi)的地址的流量可以在鏈路60a上被轉(zhuǎn)發(fā)到tor58a。
在典型的操作中,底架交換機(jī)52通過其網(wǎng)絡(luò)接口接收因特網(wǎng)協(xié)議(ip)分組,讀取分組的目的地ip地址,在路由表56a上查找這些地址以確定對(duì)應(yīng)目的地部件,并且據(jù)此轉(zhuǎn)發(fā)分組。例如,如果接收分組的目的地ip地址是10.10.10.0(即,tor58a的子網(wǎng)的地址),底架交換機(jī)52的路由表指示分組將經(jīng)由鏈路60a被發(fā)送到tor58a,并且底架交換機(jī)52據(jù)此發(fā)射分組,最終以用于轉(zhuǎn)發(fā)到一個(gè)指定的服務(wù)器51。
類似地,每個(gè)tor58通過其網(wǎng)絡(luò)接口接收因特網(wǎng)協(xié)議(ip)分組,讀取分組的目的地ip地址,在其路由表56上查找這些地址以確定對(duì)應(yīng)目的地部件,并且根據(jù)查找結(jié)果轉(zhuǎn)發(fā)分組。在一些情況下,網(wǎng)絡(luò)元件(例如,tor48之一或底架交換機(jī)52)可以接收具有為1的ttl值的ip分組。結(jié)果,網(wǎng)絡(luò)元件將icmp超時(shí)消息返回到分組的源ip地址。依照本文中描述的技術(shù),服務(wù)器51可以通過發(fā)出具有迭代ttl值的連續(xù)流跟蹤分組而“走過”系統(tǒng)50的物理網(wǎng)絡(luò)路徑,并且作為響應(yīng),從沿著路徑的連續(xù)物理網(wǎng)絡(luò)元件接收icmp超時(shí)消息。
在一個(gè)示例迭代中,服務(wù)器51a向tor58a發(fā)送具有設(shè)置為1的ttl值的流跟蹤分組66(ip分組)。流跟蹤分組66可以表示圖2a的流跟蹤分組45中的任何一個(gè)。tor58a接收流跟蹤分組66,使ttl值遞減并且因?yàn)閠tl值現(xiàn)在是0,將icmp超時(shí)消息68返回到服務(wù)器51a。
圖4是圖示依照本公開的一個(gè)或多個(gè)實(shí)施例的用于便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的虛擬網(wǎng)絡(luò)控制器22的示例實(shí)施方式的框圖。例如,虛擬網(wǎng)絡(luò)控制器22可以對(duì)應(yīng)于圖1和圖2的數(shù)據(jù)中心10的虛擬網(wǎng)絡(luò)控制器22。
圖4的虛擬網(wǎng)絡(luò)控制器(vnc)22圖示vnc的分布式實(shí)施方式,vnc的分布式實(shí)施方式包括多個(gè)vnc節(jié)點(diǎn)80a至80n(統(tǒng)稱為“vnc節(jié)點(diǎn)80”),以執(zhí)行數(shù)據(jù)中心vnc的功能,從而包括管理針對(duì)在數(shù)據(jù)中心內(nèi)實(shí)現(xiàn)的一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的虛擬交換機(jī)的操作。每個(gè)vnc節(jié)點(diǎn)80可以表示數(shù)據(jù)中心的不同服務(wù)器(例如,圖1至圖2的服務(wù)器12中的任何一個(gè)服務(wù)器),或者備選地,通過例如服務(wù)提供商網(wǎng)絡(luò)的邊緣路由器或者數(shù)據(jù)中心網(wǎng)絡(luò)的客戶邊緣設(shè)備耦合到ip結(jié)構(gòu)的服務(wù)器或控制器。在一些實(shí)例中,一些vnc節(jié)點(diǎn)80可以作為分離虛擬機(jī)執(zhí)行在相同服務(wù)器上。
每個(gè)vnc節(jié)點(diǎn)80可以控制諸如服務(wù)器、在服務(wù)器內(nèi)執(zhí)行的個(gè)體虛擬交換機(jī)、與虛擬交換機(jī)關(guān)聯(lián)的個(gè)體接口、底架交換機(jī)、tor交換機(jī)和/或通信鏈路之類的數(shù)據(jù)中心元件的不同、非重疊集。vnc節(jié)點(diǎn)80使用對(duì)等鏈路86與彼此對(duì)等,以交換針對(duì)包括分布式數(shù)據(jù)庫82a至82k(統(tǒng)稱為“分布式數(shù)據(jù)庫82”)的分布式數(shù)據(jù)庫的信息以及針對(duì)路由信息庫84a至84n(統(tǒng)稱為“rib84”)的路由信息(例如路由)。對(duì)等鏈路86可以表示針對(duì)路由協(xié)議的對(duì)等鏈路(諸如邊界網(wǎng)關(guān)協(xié)議(bgp)實(shí)施方式),或者針對(duì)通過其vnc節(jié)點(diǎn)80可以協(xié)調(diào)以根據(jù)對(duì)等關(guān)系共享信息的另一對(duì)等協(xié)議的對(duì)等鏈路。
vnc22的vnc節(jié)點(diǎn)80包括各自具有例如一個(gè)或多個(gè)路由表的相應(yīng)rib84,一個(gè)或多個(gè)路由表存儲(chǔ)針對(duì)由vnc22控制的數(shù)據(jù)中心的物理網(wǎng)絡(luò)和/或一個(gè)或多個(gè)重疊網(wǎng)絡(luò)的路由信息。在一些實(shí)例中,rib84之一(例如,rib84a)可以存儲(chǔ)針對(duì)操作在數(shù)據(jù)中心內(nèi)并且由對(duì)應(yīng)vnc節(jié)點(diǎn)80(例如,vnc節(jié)點(diǎn)80a)控制的任何虛擬網(wǎng)絡(luò)的完整路由表。
一般,分布式數(shù)據(jù)庫82定義由分布式vnc22控制的數(shù)據(jù)中心的虛擬網(wǎng)絡(luò)的配置或者描述由分布式vnc22控制的數(shù)據(jù)中心的虛擬網(wǎng)絡(luò)的操作。例如,分布式數(shù)據(jù)庫82可以包括描述以下內(nèi)容的數(shù)據(jù)庫:一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的配置、數(shù)據(jù)中心服務(wù)器的硬件/軟件配置和功能、針對(duì)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)和/或底層物理網(wǎng)絡(luò)的性能或診斷信息、包括服務(wù)器/底架交換機(jī)/tor交換機(jī)接口和互連鏈路的底層物理網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)等。分布式數(shù)據(jù)庫82可以各自使用例如分布式散列表(dht)來實(shí)現(xiàn),以提供針對(duì)由不同vnc節(jié)點(diǎn)80存儲(chǔ)的分布式數(shù)據(jù)庫的密鑰/值對(duì)的查找服務(wù)。vnc節(jié)點(diǎn)80可以請(qǐng)求服務(wù)器12返回通過虛擬網(wǎng)絡(luò)的針對(duì)網(wǎng)絡(luò)流的物理路徑。然后,vnc節(jié)點(diǎn)80可以將物理路徑存儲(chǔ)到分布式數(shù)據(jù)庫82之一。在一些實(shí)例中,任何vnc節(jié)點(diǎn)80可以使用本文中描述的如由服務(wù)器12執(zhí)行的技術(shù)來確定通過虛擬網(wǎng)絡(luò)的針對(duì)網(wǎng)絡(luò)流的物理路徑。
依照本公開的技術(shù)的方面,在vn代理35通過物理網(wǎng)絡(luò)向虛擬網(wǎng)絡(luò)控制器22發(fā)送消息以觸發(fā)虛擬網(wǎng)絡(luò)控制器22用指定路由更新網(wǎng)絡(luò)轉(zhuǎn)發(fā)表280以重新路由網(wǎng)絡(luò)流量時(shí),這些通信可以諸如經(jīng)由像bgp那樣的路由協(xié)議或其它對(duì)等協(xié)議通過對(duì)等鏈路66發(fā)生。類似地,一旦已經(jīng)利用虛擬網(wǎng)絡(luò)控制器22建立初始接觸(例如,建立bgp或其它通信會(huì)話),虛擬網(wǎng)絡(luò)控制器22可以經(jīng)由對(duì)等鏈路66向vn代理35a發(fā)送重疊路由。vn代理35a可以經(jīng)由對(duì)等鏈路66利用重疊路由從虛擬網(wǎng)絡(luò)控制器22接收消息。
圖5是圖示依照本公開的一個(gè)或多個(gè)實(shí)施例的用于便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的虛擬網(wǎng)絡(luò)控制器100的示例實(shí)施方式的框圖。例如,虛擬網(wǎng)絡(luò)控制器100可以對(duì)應(yīng)于圖1和圖2的數(shù)據(jù)中心10的虛擬網(wǎng)絡(luò)控制器22或者圖4的虛擬網(wǎng)絡(luò)控制器22。
如在圖5的示例中圖示的,分布式虛擬網(wǎng)絡(luò)控制器(vnc)100包括一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)控制器(“vnc”)節(jié)點(diǎn)102a至102n(統(tǒng)稱為“vnc節(jié)點(diǎn)102”)。每個(gè)vnc節(jié)點(diǎn)102可以表示圖4的虛擬網(wǎng)絡(luò)控制器22的任何vnc節(jié)點(diǎn)80。根據(jù)對(duì)等協(xié)議與彼此對(duì)等的vnc節(jié)點(diǎn)102通過網(wǎng)絡(luò)160進(jìn)行操作。網(wǎng)絡(luò)160可以表示圖1交換機(jī)結(jié)構(gòu)14和/或ip結(jié)構(gòu)20的示例實(shí)例。在圖示的示例中,vnc節(jié)點(diǎn)102使用邊界網(wǎng)關(guān)協(xié)議(bgp)實(shí)施方式(對(duì)等協(xié)議的示例)與彼此對(duì)等。在這個(gè)意義上,vnc節(jié)點(diǎn)102a和102n可以表示使用對(duì)等協(xié)議對(duì)等的第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備。vnc節(jié)點(diǎn)102包括相應(yīng)網(wǎng)絡(luò)發(fā)現(xiàn)模塊114a至114n,以發(fā)現(xiàn)網(wǎng)絡(luò)160的網(wǎng)絡(luò)元件。
vnc節(jié)點(diǎn)102使用對(duì)等協(xié)議向彼此提供與至少部分由vnc節(jié)點(diǎn)102管理的虛擬網(wǎng)絡(luò)的相應(yīng)元件有關(guān)的信息。例如,vnc節(jié)點(diǎn)102a可以管理作為用于虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)交換機(jī)進(jìn)行操作的一個(gè)或多個(gè)服務(wù)器的第一集。vnc節(jié)點(diǎn)102a可以通過bgp118a向vnc節(jié)點(diǎn)102n發(fā)送涉及服務(wù)器的第一集的管理或操作的信息。由vnc節(jié)點(diǎn)102管理的其它元件可以包括例如網(wǎng)絡(luò)控制器和/或器具、網(wǎng)絡(luò)基礎(chǔ)結(jié)構(gòu)設(shè)備(例如,l2或l3交換機(jī))、通信鏈路、防火墻以及vnc節(jié)點(diǎn)102。因?yàn)関nc節(jié)點(diǎn)102具有對(duì)等關(guān)系而不是主從關(guān)系,信息可以在vnc節(jié)點(diǎn)102之間充分容易地共享。另外,vnc節(jié)點(diǎn)102的硬件和/或軟件可以充分容易地替換,從而提供令人滿意的資源可備選性。
每個(gè)vnc節(jié)點(diǎn)102可以包括大致類似的部件以用于執(zhí)行大致類似的功能,下文中主要關(guān)于vnc節(jié)點(diǎn)102a描述所述功能。vnc節(jié)點(diǎn)102a可以包括分析數(shù)據(jù)庫106a以用于存儲(chǔ)與由vnc節(jié)點(diǎn)102a管理的元件的第一集有關(guān)的診斷信息。vnc節(jié)點(diǎn)102a可以共享與由vnc節(jié)點(diǎn)102a管理的元件的第一集的一個(gè)或多個(gè)元件有關(guān)的并且存儲(chǔ)在分析數(shù)據(jù)庫106中的至少一些診斷信息,以及用于接收與由其它vnc節(jié)點(diǎn)102管理的任何元件有關(guān)的至少一些診斷信息。分析數(shù)據(jù)庫106a可以表示例如分布式散列表(dht),或者用于與其它vnc節(jié)點(diǎn)102合作以分布式方式存儲(chǔ)針對(duì)網(wǎng)絡(luò)元件的診斷信息的任何適合數(shù)據(jù)結(jié)構(gòu)。分析數(shù)據(jù)庫106a至106n(統(tǒng)稱為“分析數(shù)據(jù)庫106”)可以至少部分表示圖4的分布式虛擬網(wǎng)絡(luò)控制器22的分布式數(shù)據(jù)庫82之一。
vnc節(jié)點(diǎn)102a可以包括配置數(shù)據(jù)庫110a以用于存儲(chǔ)與由vnc節(jié)點(diǎn)102a管理的元件的第一集有關(guān)的配置信息。vnc節(jié)點(diǎn)102a的控制平面部件可以使用接口144a將配置信息存儲(chǔ)到配置數(shù)據(jù)庫110a,接口144a可以表示針對(duì)元數(shù)據(jù)接入點(diǎn)(if-map)協(xié)議實(shí)施方式的接口。vnc節(jié)點(diǎn)102a可以共享與由vnc節(jié)點(diǎn)102a管理的元件的第一集的一個(gè)或多個(gè)元件有關(guān)的并且存儲(chǔ)在配置數(shù)據(jù)庫110a中的至少一些配置信息,以及用于接收與由其它vnc節(jié)點(diǎn)102管理的任何元件有關(guān)的至少一些配置信息。配置數(shù)據(jù)庫110a可以表示例如分布式散列表(dht),或者用于與其它vnc節(jié)點(diǎn)102合作以分布式方式存儲(chǔ)針對(duì)網(wǎng)絡(luò)元件的配置信息的任何適合數(shù)據(jù)結(jié)構(gòu)。配置數(shù)據(jù)庫110a至110n(統(tǒng)稱為“配置數(shù)據(jù)庫110”)可以至少部分表示圖4的分布式虛擬網(wǎng)絡(luò)控制器22的分布式數(shù)據(jù)庫82之一。rib84的一部分可以由控制平面vm112存儲(chǔ),以便于網(wǎng)絡(luò)發(fā)現(xiàn)模塊和bgp118的操作。
虛擬網(wǎng)絡(luò)控制器100可以執(zhí)行由模塊130表示的圖示虛擬網(wǎng)絡(luò)控制器操作中的任何一個(gè)或多個(gè),模塊130可以包括編配132、用戶接口134、vnc全局負(fù)載平衡136和一個(gè)或多個(gè)應(yīng)用138。響應(yīng)于動(dòng)態(tài)需求環(huán)境,vnc100執(zhí)行編配模塊132以通過以下方式便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作:例如大量生成/移除數(shù)據(jù)中心服務(wù)器中的虛擬機(jī)、調(diào)整計(jì)算能力、分配網(wǎng)絡(luò)存儲(chǔ)資源、以及修改連接虛擬網(wǎng)絡(luò)的虛擬交換機(jī)的虛擬拓?fù)浣Y(jié)構(gòu)。由vnc100執(zhí)行的vnc全局負(fù)載平衡136支持例如在vnc節(jié)點(diǎn)102之間的分析、配置、通信任務(wù)的負(fù)載平衡。應(yīng)用138可以表示由vnc節(jié)點(diǎn)102執(zhí)行的一個(gè)或多個(gè)網(wǎng)絡(luò)應(yīng)用,以例如改變物理和/或虛擬網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)、添加服務(wù)、或者影響分組轉(zhuǎn)發(fā)。
用戶接口134包括管理員(或軟件代理)可用于控制vnc節(jié)點(diǎn)102的操作的接口。例如,用戶接口134可以包括通過其管理員可以修改例如vnc節(jié)點(diǎn)102a的配置數(shù)據(jù)庫110a的方法。由vnc100操作的一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的管理可以通過提供單點(diǎn)管理的統(tǒng)一用戶接口134進(jìn)行,這可以降低一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的管理成本。
vnc節(jié)點(diǎn)102a可以包括控制平面虛擬機(jī)(vm)112a,控制平面虛擬機(jī)(vm)112a執(zhí)行控制平面協(xié)議以便于本文中描述的分布式vnc技術(shù)。在一些實(shí)例中控制平面vm112a可以表示本機(jī)進(jìn)程。在圖示的示例中,控制vm112a執(zhí)行bgp118a以向例如vnc節(jié)點(diǎn)102n的控制平面虛擬機(jī)112n提供與由vnc節(jié)點(diǎn)102a管理的元件的第一集有關(guān)的信息??刂破矫鎣m112a可以使用基于開放標(biāo)準(zhǔn)的協(xié)議(例如,基于bgp的l3vpn),以利用其它控制平面實(shí)例和/或其它第三方聯(lián)網(wǎng)設(shè)備來分布關(guān)于其虛擬網(wǎng)絡(luò)的信息。給定根據(jù)本文中描述的一個(gè)或多個(gè)方面的基于對(duì)等的模型,不同控制平面實(shí)例(例如,控制平面vm112a至112n的不同實(shí)例)可以執(zhí)行不同的軟件版本。在一個(gè)或多個(gè)方面中,例如,控制平面vm112a可以包括一種類型軟件的特定版本,并且控制平面vm112n可以包括相同類型軟件的不同版本??刂乒?jié)點(diǎn)設(shè)備的對(duì)等配置可以使得能夠使用針對(duì)控制平面vm112a至112n的不同軟件版本。由相應(yīng)vnc節(jié)點(diǎn)102執(zhí)行多個(gè)控制平面vm可以防止單點(diǎn)故障的出現(xiàn)。
控制平面vm112a使用通過網(wǎng)絡(luò)160進(jìn)行操作的通信協(xié)議與虛擬網(wǎng)絡(luò)交換機(jī)(例如,圖示的由服務(wù)器140執(zhí)行的vm交換機(jī)174)進(jìn)行通信。虛擬網(wǎng)絡(luò)交換機(jī)便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的重疊網(wǎng)絡(luò)。在圖示的示例中,控制平面vm112a使用可擴(kuò)展消息傳遞和到場協(xié)議(xmpp)116a以通過xmpp接口150a與至少虛擬網(wǎng)絡(luò)交換機(jī)174進(jìn)行通信。虛擬網(wǎng)絡(luò)路由數(shù)據(jù)、統(tǒng)計(jì)信息收集、日志以及配置信息可以依照xmpp116a作為xml文檔被發(fā)送,以用于在控制平面vm112a和虛擬網(wǎng)絡(luò)交換機(jī)之間的通信??刂破矫鎣m112a可以轉(zhuǎn)而向其它其它xmpp服務(wù)器(諸如,分析收集器)路由數(shù)據(jù),或者可以代表一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)交換機(jī)檢索配置信息??刂破矫鎣m112a可以進(jìn)一步執(zhí)行通信接口144a,以用于與配置虛擬機(jī)(vm)108a(與配置數(shù)據(jù)庫110a關(guān)聯(lián))進(jìn)行通信。通信接口144a可以表示if-map接口。
vnc節(jié)點(diǎn)102a可以進(jìn)一步包括配置vm108a,以將針對(duì)元件的第一集的配置信息存儲(chǔ)到配置數(shù)據(jù)庫110a并且管理配置數(shù)據(jù)庫110a。盡管被描述為虛擬機(jī),在一些方面中配置vm108a可以表示在vnc節(jié)點(diǎn)102a的操作系統(tǒng)上執(zhí)行的本機(jī)進(jìn)程。配置vm108a和控制平面vm112a可以使用if-map通過通信接口144a并且使用xmpp通過通信接口146a進(jìn)行通信。在一些方面中,配置vm108a可以包括可水平擴(kuò)展多租戶if-map服務(wù)器以及表示配置數(shù)據(jù)庫110a的基于分布式散列表(dht)的if-map數(shù)據(jù)庫。在一些方面中,配置vm108a可以包括配置翻譯器,配置翻譯器可以將用戶友好更高級(jí)別虛擬網(wǎng)絡(luò)配置翻譯成基于標(biāo)準(zhǔn)的協(xié)議配置(例如,bgpl3vpn配置),該基于標(biāo)準(zhǔn)的協(xié)議配置可以使用配置數(shù)據(jù)庫110a來存儲(chǔ)。通信接口140可以包括if-map接口以用于與其它網(wǎng)絡(luò)元件進(jìn)行通信。假定if-map模式可以動(dòng)態(tài)更新,使用if-map可以使虛擬網(wǎng)絡(luò)配置的存儲(chǔ)和管理非常靈活和可擴(kuò)展。有利地,虛擬網(wǎng)絡(luò)控制器100的方面對(duì)于新應(yīng)用138而言可以是靈活的。
依照本公開中描述的技術(shù)的各種方面,一個(gè)或多個(gè)配置vm108的翻譯器可以提供翻譯,以便于if-map服務(wù)器/數(shù)據(jù)庫內(nèi)的多租戶。也就是說,上面討論的這些翻譯器可以執(zhí)行本公開中描述的技術(shù),以將對(duì)于一個(gè)發(fā)起配置vm108唯一、但是跨所有配置vm108全局不唯一的標(biāo)識(shí)符翻譯成全局唯一標(biāo)識(shí)符,以用上面描述的方式便于if-map服務(wù)器/數(shù)據(jù)庫內(nèi)的多租戶。在這方面,這些翻譯器可以執(zhí)行與如上面關(guān)于圖3的示例描述的由vn58執(zhí)行的翻譯相似的翻譯。
vnc節(jié)點(diǎn)102a可以進(jìn)一步包括分析虛擬機(jī)(vm)104a以存儲(chǔ)與至少由vnc節(jié)點(diǎn)102a管理的元件的第一集有關(guān)的診斷信息(和/或可見性信息)??刂破矫鎣m和分析vm104可以使用xmpp實(shí)施方式通過通信接口146a進(jìn)行通信。盡管被描述為虛擬機(jī),分析vm104a在一些方面中可以表示在vnc節(jié)點(diǎn)102a的操作系統(tǒng)上執(zhí)行的本機(jī)進(jìn)程。
分析vm104a可以包括分析數(shù)據(jù)庫106a,分析數(shù)據(jù)庫106a可以表示存儲(chǔ)針對(duì)虛擬網(wǎng)絡(luò)的可見性數(shù)據(jù)的分布式數(shù)據(jù)庫的示例,諸如圖4的分布式虛擬網(wǎng)絡(luò)控制器22的分布式數(shù)據(jù)庫82之一??梢娦孕畔⒖梢悦枋龇植际絭nc100本身和客戶網(wǎng)絡(luò)兩者的可見性。分布式數(shù)據(jù)庫可以包括在第一側(cè)的xmpp接口以及在第二側(cè)的rest/jason/xmpp接口。
虛擬網(wǎng)絡(luò)交換機(jī)174可以實(shí)現(xiàn)針對(duì)一個(gè)或多個(gè)端點(diǎn)和/或一個(gè)或多個(gè)主機(jī)的層3轉(zhuǎn)發(fā)和策略強(qiáng)制執(zhí)行點(diǎn)。由于來自控制平面vm112a的配置,一個(gè)或多個(gè)端點(diǎn)或者一個(gè)和/或一個(gè)或多個(gè)主機(jī)可以被分類到虛擬網(wǎng)絡(luò)中??刂破矫鎣m112a還可以按照路由將針對(duì)每個(gè)端點(diǎn)的虛擬到物理映射分布到所有其它端點(diǎn)。這些路由可以給出將虛擬ip映射到物理ip的下一跳以及所使用的封裝技術(shù)(例如,ipinip、nvgre、vxlan等之一)。虛擬網(wǎng)絡(luò)交換機(jī)174可以不知道所使用的實(shí)際隧道封裝。例如通過使用地址解析協(xié)議(arp)、動(dòng)態(tài)主機(jī)配置協(xié)議(dhcp)、域名服務(wù)(dns)等之一,虛擬網(wǎng)絡(luò)交換機(jī)174還可以捕集有趣的層2(l2)分組、播送分組、和/或?qū)崿F(xiàn)針對(duì)分組的代理。
在一些情況下,不同vnc節(jié)點(diǎn)102可以由不同供應(yīng)商提供。然而,vnc節(jié)點(diǎn)102的對(duì)等配置可以使得能夠使用由不同供應(yīng)商提供的不同硬件和/或軟件,以實(shí)現(xiàn)分布式vnc100的vnc節(jié)點(diǎn)102。不論物理網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、接入類型和/或位置,根據(jù)上面描述的技術(shù)進(jìn)行操作的系統(tǒng)可以向終端主機(jī)提供網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的邏輯視圖。分布式vnc100為網(wǎng)絡(luò)運(yùn)營商和/或應(yīng)用提供編程方法以改變拓?fù)浣Y(jié)構(gòu)、影響分組轉(zhuǎn)發(fā)和/或添加服務(wù),以及例如防火墻的網(wǎng)絡(luò)服務(wù)的水平擴(kuò)展,而不改變網(wǎng)絡(luò)的終端主機(jī)視圖。
控制平面vm112可以請(qǐng)求服務(wù)器12返回通過虛擬網(wǎng)絡(luò)的針對(duì)網(wǎng)絡(luò)流的物理路徑。在控制平面vm112接收到物理路徑的同時(shí),對(duì)應(yīng)分析vm104可以將物理路徑存儲(chǔ)到對(duì)應(yīng)分析數(shù)據(jù)庫106。在一些實(shí)例中,任何vnc節(jié)點(diǎn)102可以使用本文中描述的如由服務(wù)器12執(zhí)行的技術(shù)來確定通過虛擬網(wǎng)絡(luò)的針對(duì)網(wǎng)絡(luò)流的物理路徑。
依照本公開的一些技術(shù),分析vm104(其還可以在本文中被稱為“分析引擎”)分析由網(wǎng)絡(luò)160指示的物理網(wǎng)絡(luò)的狀態(tài),網(wǎng)絡(luò)160可以包括ip結(jié)構(gòu)20(圖1)。例如,網(wǎng)絡(luò)160可以包括交換機(jī)(路由器)和連接器。例如,分析vm104包括分析數(shù)據(jù)庫106以及可以經(jīng)由形成網(wǎng)絡(luò)160的相同虛擬網(wǎng)絡(luò)線性擴(kuò)展的存儲(chǔ)器(未示出)。分析vm104經(jīng)由連接器148a至148n連接到網(wǎng)絡(luò)160。圖5的系統(tǒng)包括各種服務(wù)器(包括服務(wù)器170),其可以是諸如在圖2a和圖2b中描述為服務(wù)器12之類的服務(wù)器。服務(wù)器170包括有時(shí)還稱為虛擬網(wǎng)絡(luò)路由器(vn路由器)的虛擬交換機(jī)174,其封裝應(yīng)用分組并且通過物理網(wǎng)絡(luò)轉(zhuǎn)發(fā)應(yīng)用分組,并且服務(wù)器170包括虛擬網(wǎng)絡(luò)代理、vn交換機(jī)代理172,其通過與虛擬網(wǎng)絡(luò)控制器100交談向虛擬交換機(jī)174提供智能化并且向分析vm104提供統(tǒng)計(jì)信息。虛擬交換機(jī)174隱藏來自如在網(wǎng)絡(luò)160的ip結(jié)構(gòu)中找到的物理交換機(jī)和路由器的物理網(wǎng)絡(luò)。從而,可以顯得例如服務(wù)器12a直接連接到服務(wù)器12n(圖1)。服務(wù)器12還包括一系列客戶虛擬機(jī)vm36(圖2)。在一些示例中,分析vm104實(shí)際上是vm36的一些實(shí)例。
用于確定多路徑路由環(huán)境中的延遲的一種方法是在每一個(gè)虛擬交換機(jī)174上收集統(tǒng)計(jì)信息,也就是說,每一個(gè)虛擬交換機(jī)174收集關(guān)于在服務(wù)器170之間哪些分組已經(jīng)行進(jìn)通過虛擬交換機(jī)174以及它們什么時(shí)候行進(jìn)通過虛擬交換機(jī)174的數(shù)據(jù)。然后虛擬交換機(jī)174將該數(shù)據(jù)發(fā)送到分析vm104之一。分析vm104可以使用數(shù)據(jù)計(jì)算延遲。例如,管理員可以指定要捕獲針對(duì)某一類流量的統(tǒng)計(jì)信息,并且還可以限制收集統(tǒng)計(jì)信息的時(shí)間段。為了捕獲某一類流量,可以像匹配列表那樣來使用分組,稱為分組分類器。
例如,為了看看某些流是如何做的,示例分組分類器“pc”被定義為:
這將捕獲在2012年12月5日上午8時(shí)開始的一分鐘內(nèi)的到負(fù)載平衡器的網(wǎng)絡(luò)流量以及從負(fù)載平衡器發(fā)送到防火墻的流量。該分類器可以由網(wǎng)絡(luò)控制臺(tái)42(圖2)設(shè)置為分析vm104,分析vm104將通知所有相關(guān)vn交換機(jī)代理172。
在一些示例中,分布式虛擬網(wǎng)絡(luò)控制器100可以執(zhí)行本文中描述的技術(shù)以動(dòng)態(tài)地適配由虛擬網(wǎng)絡(luò)元件執(zhí)行的日志記錄的范圍。這些技術(shù)可以以分布式方式來執(zhí)行,其中不同vnc節(jié)點(diǎn)102控制日志記錄信息收集并且動(dòng)態(tài)地修改由網(wǎng)絡(luò)元件生成的針對(duì)vnc節(jié)點(diǎn)102控制的日志記錄信息的范圍,下面關(guān)于vnc102a描述所述技術(shù)。
分析vm104a在配置數(shù)據(jù)庫110中被配置作為由至少部分由vnc102a控制的網(wǎng)絡(luò)元件集生成的日志記錄信息的收集器。分析vm104a接收來自網(wǎng)絡(luò)元件的日志記錄信息并且將日志記錄信息存儲(chǔ)到分析數(shù)據(jù)庫106a以用于分析。存儲(chǔ)到分析數(shù)據(jù)庫106a的日志記錄信息可以指示若干不同網(wǎng)絡(luò)元件操作方面中的任何方面,從而包括資源利用、所執(zhí)行的應(yīng)用類型、分組發(fā)射/接收速率、性能等,該方面可以向分析vm104a和/或數(shù)據(jù)中心管理員指示需要修改一個(gè)或多個(gè)網(wǎng)絡(luò)元件的配置、增加資源的數(shù)量、修改用于執(zhí)行應(yīng)用的軟件等。在圖示的示例中,服務(wù)器170可以將一個(gè)或多個(gè)日志消息發(fā)送到vnc102,控制平面vm112a接收一個(gè)或多個(gè)日志消息并且使用xmpp通過通信接口146a將一個(gè)或多個(gè)日志消息傳達(dá)給分析vm104a。日志消息可以包括根據(jù)基線范圍生成和發(fā)送的日志記錄信息。
相應(yīng)分析vm104a至104n的規(guī)則引擎200a至200n將一個(gè)或多個(gè)(即,一組)規(guī)則應(yīng)用于由分析vm104a收集并且存儲(chǔ)到分析db106a的日志記錄信息。管理員可以使用ui134動(dòng)態(tài)地配置由規(guī)則引擎200a應(yīng)用的規(guī)則,以添加、修改或移除規(guī)則。例如,在分析vm104a將日志記錄信息存儲(chǔ)到分析db106a之前,規(guī)則引擎200a可以將規(guī)則或規(guī)則的精確子集應(yīng)用于由輸入的日志消息傳輸?shù)娜罩居涗浶畔?。備選地或另外,規(guī)則引擎200a可以不斷地將規(guī)則或規(guī)則的精確子集應(yīng)用于存儲(chǔ)到分析db106a的日志記錄信息。
每個(gè)規(guī)則包括針對(duì)對(duì)應(yīng)條件的動(dòng)作,在由接收到的日志記錄信息應(yīng)用和匹配時(shí),該對(duì)應(yīng)條件使得規(guī)則引擎200a執(zhí)行動(dòng)作。動(dòng)作可以包括指導(dǎo)網(wǎng)絡(luò)元件通過例如執(zhí)行響應(yīng)于vnc節(jié)點(diǎn)102a指導(dǎo)的“按需”信息收集來修改其生成和發(fā)送日志記錄信息的范圍。例如,按需信息收集可以包括跟蹤在網(wǎng)絡(luò)元件上執(zhí)行的應(yīng)用的虛擬/物理存儲(chǔ)器空間中的事件,以獲得日志記錄信息,并且還可以(或備選地)包括通過指導(dǎo)應(yīng)用執(zhí)行生成診斷日志記錄信息的一個(gè)或多個(gè)診斷子例程而主動(dòng)探測應(yīng)用。
一般,事件跟蹤可以包括記錄特定存儲(chǔ)器空間中的信息是否由應(yīng)用在響應(yīng)于從vnc102a(即,收集器)接收的指導(dǎo)的正常操作期間寫到存儲(chǔ)器空間。因此,一旦接收到錯(cuò)誤或任何其它信息消息,技術(shù)可以允許附加信息的產(chǎn)生和日志記錄。一般,應(yīng)用探測可以涉及指導(dǎo)考慮中的應(yīng)用運(yùn)行集成診斷子例程,以收集分析vm104a或管理員在診斷錯(cuò)誤中可能有用的附加信息。這樣的子例程的示例包括用于建立/監(jiān)控新計(jì)數(shù)器或事件、運(yùn)行各種診斷、以及執(zhí)行跟蹤路由或用于確定通過數(shù)據(jù)中心的虛擬或物理網(wǎng)絡(luò)路徑的其它方法的子例程。
分析vm104a可以使用各種技術(shù)(包括調(diào)用由應(yīng)用依照xmpp接口150a公開的api的方法)指導(dǎo)應(yīng)用修改生成日志記錄信息的范圍。在圖示的示例中,分析vm104使用xmpp通過通信接口146a經(jīng)由控制平面vm112a與服務(wù)器170進(jìn)行通信。調(diào)用所公開的api的方法可以表示圖2a的日志記錄修改消息43的示例實(shí)例。
服務(wù)器170將附加的跟蹤信息和/或通過主動(dòng)探測檢索的信息發(fā)送到vnc102a以存儲(chǔ)在分析數(shù)據(jù)庫106a中,其中出于故障排除目的可以由管理員檢索或者由分析vm104a分析這些信息。在這個(gè)示例中,服務(wù)器170可以依照xmpp接口150a發(fā)送日志記錄信息。然而,可以使用用于在vnc102a和服務(wù)器170之間交換日志記錄信息的其它通信接口,從而包括簡單對(duì)象訪問協(xié)議(soap)、公共對(duì)象代理請(qǐng)求架構(gòu)(corba)、遠(yuǎn)程過程調(diào)用(rpc)等。
針對(duì)虛擬網(wǎng)絡(luò)分組流的物理路徑確定
圖6是圖示依照本公開中描述的技術(shù)的用于確定虛擬化網(wǎng)絡(luò)域中的物理網(wǎng)絡(luò)路徑的網(wǎng)絡(luò)元件操作的示例模式的流程圖。這種操作模式是關(guān)于圖2a和圖2b的服務(wù)器12a的部件進(jìn)行描述的,但是可以由諸如tor16或底架交換機(jī)18之類的數(shù)據(jù)中心10的其它網(wǎng)絡(luò)元件執(zhí)行。
首先,服務(wù)器12a的流跟蹤模塊(ftm)48接收確定或者“跟蹤”由分組流的分組遍歷的物理網(wǎng)絡(luò)路徑的請(qǐng)求(200)。請(qǐng)求可以包括例如符合分組流的完整ip分組、與分組流的分組的ip報(bào)頭匹配的ip報(bào)頭、或者針對(duì)這樣的ip報(bào)頭的一個(gè)或多個(gè)字段(例如源ip地址和目的地ip地址)。分組流可以表示遍歷重疊/虛擬網(wǎng)絡(luò)的分組流。在一些示例中,vn代理35a從vnc22接收請(qǐng)求,并且將請(qǐng)求發(fā)送到ftm48。ftm48可以使用針對(duì)分組流的目的地ip地址查詢與分組流的虛擬網(wǎng)絡(luò)對(duì)應(yīng)的網(wǎng)絡(luò)轉(zhuǎn)發(fā)表32(諸如nft1),以獲得針對(duì)分組流的分組的隧道報(bào)頭以及在一些情況下諸如出站接口之類的其它隧道信息(202)。為了初始化流跟蹤,ftm48將變量ttl_var設(shè)置為0(204)。
通過生成包括諸如跟蹤分組標(biāo)識(shí)符和序列號(hào)之類的跟蹤分組信息的內(nèi)部分組并且將獲得的隧道報(bào)頭附加到內(nèi)部分組并且將流跟蹤分組指示符添加到外部分組的字段,流跟蹤模塊48生成針對(duì)虛擬網(wǎng)絡(luò)的外部、流跟蹤分組(206)。針對(duì)隨后生成的針對(duì)該請(qǐng)求的流跟蹤分組,ftm48可以使序列號(hào)遞增。流跟蹤分組指示符關(guān)于圖8至圖9進(jìn)一步詳細(xì)描述。流跟蹤分組的內(nèi)部分組是流跟蹤分組的數(shù)據(jù)凈荷。
流跟蹤模塊48使ttl_var遞增(208),并且將流跟蹤分組的ttl字段設(shè)置為ttl_var(210)。針對(duì)初始流跟蹤分組,這意指ttl字段具有為1的值。交換機(jī)30a通過出站接口根據(jù)與分組流的虛擬網(wǎng)絡(luò)對(duì)應(yīng)的網(wǎng)絡(luò)轉(zhuǎn)發(fā)表轉(zhuǎn)發(fā)流跟蹤分組模塊(212)。
如果交換機(jī)30a沒有接收到確認(rèn)消息(214的否分支)并且代替地接收響應(yīng)于針對(duì)請(qǐng)求的最新流跟蹤分組的超時(shí)消息(例如,icmp超時(shí)消息)(216),ftm48將超時(shí)消息的源地址附加到物理網(wǎng)絡(luò)元件網(wǎng)絡(luò)地址的列表(218)。源地址是發(fā)送超時(shí)消息的物理網(wǎng)絡(luò)元件的地址。然后,流跟蹤模塊48再次執(zhí)行至少步驟106至112,以生成具有遞增的ttl字段值的另一流跟蹤分組并且轉(zhuǎn)發(fā)該另一流跟蹤分組。用這種方法,流跟蹤模塊48生成具有遞增式增加的相應(yīng)生存時(shí)間值的一個(gè)或多個(gè)流跟蹤分組。
如果交換機(jī)30a接收到響應(yīng)于流跟蹤分組的諸如icmp回應(yīng)答復(fù)之類的確認(rèn)消息(214的是分支),這指示針對(duì)虛擬網(wǎng)絡(luò)的隧道端點(diǎn)已經(jīng)接收流跟蹤分組并且物理網(wǎng)絡(luò)路徑已經(jīng)被充分跟蹤。因此,fpm模塊48通過將物理網(wǎng)絡(luò)元件網(wǎng)絡(luò)地址的列表發(fā)送到請(qǐng)求設(shè)備來答復(fù)請(qǐng)求(220)。在一些示例中,vm代理35a將列表發(fā)送到vnc22。
圖7是圖示根據(jù)本公開的技術(shù)的網(wǎng)絡(luò)元件操作的示例模式的流程圖。這種操作模式是關(guān)于圖2a和圖2b的服務(wù)器12a的部件進(jìn)行描述的,但是可以由諸如tor16或底架交換機(jī)18之類的數(shù)據(jù)中心10的其它網(wǎng)絡(luò)元件執(zhí)行。
服務(wù)器12a的交換機(jī)30a是針對(duì)諸如與網(wǎng)絡(luò)轉(zhuǎn)發(fā)表32nft1關(guān)聯(lián)的虛擬網(wǎng)絡(luò)之類的虛擬網(wǎng)絡(luò)的隧道端點(diǎn),并且通過虛擬網(wǎng)絡(luò)的隧道接收分組(230)。該分組是包括隧道報(bào)頭的外部分組,并且可以表示關(guān)于圖8至圖9描述的分組之一。如果隧道報(bào)頭不包括流跟蹤分組指示符(232的否分支),則交換機(jī)30a解封裝隧道報(bào)頭的內(nèi)部分組,并且將內(nèi)部分組轉(zhuǎn)發(fā)到vm32中的具有其是內(nèi)部分組的目的地網(wǎng)絡(luò)地址的網(wǎng)絡(luò)地址的一個(gè)vm(234)。然而,如果隧道包括流跟蹤分組指示符(232的是分支),該分組是流跟蹤分組,并且交換機(jī)30a將確認(rèn)消息發(fā)送到服務(wù)器12中的具有其是隧道報(bào)頭的源網(wǎng)絡(luò)地址的網(wǎng)絡(luò)地址的另一個(gè)服務(wù)器,以確認(rèn)在服務(wù)器12a處的接收(236)。確認(rèn)消息可以傳輸至少內(nèi)部分組的一部分,從而在一些情況下包括內(nèi)部分組的ip報(bào)頭。例如,確認(rèn)消息可以是icmp回應(yīng)答復(fù)消息。因?yàn)橛煞?wù)器12a接收的流跟蹤分組不攜帶針對(duì)vm32中任何一個(gè)的應(yīng)用數(shù)據(jù),交換機(jī)30a拋棄流跟蹤分組(238)。
圖8是圖示根據(jù)本文中描述的技術(shù)生成的示例流跟蹤分組的字段的框圖。mpls-in-gre分組250是根據(jù)mpls-in-gre封裝技術(shù)實(shí)現(xiàn)的針對(duì)虛擬網(wǎng)絡(luò)生成的流跟蹤分組,其將多協(xié)議標(biāo)記交換(mpls)分組封裝在針對(duì)gre隧道的通用路由封裝(gre)中。為了簡化和易于說明,mpls-in-gre分組250不圖示典型mpls-in-gre分組的每一個(gè)字段,而是被提供以突出本文中描述的技術(shù)。
mpls-in-gre隧道端點(diǎn)生成mpls-in-gre分組250以包括隧道報(bào)頭266,隧道報(bào)頭266包括:由源ip地址252(“srcip252”)、目的地ip地址254(“dstip254”)、具有根據(jù)上面關(guān)于例如圖6描述的技術(shù)遞增式設(shè)置的值的生存時(shí)間字段256、以及定義在ip數(shù)據(jù)報(bào)的數(shù)據(jù)部分中使用的協(xié)議(這里,gre)的ip協(xié)議字段258(“proto258”)組成的外部ip報(bào)頭268;由標(biāo)識(shí)在gre數(shù)據(jù)報(bào)的數(shù)據(jù)部分中使用的協(xié)議(這里,mpls)的gre協(xié)議字段260(“greproto260”)組成的gre隧道報(bào)頭270;以及包括mpls標(biāo)記262(“mpls262”)的mpls標(biāo)記棧272。mpls標(biāo)記262是用于指派通信vm位于的個(gè)體mpls-in-gre重疊網(wǎng)絡(luò)的mpls標(biāo)記值。mpls-in-gre分組250還包括內(nèi)部分組264,內(nèi)部分組264可以包括諸如標(biāo)識(shí)符和/或序列號(hào)之類的關(guān)于mpls-in-gre分組250的流跟蹤信息。
在一些情況下,隧道端點(diǎn)可以向多個(gè)等價(jià)多路徑中的任何一個(gè)分配分組流以到達(dá)分組流目的地。隧道端點(diǎn)可以將散列函數(shù)應(yīng)用于針對(duì)分組流的分組的一個(gè)或多個(gè)報(bào)頭字段,并且散列函數(shù)的輸出確定等價(jià)多路徑中針對(duì)分組流選擇的路徑。在示例mpls-in-gre分組250中,隧道端點(diǎn)將散列函數(shù)應(yīng)用于srcip252、dstip254、ip協(xié)議字段258和gre協(xié)議字段260。然而,隧道端點(diǎn)沒有將散列函數(shù)應(yīng)用于mpls標(biāo)記262。結(jié)果,mpls-in-gre分組250可以被散列到等價(jià)多路徑的路徑,該路徑是與針對(duì)其物理網(wǎng)絡(luò)路徑正在被跟蹤的分組流選擇的路徑相同的路徑。換言之,針對(duì)正在被跟蹤的分組流,隧道端點(diǎn)生成mpls-in-gre分組250以包括與分組的分組完全相同的散列字段。其它字段可以變化。因?yàn)樵卺槍?duì)例如icmp回應(yīng)請(qǐng)求的ip協(xié)議字段258的其它實(shí)例中icmp被不同地標(biāo)識(shí),并且因?yàn)閕p協(xié)議字段258是散列字段,icmp分組將必定被隧道端點(diǎn)不同地散列成該mpls-in-gre分組250,并且可以導(dǎo)致icmp回應(yīng)請(qǐng)求在從隧道端點(diǎn)行進(jìn)的等價(jià)多路徑中的不同路徑上被傳輸。
據(jù)此,為了將mpls-in-gre分組250標(biāo)識(shí)為流跟蹤分組,mpls-in-gre分組250包括以針對(duì)mpls標(biāo)記262的流跟蹤分組指示符值形式的流跟蹤分組指示符。像mpls標(biāo)記262那樣的流跟蹤分組指示符值可以是20比特的值,其是專門指派的值,用于將分組標(biāo)識(shí)為流跟蹤分組,而不是用于指派個(gè)體的基于mpls-in-gre的重疊網(wǎng)絡(luò)。因?yàn)樗淼蓝它c(diǎn)沒有將mpls標(biāo)記262散列在散列函數(shù)中,mpls-in-gre分組250可以遵循與正在被跟蹤的分組流的分組相同的物理網(wǎng)絡(luò)路徑。
圖9是圖示根據(jù)本文中描述的技術(shù)生成的示例流跟蹤分組的字段的框圖。虛擬可擴(kuò)展局域網(wǎng)(vxlan)分組280是根據(jù)vxlan技術(shù)實(shí)現(xiàn)的針對(duì)虛擬網(wǎng)絡(luò)生成的流跟蹤分組。為了簡化和易于說明,vxlan分組280不圖示典型vxlan分組的每一個(gè)字段,而是被提供以突出本文中描述的技術(shù)。
vxlan隧道端點(diǎn)是生成vxlan分組280以包括隧道報(bào)頭296的隧道端點(diǎn),隧道報(bào)頭296包括:由源ip地址282(“srcip282”)、目的地ip地址284(“dstip284”)、具有針對(duì)vxlan分組280的多個(gè)實(shí)例的根據(jù)上面關(guān)于例如圖6描述的技術(shù)遞增式增加的值的生存時(shí)間字段286、以及定義在ip數(shù)據(jù)報(bào)的數(shù)據(jù)部分中使用的協(xié)議(這里,udp)的ip協(xié)議字段287組成的外部ip報(bào)頭;由源udp端口288(“srcport288”)和目的地udp端口290(“dstport290”)組成的外部udp報(bào)頭;以及包括vxlan網(wǎng)絡(luò)標(biāo)識(shí)符(vni)292(“vni292”)(備選地被稱為vxlan區(qū)段標(biāo)識(shí)符)的vxlan報(bào)頭。vni292是用于指派通信vm位于的個(gè)體vxlan重疊網(wǎng)絡(luò)的24比特值。vxlan分組280還包括內(nèi)部分組294,內(nèi)部分組294可以包括諸如標(biāo)識(shí)符和/或序列號(hào)之類的關(guān)于vxlan分組280的流跟蹤信息。
在一些情況下,隧道端點(diǎn)可以向多個(gè)等價(jià)多路徑中的任何一個(gè)分配分組流以到達(dá)分組流目的地。隧道端點(diǎn)可以將散列函數(shù)應(yīng)用于針對(duì)分組流的分組的一個(gè)或多個(gè)報(bào)頭字段,并且散列函數(shù)的輸出確定等價(jià)多路徑中針對(duì)分組流選擇的路徑。在示例vxlan分組280中,隧道端點(diǎn)將散列函數(shù)應(yīng)用于srcip282、dstip284、ip協(xié)議字段287、srcport288和dstport290。然而,隧道端點(diǎn)沒有將散列函數(shù)應(yīng)用于vni292。結(jié)果,vxlan分組280可以被散列到等價(jià)多路徑的路徑,該路徑是與針對(duì)其物理網(wǎng)絡(luò)路徑正在被跟蹤的分組流選擇的路徑相同的路徑。換言之,針對(duì)正在被跟蹤的分組流,隧道端點(diǎn)生成vxlan分組280以包括與分組的分組完全相同的散列字段。其它字段可以變化。因?yàn)樵卺槍?duì)例如icmp回應(yīng)請(qǐng)求的ip協(xié)議字段287的其它實(shí)例中icmp被不同地標(biāo)識(shí),并且因?yàn)閕p協(xié)議字段287是散列字段,icmp分組將必定被隧道端點(diǎn)不同地散列成該vxlan分組280,并且可以導(dǎo)致icmp回應(yīng)請(qǐng)求在從隧道端點(diǎn)行進(jìn)的等價(jià)多路徑中的不同路徑上被傳輸。
據(jù)此,為了將vxlan分組280標(biāo)識(shí)為流跟蹤分組,vxlan分組280包括以針對(duì)vni292的流跟蹤分組指示符值形式的流跟蹤分組指示符。像vni292那樣的流跟蹤分組指示符值可以是24比特的值,其是專門指派的值,用于將分組標(biāo)識(shí)為流跟蹤分組,而不是用于指派個(gè)體vxlan重疊網(wǎng)絡(luò)。因?yàn)樗淼蓝它c(diǎn)沒有將vni292散列在散列函數(shù)中,vxlan分組280可以遵循與正在被跟蹤的分組流的分組相同的物理網(wǎng)絡(luò)路徑。盡管上面關(guān)于基于mpls-in-gre和vxlan的網(wǎng)絡(luò)虛擬化進(jìn)行描述,本公開的技術(shù)可以能夠用于包括mpls-in-ip、使用通用路由封裝(nvgre)的網(wǎng)絡(luò)虛擬化等的其它網(wǎng)絡(luò)虛擬化封裝類型。
圖10是圖示用于實(shí)現(xiàn)本文中描述的各種技術(shù)中的任何技術(shù)的示例計(jì)算設(shè)備的框圖。例如,計(jì)算設(shè)備300可以表示圖1的服務(wù)器12、tor16或底架交換機(jī)18中的任何一種。圖10僅圖示計(jì)算設(shè)備300的一個(gè)特定示例,并且在其它實(shí)例中可以使用計(jì)算設(shè)備300的許多其它示例。例如,實(shí)現(xiàn)tor16和底架交換機(jī)18的計(jì)算設(shè)備可以包括高速分布式轉(zhuǎn)發(fā)平面。
如圖10的具體示例所示,計(jì)算設(shè)備300包括一個(gè)或多個(gè)處理器301、一個(gè)或多個(gè)通信單元302、一個(gè)或多個(gè)輸入設(shè)備304、一個(gè)或多個(gè)輸出設(shè)備306和一個(gè)或多個(gè)存儲(chǔ)設(shè)備308。計(jì)算設(shè)備300進(jìn)一步包括操作系統(tǒng)310、虛擬化模塊312和一個(gè)或多個(gè)應(yīng)用314a至314n(統(tǒng)稱為“應(yīng)用314”)。虛擬化模塊312可以表示例如服務(wù)器12a的管理程序31,并且應(yīng)用314可以表示不同vm36。部件301、302、304、306和308中的每個(gè)部件可以互連(物理上、通信上和/或操作上)以用于部件間通信。作為圖10中的一個(gè)示例,部件301、302、304、306和308可以通過一個(gè)或多個(gè)通信信道316耦合。在一些示例中,通信信道316可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于傳達(dá)數(shù)據(jù)的任何其它信道。虛擬化模塊312和應(yīng)用314,以及操作系統(tǒng)310也可以與彼此以及與計(jì)算設(shè)備300中的其它部件傳達(dá)信息。虛擬化模塊312包括軟件交換機(jī)320以在一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)上交換分組。虛擬化模塊312還包括流跟蹤模塊318,以通過生成流跟蹤分組并且遞增式設(shè)置相應(yīng)ttl值以使得下游交換設(shè)備向計(jì)算設(shè)備返回超時(shí)消息,確定由計(jì)算設(shè)備300交換的網(wǎng)絡(luò)流的物理網(wǎng)絡(luò)路徑。流跟蹤模塊318可以表示圖1的ftm48的示例實(shí)例。
在一個(gè)示例中,處理器301被配置為實(shí)現(xiàn)用于在計(jì)算設(shè)備300內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器301可以有能力處理存儲(chǔ)在存儲(chǔ)設(shè)備308中的指令。處理器301的示例可以包括微處理器、控制器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者等效分立或集成邏輯電路裝置中的任何一個(gè)或多個(gè)。
一個(gè)或多個(gè)存儲(chǔ)設(shè)備308可以被配置為存儲(chǔ)在操作期間計(jì)算設(shè)備300內(nèi)的信息。在一些示例中,存儲(chǔ)設(shè)備308被描述為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,存儲(chǔ)設(shè)備308是暫時(shí)存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備308的主要目的不是長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備308被描述為易失存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備308在計(jì)算機(jī)關(guān)閉時(shí)不保持存儲(chǔ)的內(nèi)容。易失存儲(chǔ)器的示例包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失存儲(chǔ)器。在一些示例中,存儲(chǔ)設(shè)備308用于存儲(chǔ)程序指令以用于由處理器301執(zhí)行。在一個(gè)示例中,存儲(chǔ)設(shè)備308由運(yùn)行在計(jì)算設(shè)備300上的軟件或應(yīng)用(例如,操作系統(tǒng)310、虛擬化模塊312等)使用,以在程序執(zhí)行期間暫時(shí)存儲(chǔ)信息。
在一些示例中,存儲(chǔ)設(shè)備308還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備308可以被配置為存儲(chǔ)比易失存儲(chǔ)器更大量的信息。存儲(chǔ)設(shè)備308可以進(jìn)一步被配置用于信息的長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備308包括非易失存儲(chǔ)元件。這樣的非易失存儲(chǔ)元件的示例包括磁性硬盤、盒式磁帶或磁帶盒、光盤、軟盤、閃速存儲(chǔ)器、或者電可編程存儲(chǔ)器(eprom)或電可擦除可編程存儲(chǔ)器(eeprom)的形式。
在一些示例中,計(jì)算設(shè)備300還包括一個(gè)或多個(gè)通信單元302。在一個(gè)示例中,計(jì)算設(shè)備300利用通信單元302與外部設(shè)備進(jìn)行通信。在一些示例中,通信單元302可以通過經(jīng)由入站和出站鏈路在一個(gè)或多個(gè)網(wǎng)絡(luò)(諸如一個(gè)或多個(gè)無線網(wǎng)絡(luò))上發(fā)送數(shù)據(jù)分組而進(jìn)行通信。通信單元302可以包括諸如以太網(wǎng)卡之類的一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡(ifc)、光學(xué)收發(fā)器、射頻收發(fā)器、或者可以發(fā)送和接收信息的任何其它類型的設(shè)備。這樣的網(wǎng)絡(luò)接口的其它示例可以包括藍(lán)牙、3g和wi-fi無線電部件。在一些示例中,計(jì)算設(shè)備300利用通信單元302與數(shù)據(jù)中心的虛擬化網(wǎng)絡(luò)域中的其它計(jì)算設(shè)備交換隧道分組。
在一個(gè)示例中,計(jì)算設(shè)備300還包括一個(gè)或多個(gè)輸入設(shè)備304。在一些示例中,輸入設(shè)備304被配置為通過觸覺、音頻或視頻反饋接收來自用戶的輸入。輸入設(shè)備304的示例包括存在敏感(presence-sensitive)顯示器、鼠標(biāo)、鍵盤、語音響應(yīng)系統(tǒng)、攝像機(jī)、麥克風(fēng)、或者用于檢測來自用戶的命令的任何其它類型的設(shè)備。在一些示例中,存在敏感顯示器包括觸摸屏。
一個(gè)或多個(gè)輸出設(shè)備306也可以被包括在計(jì)算設(shè)備300中。在一些示例中,輸出設(shè)備306被配置為使用觸覺、音頻或視頻刺激向用戶提供輸出。在一個(gè)示例中,輸出設(shè)備306包括存在敏感顯示器、聲卡、視頻圖形適配器卡、或者用于將信號(hào)轉(zhuǎn)換成人或機(jī)器可理解的適當(dāng)形式的任何其它類型的設(shè)備。輸出設(shè)備306的另外示例包括揚(yáng)聲器、陰極射線管(crt)監(jiān)控器、液晶顯示器(lcd)、或者可以生成用戶可理解輸出的任何其它類型的設(shè)備。
計(jì)算設(shè)備300可以包括操作系統(tǒng)310。在一些示例中,操作系統(tǒng)310控制計(jì)算設(shè)備300的部件的操作。例如,在一個(gè)示例中,操作系統(tǒng)310便于應(yīng)用314和虛擬化模塊312與處理器301、通信單元302、輸入設(shè)備304、輸出設(shè)備306以及存儲(chǔ)設(shè)備310的通信。應(yīng)用314可以各自包括可由計(jì)算設(shè)備300執(zhí)行的程序指令和/或數(shù)據(jù)。作為一個(gè)示例,應(yīng)用314a可以包括使得計(jì)算設(shè)備300執(zhí)行本公開中描述的一個(gè)或多個(gè)操作和動(dòng)作的指令。
找到通過虛擬化網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)的延遲
總體上,本公開的以下章節(jié)描述用于確定包括若干網(wǎng)絡(luò)設(shè)備的分組通過其行進(jìn)的物理網(wǎng)絡(luò)中的延遲的技術(shù)。在虛擬網(wǎng)絡(luò)架構(gòu)中,關(guān)于任何特定流的延遲(即,分組經(jīng)由交換機(jī)和連接器的特定路徑從一個(gè)網(wǎng)絡(luò)設(shè)備(例如服務(wù)器)行進(jìn)到另一個(gè)網(wǎng)絡(luò)設(shè)備所用的時(shí)間)的信息可能對(duì)于虛擬網(wǎng)絡(luò)來說不易得到。
在匹配監(jiān)控分組的定義集的分組在定義時(shí)間段期間行進(jìn)通過網(wǎng)絡(luò)設(shè)備(例如,交換機(jī)或路由器)時(shí),網(wǎng)絡(luò)設(shè)備可以復(fù)制分組而不影響分組的流動(dòng),并且將來自復(fù)制分組的信息連同時(shí)間戳和網(wǎng)絡(luò)設(shè)備的身份一起發(fā)送回到邏輯集中虛擬網(wǎng)絡(luò)控制器的分析引擎。換言之,分析引擎接收關(guān)于分組已經(jīng)行進(jìn)的時(shí)間和位置的信息。通過分析來自若干網(wǎng)絡(luò)設(shè)備的這些信息,虛擬網(wǎng)絡(luò)控制器的分析引擎可以確定指定分組遍歷物理網(wǎng)絡(luò)所用的時(shí)間,并且可以標(biāo)識(shí)物理網(wǎng)絡(luò)中減慢網(wǎng)絡(luò)速度的網(wǎng)絡(luò)設(shè)備和/或連接。另外,代替發(fā)送回監(jiān)控分組的完整副本,網(wǎng)絡(luò)設(shè)備可以取用唯一標(biāo)識(shí)分組的復(fù)制分組的不變部分(例如,凈荷)的散列(即,簽名),并且將簽名連同設(shè)備標(biāo)識(shí)符和時(shí)間戳信息一起發(fā)送回到分析引擎。發(fā)送簽名而非完整分組可以通過壓縮網(wǎng)絡(luò)中需要發(fā)送和存儲(chǔ)的信息的量,提供更加可擴(kuò)展的機(jī)制。
通過使用這些延遲信息的集合,虛擬網(wǎng)絡(luò)控制器可以標(biāo)識(shí)物理網(wǎng)絡(luò)中慢的地方或者什么地方正在發(fā)生流量瓶頸。這樣的瓶頸可以指示物理網(wǎng)絡(luò)問題,諸如例如劣化的電纜。標(biāo)識(shí)物理網(wǎng)絡(luò)中的這些問題而不必運(yùn)行對(duì)網(wǎng)絡(luò)的每個(gè)部件的具體測試可以節(jié)省時(shí)間和金錢,并且可以幫助確保網(wǎng)絡(luò)以最佳方式執(zhí)行并且沒有中斷。
在一個(gè)實(shí)施例中,用于確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲的方法包括由虛擬網(wǎng)絡(luò)控制器接收來自網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備的多個(gè)消息,其中每個(gè)消息包括:(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。方法還包括:由虛擬網(wǎng)絡(luò)控制器標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息,以及由虛擬網(wǎng)絡(luò)控制器基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
在另一實(shí)施例中,方法包括:由網(wǎng)絡(luò)設(shè)備從虛擬網(wǎng)絡(luò)控制器接收指定待分析分組的分組特性的信息,響應(yīng)于確定分組匹配指定特性并且由在網(wǎng)絡(luò)設(shè)備上執(zhí)行的虛擬網(wǎng)絡(luò)代理接收分組,確定唯一標(biāo)識(shí)分組的分組的不變部分的散列以獲得分組簽名,以及向虛擬網(wǎng)絡(luò)控制器轉(zhuǎn)發(fā)消息,該消息指定:(1)分組簽名,(2)網(wǎng)絡(luò)設(shè)備的標(biāo)識(shí)符,以及(3)指示分組被網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。
在另一實(shí)施例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括用于使得可編程處理器如下的指令:接收來自網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備的多個(gè)消息的,其中每個(gè)消息包括(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳;標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息;以及基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
在又一實(shí)施例中,虛擬網(wǎng)絡(luò)控制器包括一個(gè)或多個(gè)處理器,以及由處理器執(zhí)行的多個(gè)虛擬機(jī)以接收來自網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備的多個(gè)消息,其中每個(gè)消息包括:(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。虛擬網(wǎng)絡(luò)控制器還包括多個(gè)分析虛擬機(jī),其中多個(gè)虛擬機(jī)標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息,并且基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
在另一示例中,系統(tǒng)包括虛擬網(wǎng)絡(luò)控制器以及多個(gè)網(wǎng)絡(luò)設(shè)備,虛擬網(wǎng)絡(luò)控制器包括一個(gè)或多個(gè)處理器、由處理器執(zhí)行的多個(gè)虛擬機(jī),多個(gè)網(wǎng)絡(luò)設(shè)備包括一個(gè)或多個(gè)處理器,其中多個(gè)網(wǎng)絡(luò)設(shè)備從虛擬網(wǎng)絡(luò)控制器接收指定待分析分組的分組特性的信息、接收分組,其中多個(gè)虛擬機(jī)從多個(gè)網(wǎng)絡(luò)設(shè)備接收多個(gè)消息,其中每個(gè)消息包括:(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳,其中虛擬網(wǎng)絡(luò)控制器進(jìn)一步包括多個(gè)分析虛擬機(jī),多個(gè)分析虛擬機(jī)標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息,并且基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲,以及其中多個(gè)網(wǎng)絡(luò)設(shè)備包括在處理器上執(zhí)行的虛擬網(wǎng)絡(luò)代理,響應(yīng)于確定分組匹配指定特性,虛擬網(wǎng)絡(luò)代理確定唯一標(biāo)識(shí)分組的分組的不變部分的散列以獲得分組簽名,并且向虛擬網(wǎng)絡(luò)控制器轉(zhuǎn)發(fā)消息,該消息指定:(1)分組簽名,(2)網(wǎng)絡(luò)設(shè)備的標(biāo)識(shí)符,以及(3)指示分組被網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。
圖11是圖示依照本公開的技術(shù)的網(wǎng)絡(luò)設(shè)備的示例操作的流程圖。圖11是關(guān)于圖1至圖3進(jìn)行描述的。如圖11所示,為了確定一類流量的延遲,由管理員諸如經(jīng)由用于接入網(wǎng)絡(luò)的設(shè)備(例如網(wǎng)絡(luò)控制臺(tái)42)發(fā)起請(qǐng)求。請(qǐng)求可以指定描述待分析分組的特性的分組分類器,并且還可以諸如通過設(shè)置開始時(shí)間和結(jié)束時(shí)間,定義應(yīng)當(dāng)應(yīng)用分組分類器的時(shí)間段。網(wǎng)絡(luò)控制臺(tái)42將具有分組分類器信息的消息遞送到分析vm104(500)。
分析vm104轉(zhuǎn)而接收消息(502),并且通知和安全地將分組分類器和時(shí)間段遞送到網(wǎng)絡(luò)中的適當(dāng)vn交換機(jī)代理172(504)。分析vm104可以基于分組分類器標(biāo)識(shí)需要通知哪些vn交換機(jī)代理172,諸如基于分組分類器中涉及由vn交換機(jī)代理172所擁有的子網(wǎng)的ip地址的比較。每個(gè)被通知的vn交換機(jī)代理172可以在它們的相應(yīng)虛擬交換機(jī)174上安裝該分組分類器以捕獲適當(dāng)分組(例如,在它們的出接口處)。從而每個(gè)虛擬交換機(jī)174可以在指定開始時(shí)間啟用接收的分組分類器。如果結(jié)束時(shí)間過去了,虛擬交換機(jī)174可以忽略該分組分類器。如果開始時(shí)間過去了,虛擬交換機(jī)174可以立即啟用分組分類器。虛擬交換機(jī)174將在結(jié)束時(shí)間禁用分組分類器。
在網(wǎng)絡(luò)中行進(jìn)的分組匹配虛擬交換機(jī)174上的分組分類器時(shí)(509),虛擬交換機(jī)174將分組的副本發(fā)送到慢路徑以用于在vn交換機(jī)代理172處進(jìn)行處理(510),而不影響原始接收分組的遞送。在交換機(jī)和路由器的聯(lián)網(wǎng)數(shù)據(jù)路徑中,在分組來到被轉(zhuǎn)發(fā)時(shí),可以存在兩條路徑,快路徑和慢路徑??炻窂较窀咚倬彌_存儲(chǔ)器,并且在無延遲的情況下確定如何處理分組,諸如將它發(fā)送到哪里。如果信息不在手邊,例如像高速緩存未命中,分組排隊(duì)等候以用于進(jìn)一步處理,其中一些其它程序查找數(shù)據(jù)庫如何處理該分組,并且如果必要,更新快路徑高速緩存。
通常網(wǎng)絡(luò)設(shè)備通過高速緩存或以其它方式存儲(chǔ)針對(duì)兩個(gè)設(shè)備之間的給定通信會(huì)話的分組流的流狀態(tài),執(zhí)行這種基于流的轉(zhuǎn)發(fā)。一般地,在識(shí)別新流的第一分組的同時(shí),網(wǎng)絡(luò)設(shè)備初始化數(shù)據(jù),以記錄針對(duì)會(huì)話的狀態(tài)數(shù)據(jù)。vn交換機(jī)代理172可以檢查針對(duì)會(huì)話的分組流。在一些情況下,vn交換機(jī)代理172可以包括兩條轉(zhuǎn)發(fā)路徑:用于處理新建立流的第一分組的第一路徑以及用于檢查和轉(zhuǎn)發(fā)與已存在流關(guān)聯(lián)的隨后分組的第二路徑。通過vn交換機(jī)代理172的第一路徑可以被稱為“第一路徑”、“慢路徑”或“會(huì)話管理路徑”。此時(shí),在處理新建立流的第一分組之后,vn交換機(jī)代理172可以更新流表以記錄會(huì)話并且另外初始化會(huì)話數(shù)據(jù)。通過vn交換機(jī)代理172的第二路徑可以被稱為“快路徑”,因?yàn)橛捎谌狈︶槍?duì)已建立流中的隨后分組所需要的詳細(xì)檢查,第二路徑正常不會(huì)占用如第一路徑則長的時(shí)間以遍歷。涉及具有快路徑和慢路徑的網(wǎng)絡(luò)設(shè)備的進(jìn)一步細(xì)節(jié)可以在2008年7月30日提交的、名稱為“streamlinedpacketforwardingusingdynamicfiltersforroutingandsecurityinasharedforwardingplane”的美國專利no.8,339,959中找到,其整體內(nèi)容通過引用方式并入于此。虛擬交換機(jī)174向慢路徑發(fā)送諸如時(shí)間戳、入口端和出端口等之類的附加信息,連同分組的副本一起。
如下面關(guān)于圖7將更詳細(xì)描述的,vn交換機(jī)代理172計(jì)算分組簽名并且將分組簽名與統(tǒng)計(jì)信息一起發(fā)送到分析vm104(512),分析vm104通過輸入的簽名進(jìn)行計(jì)算,并且可以跨虛擬網(wǎng)絡(luò)控制器100中的其它分析vm104分布計(jì)算結(jié)果(514),并且分析vm104編譯結(jié)果(516)并且可選地可以將編譯結(jié)果發(fā)送到網(wǎng)絡(luò)控制臺(tái)42,以用于顯示和/或進(jìn)一步使用(518)。網(wǎng)絡(luò)控制臺(tái)可以顯示結(jié)果(520)。
圖12是圖示依照本公開的技術(shù)的網(wǎng)絡(luò)設(shè)備的示例操作的流程圖。圖12圖示延遲可以由虛擬網(wǎng)絡(luò)控制器如何計(jì)算的一個(gè)示例操作,但是本公開的技術(shù)不限于這個(gè)特定示例。如圖12所示,在接收到一個(gè)這樣的分組的同時(shí),vn交換機(jī)代理172首先計(jì)算分組的一部分的散列(550)(諸如,md5、sha1等),散列是路徑不變量并且唯一標(biāo)識(shí)分組(諸如,例如ip凈荷)。這種散列將被視為分組的密鑰或簽名。該密鑰連同交換機(jī)標(biāo)識(shí)符(其對(duì)于vn交換機(jī)代理172來說是唯一的,并且其定義分組通過哪個(gè)虛擬交換機(jī)174)、時(shí)間戳、入口端、出端口等一起作為數(shù)據(jù)將被發(fā)送回到分析vm104以用于進(jìn)一步處理(555)。分析vm104還從其它服務(wù)器170的vn代理172接收這種數(shù)據(jù)(圖5中未示出)(560)。
在結(jié)束時(shí)間到期的同時(shí)(加上一些抖動(dòng)),分析vm104將通過散列密鑰開始處理每個(gè)分組。這樣的初始處理可以包括:按照密鑰聚集數(shù)據(jù),并且形成密鑰的值的列表以及按照密鑰(分組散列)將工作分派給跨虛擬網(wǎng)絡(luò)控制器100的分析vm104之一(565)。也就是說,每個(gè)原始分組產(chǎn)生唯一的散列,散列可以用作密鑰以標(biāo)識(shí)每個(gè)分組及它們的信息。針對(duì)每個(gè)散列,分析vm104可以獲得交換機(jī)id、時(shí)間戳、入口端和出端口等的列表。
針對(duì)每個(gè)散列,然后分析vm104將通過時(shí)間戳對(duì)關(guān)聯(lián)列表進(jìn)行排序(570),并且基于交換機(jī)id和時(shí)間戳的列表,構(gòu)建分組已經(jīng)遍歷的拓?fù)浣Y(jié)構(gòu)映射(虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)映射),并且使拓?fù)浣Y(jié)構(gòu)映射與網(wǎng)絡(luò)的已知物理拓?fù)浣Y(jié)構(gòu)匹配(575)。虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)映射包括基于虛擬交換機(jī)id的虛擬交換機(jī)的拓?fù)浣Y(jié)構(gòu)映射。由于分析vm104線性擴(kuò)展,每個(gè)分析vm104得到工作的一部分以處理和確定結(jié)果。假定時(shí)間戳的近似一致性以允許時(shí)鐘漂移。
接著,分析引擎320標(biāo)識(shí)由散列表示的該分組的源和目的地,并且該散列可以被分解為n個(gè)相異的流(580)。然后,在每個(gè)流上,分析vm104生成路徑列表(590),路徑列表由{交換機(jī)-1,交換機(jī)-2…交換機(jī)-r}組成,它們是分組遍歷的指定物理交換機(jī)。分析vm104在該交換機(jī)列表或路徑映射上生成散列(595),該散列被用作密鑰以用于隨后的計(jì)算。針對(duì)每個(gè)路徑映射散列,可以確定分組從其源到其目的地所用的近似一致的時(shí)間。還計(jì)算預(yù)期錯(cuò)誤,這將用于計(jì)算每個(gè)路徑的抖動(dòng)或延遲。
利用路徑映射散列,針對(duì)路徑映射檢測的所有流可以被組合(600),并且分析vm104可以從那里計(jì)算延遲的統(tǒng)計(jì)量度(605)。通過跨分組分類器組合,分析vm104可以通過估算該網(wǎng)絡(luò)中每個(gè)路徑的最小值、最大值、平均值和標(biāo)準(zhǔn)偏差,確定真實(shí)延遲。
通過使用這些延遲信息的集合,虛擬網(wǎng)絡(luò)控制器100可以標(biāo)識(shí)物理網(wǎng)絡(luò)中慢的地方或者什么地方正在發(fā)生流量瓶頸。這樣的瓶頸可以指示物理網(wǎng)絡(luò)問題,諸如例如劣化的電纜。標(biāo)識(shí)物理網(wǎng)絡(luò)中的這些問題而不必運(yùn)行對(duì)網(wǎng)絡(luò)的每個(gè)部件的具體測試節(jié)省了時(shí)間和金錢,并且可以幫助確保網(wǎng)絡(luò)以最佳方式執(zhí)行并且沒有中斷。
另外,該方法可以通過物理交換機(jī)的任何集來使用,假如針對(duì)集中的每個(gè)物理交換機(jī),存在有能力接收pc、標(biāo)識(shí)(和散列)標(biāo)識(shí)的分組、并且將標(biāo)識(shí)的分組轉(zhuǎn)發(fā)到分析引擎以用于如上所述的進(jìn)一步處理的關(guān)聯(lián)vn代理。
技術(shù)被描述用于確定包括若干網(wǎng)絡(luò)設(shè)備的分組通過其行進(jìn)的物理網(wǎng)絡(luò)中的延遲。虛擬網(wǎng)絡(luò)控制器接收來自網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備的多個(gè)消息,每個(gè)消息包括:包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。虛擬網(wǎng)絡(luò)控制器基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
在以下條款(clause)中描述了各種示例。依照本文中描述的技術(shù),在以下條款中的任一條款中闡述的示例可以被并入,并且可以與貫穿本公開描述的任何其它示例組合實(shí)現(xiàn)。
條款1.一種用于確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲的方法,方法包括:由虛擬網(wǎng)絡(luò)控制器接收來自網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備的多個(gè)消息,其中每個(gè)消息包括(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳;由虛擬網(wǎng)絡(luò)控制器標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息;由虛擬網(wǎng)絡(luò)控制器基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
條款2.條款1的方法,其中多個(gè)網(wǎng)絡(luò)設(shè)備包括在網(wǎng)絡(luò)中的多個(gè)服務(wù)器設(shè)備上執(zhí)行的多個(gè)虛擬網(wǎng)絡(luò)代理,其中網(wǎng)絡(luò)設(shè)備的標(biāo)識(shí)符包括與虛擬網(wǎng)絡(luò)代理關(guān)聯(lián)的虛擬交換機(jī)的標(biāo)識(shí)符。
條款3.條款2的方法,其中多個(gè)服務(wù)器設(shè)備中的不同服務(wù)器設(shè)備在不同時(shí)間接收相同的原始分組。
條款4.條款1至3中的任一條款的方法,其中標(biāo)識(shí)包括由在虛擬網(wǎng)絡(luò)控制器上執(zhí)行的多個(gè)分布式分析虛擬機(jī)標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息,并且其中確定包括至少部分通過多個(gè)分布式分析虛擬機(jī)分析多個(gè)消息的內(nèi)容以確定延遲來確定。
條款5.條款1至4中的任一條款的方法,進(jìn)一步包括在接收多個(gè)消息之前,由虛擬網(wǎng)絡(luò)控制器向多個(gè)網(wǎng)絡(luò)設(shè)備發(fā)送指示待分析分組的特性和收集匹配特性的分組的時(shí)間范圍的一個(gè)或多個(gè)命令,其中接收多個(gè)消息包括響應(yīng)于發(fā)送一個(gè)或多個(gè)命令而接收多個(gè)消息。
條款6.條款1至5中的任一條款的方法,進(jìn)一步包括:由虛擬網(wǎng)絡(luò)控制器:通過簽名對(duì)多個(gè)消息的內(nèi)容進(jìn)行排序;針對(duì)每個(gè)簽名,獲得網(wǎng)絡(luò)設(shè)備標(biāo)識(shí)符和時(shí)間戳的列表;以及通過時(shí)間戳對(duì)針對(duì)每個(gè)簽名的列表進(jìn)行排序。
條款7.條款6的方法,進(jìn)一步包括:由虛擬網(wǎng)絡(luò)控制器:針對(duì)給定簽名,基于與該簽名關(guān)聯(lián)的虛擬網(wǎng)絡(luò)設(shè)備標(biāo)識(shí)符和時(shí)間戳的列表的列表,構(gòu)建原始分組遍歷的虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)映射;以及使虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)映射與網(wǎng)絡(luò)的已知物理拓?fù)浣Y(jié)構(gòu)匹配。
條款8.條款7的方法,進(jìn)一步包括:標(biāo)識(shí)與簽名之一關(guān)聯(lián)的相異流;基于網(wǎng)絡(luò)的已知物理拓?fù)浣Y(jié)構(gòu),生成針對(duì)標(biāo)識(shí)流之一的、包括流中分組遍歷的物理網(wǎng)絡(luò)設(shè)備的列表的路徑映射;在路徑映射上生成散列;以及針對(duì)每個(gè)路徑映射散列,確定分組遍歷從源到目的地的物理網(wǎng)絡(luò)路徑所用的時(shí)間。
條款9.條款8的方法,進(jìn)一步包括:計(jì)算物理網(wǎng)絡(luò)路徑的延遲的統(tǒng)計(jì)量度。
條款10.一種方法包括:由網(wǎng)絡(luò)設(shè)備從虛擬網(wǎng)絡(luò)控制器接收指定待分析分組的分組特性的信息;接收分組;響應(yīng)于確定分組匹配指定特性,并且由在網(wǎng)絡(luò)設(shè)備上執(zhí)行的虛擬網(wǎng)絡(luò)代理,確定唯一標(biāo)識(shí)分組的分組的不變部分的散列以獲得分組簽名;以及向虛擬網(wǎng)絡(luò)控制器轉(zhuǎn)發(fā)消息,該消息指定:(1)分組簽名,(2)網(wǎng)絡(luò)設(shè)備的標(biāo)識(shí)符,和(3)指示分組被網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。
條款11.條款10的方法,其中網(wǎng)絡(luò)設(shè)備的標(biāo)識(shí)符包括與虛擬網(wǎng)絡(luò)代理關(guān)聯(lián)的虛擬交換機(jī)的標(biāo)識(shí)符。
條款12.條款10至11中的任一條款的方法,其中分組的不變部分包括分組的凈荷。
條款13.條款1至12中的任一條款的方法,其中接收的信息指定應(yīng)用分組特性的時(shí)間段。
條款14.條款1至13中的任一條款的方法,其中分組特性包括待監(jiān)控的分組的源地址和目的地地址。
條款15.一種包括指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),指令用于使得可編程處理器:
從網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備接收多個(gè)消息,其中每個(gè)消息包括(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳;標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息;以及基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
條款16.一種虛擬網(wǎng)絡(luò)控制器包括:一個(gè)或多個(gè)處理器;由處理器執(zhí)行的多個(gè)虛擬機(jī),以從網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)設(shè)備接收多個(gè)消息,其中每個(gè)消息包括(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳;以及多個(gè)分析虛擬機(jī),其中多個(gè)虛擬機(jī)標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息,并且基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲。
條款17.條款16的虛擬網(wǎng)絡(luò)控制器,其中多個(gè)分析虛擬機(jī)通過簽名對(duì)多個(gè)消息的內(nèi)容進(jìn)行排序,針對(duì)每個(gè)簽名獲得網(wǎng)絡(luò)設(shè)備標(biāo)識(shí)符和時(shí)間戳的列表,以及通過時(shí)間戳對(duì)針對(duì)每個(gè)簽名的列表進(jìn)行排序。
條款18.條款17的虛擬網(wǎng)絡(luò)控制器,其中針對(duì)給定簽名,多個(gè)分析虛擬機(jī)基于與該簽名關(guān)聯(lián)的虛擬網(wǎng)絡(luò)設(shè)備標(biāo)識(shí)符和時(shí)間戳的列表的列表,構(gòu)建原始分組遍歷的虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)映射,并且使虛擬網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)映射與網(wǎng)絡(luò)的已知物理拓?fù)浣Y(jié)構(gòu)匹配。
條款19.條款18的虛擬網(wǎng)絡(luò)控制器,其中多個(gè)分析虛擬機(jī)標(biāo)識(shí)與簽名之一關(guān)聯(lián)的相異流,基于網(wǎng)絡(luò)的已知物理拓?fù)浣Y(jié)構(gòu)生成針對(duì)標(biāo)識(shí)流之一的、包括流中分組遍歷的物理網(wǎng)絡(luò)設(shè)備的列表的路徑映射,在路徑映射上生成散列,以及針對(duì)每個(gè)路徑映射散列,確定分組遍歷從源到目的地的物理網(wǎng)絡(luò)路徑所用的時(shí)間。
條款20.條款1至19中的任一條款的虛擬網(wǎng)絡(luò)控制器,其中多個(gè)分析虛擬機(jī)計(jì)算物理網(wǎng)絡(luò)路徑的延遲的統(tǒng)計(jì)量度。
條款21.一種系統(tǒng)包括:虛擬網(wǎng)絡(luò)控制器,虛擬網(wǎng)絡(luò)控制器包括:
一個(gè)或多個(gè)處理器;由處理器執(zhí)行的多個(gè)虛擬機(jī);以及包括一個(gè)或多個(gè)處理器的多個(gè)網(wǎng)絡(luò)設(shè)備,其中多個(gè)網(wǎng)絡(luò)設(shè)備從虛擬網(wǎng)絡(luò)控制器接收指定待分析分組的分組特性的信息,接收分組,其中多個(gè)虛擬機(jī)從多個(gè)網(wǎng)絡(luò)設(shè)備接收多個(gè)消息,其中每個(gè)消息包括(1)包括唯一標(biāo)識(shí)原始分組的原始分組的不變部分的散列的分組簽名,(2)從其接收相應(yīng)消息的多個(gè)網(wǎng)絡(luò)設(shè)備之一的標(biāo)識(shí)符,以及(3)指示原始分組被從其接收相應(yīng)消息的網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳;其中虛擬網(wǎng)絡(luò)控制器進(jìn)一步包括多個(gè)分析虛擬機(jī),多個(gè)分析虛擬機(jī)標(biāo)識(shí)具有共同分組簽名的多個(gè)消息中的兩個(gè)或更多信息,并且基于分析具有共同分組簽名的標(biāo)識(shí)消息的內(nèi)容,確定網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)路徑的延遲;其中多個(gè)網(wǎng)絡(luò)設(shè)備包括在處理器上執(zhí)行的虛擬網(wǎng)絡(luò)代理,響應(yīng)于確定分組匹配指定特性,虛擬網(wǎng)絡(luò)代理確定唯一標(biāo)識(shí)分組的分組的不變部分的散列以獲得分組簽名,并且向虛擬網(wǎng)絡(luò)控制器轉(zhuǎn)發(fā)消息,該消息指定:(1)分組簽名,(2)網(wǎng)絡(luò)設(shè)備的標(biāo)識(shí)符,和(3)指示分組被網(wǎng)絡(luò)設(shè)備處理的時(shí)間的時(shí)間戳。
條款22.條款21的系統(tǒng),其中多個(gè)網(wǎng)絡(luò)設(shè)備包括多個(gè)服務(wù)器設(shè)備,多個(gè)服務(wù)器設(shè)備各自包括相應(yīng)虛擬交換機(jī)和相應(yīng)虛擬網(wǎng)絡(luò)代理,并且其中由消息指定的標(biāo)識(shí)符包括與虛擬網(wǎng)絡(luò)代理關(guān)聯(lián)的虛擬交換機(jī)的標(biāo)識(shí)符。
動(dòng)態(tài)日志記錄
總體上,本公開的技術(shù)被描述用于動(dòng)態(tài)地修改由日志記錄信息生成器響應(yīng)于在由收集器接收的日志記錄信息中檢測的事件而執(zhí)行的日志記錄的范圍。例如,生成器設(shè)備可以將信息記入日志到符合日志記錄基線的范圍,并且利用基線日志記錄信息定期更新收集器。通過分析基線日志記錄信息,收集器可以確定指示需要更大日志記錄范圍的事件已經(jīng)在生成器上出現(xiàn)或者已經(jīng)由生成器檢測。換言之,收集器可以確定由于例如錯(cuò)誤事件,生成器要將比由日志記錄基線規(guī)定的信息更多的信息記入日志。因此,收集器可以指導(dǎo)生成器增加其日志記錄范圍以將附加信息記入日志。在一些實(shí)例中,這種指導(dǎo)可以包括請(qǐng)求生成器答復(fù)附加的狀態(tài)信息。在一些實(shí)例中,這種指導(dǎo)可以包括請(qǐng)求生成器通過例如觸發(fā)生成除基線規(guī)定的信息外的附加日志記錄信息的診斷子例程,主動(dòng)探測應(yīng)用。因此,技術(shù)可以使得收集器能夠動(dòng)態(tài)地適配由日志記錄信息生成器執(zhí)行的日志記錄的范圍,以在需要時(shí)擴(kuò)大收集的日志記錄信息的量。在其中大量設(shè)備可以生成日志記錄信息的數(shù)據(jù)中心環(huán)境中,技術(shù)可以導(dǎo)致日志記錄信息的更易管理的收集。
圖13是詳細(xì)圖示根據(jù)本文中描述的技術(shù)用于動(dòng)態(tài)地修改由數(shù)據(jù)中心元件生成的日志記錄信息的虛擬網(wǎng)絡(luò)控制器的示例部件的框圖。vnc節(jié)點(diǎn)102a可以表示圖5的vnc節(jié)點(diǎn)102a的示例實(shí)例。分析vm104a的收集器1204a與數(shù)據(jù)中心元件進(jìn)行通信,以接收日志消息中的日志記錄信息。在圖示的示例中,收集器1204a從在服務(wù)器170的虛擬機(jī)1174上執(zhí)行的應(yīng)用1212接收日志消息1208。其可以表示圖5的規(guī)則引擎200a的示例實(shí)例的規(guī)則引擎1200a將一個(gè)或多個(gè)規(guī)則1206a(其各自定義條件和一個(gè)或多個(gè)動(dòng)作集)的集應(yīng)用于接收到的日志消息,并且收集器1204a將日志消息(或者至少在其中傳輸?shù)娜罩居涗浶畔?的表示存儲(chǔ)到分析數(shù)據(jù)庫106a的日志數(shù)據(jù)庫1202a。規(guī)則1206a是可編程的,這是因?yàn)楣芾韱T24可以與ui134交互,以使用規(guī)則修改消息1154添加、修改或刪除規(guī)則1206a中的規(guī)則。因此,在現(xiàn)場或后開發(fā)中可以擴(kuò)展規(guī)則1206a,并且因?yàn)樵诳蛻粽军c(diǎn)處的系統(tǒng)/解決方案測試或故障排除期間定義新規(guī)則。收集器1204a可以在硬件、軟件、固件或其任何組合中實(shí)現(xiàn)。
盡管被描述為數(shù)據(jù)庫,日志數(shù)據(jù)庫1202a可以使用各種數(shù)據(jù)結(jié)構(gòu)中的一個(gè)或多個(gè)數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn),各種數(shù)據(jù)結(jié)構(gòu)包括各種類型的數(shù)據(jù)庫、日志文件(即,具有一系列日志記錄的平面文件)、表、鏈表、映射等。日志數(shù)據(jù)庫1202a中的日志記錄信息可以由分布式散列表的條目引用,例如,這允許多個(gè)vnc節(jié)點(diǎn)102標(biāo)識(shí)特定服務(wù)器的位置并且獲得針對(duì)特定服務(wù)器的日志記錄信息。
通過日志消息傳輸?shù)娜罩居涗浶畔?包括日志消息1208)可以具有結(jié)構(gòu)化格式(具有已知字段值),以使得能夠?qū)⒁?guī)則1206a應(yīng)用于結(jié)構(gòu)化數(shù)據(jù)。例如,日志消息可以使用xml編碼,并且可以符合xmpp。
例如,消息可以包括以下一般格式的信息:
<msg-id,串1,字段1,串2,字段2,...>
消息標(biāo)識(shí)符“msg-id”是唯一消息標(biāo)識(shí)符,其允許用戶標(biāo)識(shí)并且選擇日志數(shù)據(jù)庫1202a中的消息。串字段“串1”、“串2”等可以是任何字符串或比特串,其中特定串可以標(biāo)識(shí)特定對(duì)象、錯(cuò)誤、異常等。字段“字段1”、“字段2”等可以包含涉及緊接在前的串的性質(zhì)的信息。據(jù)此,規(guī)則1206a的規(guī)則:
如果(串=_____,字段1=_____)則(動(dòng)作)
在上文中,動(dòng)作的示例可以定義將由規(guī)則引擎1204a(或者vnc節(jié)點(diǎn)102a的其它部件)執(zhí)行的一個(gè)或多個(gè)動(dòng)作。例如,如果特定錯(cuò)誤發(fā)生(如由串和字段1值指示的)并且產(chǎn)生在特定位置中的結(jié)果,規(guī)則引擎1200a可以執(zhí)行動(dòng)作,以通過指導(dǎo)應(yīng)用1212生成關(guān)于錯(cuò)誤的附加日志記錄信息,確定關(guān)于錯(cuò)誤的更多信息。串和字段值可以以任何方式用于指示任何形式的錯(cuò)誤,并且動(dòng)作可以是可以由計(jì)算機(jī)進(jìn)行的任何動(dòng)作。從規(guī)則引擎1200a對(duì)應(yīng)用1212的指導(dǎo)可以是跟蹤由應(yīng)用使用(即將內(nèi)容存儲(chǔ)在分析數(shù)據(jù)庫中)的特定緩沖器的內(nèi)容、檢索表或其它信息、建立主動(dòng)探測等。
規(guī)則的進(jìn)一步示例包括諸如以下的規(guī)則:
1.如果(方法_1消息類型是x),則(使用來自方法_1消息的參數(shù)得到方法_2消息)
2.如果(方法_1消息類型是y),則(使用來自方法_1消息的參數(shù)得到方法_2消息)
3.如果(方法_2消息類型是z),則(設(shè)置方法_3觸發(fā))
在緊接在前示例中,“方法1”指的是基線日志記錄,“方法2”指的是應(yīng)用跟蹤,并且“方法3”指的是主動(dòng)探測(例如,觸發(fā)應(yīng)用中的診斷子例程)。換言之,如果出現(xiàn)兩個(gè)不同消息類型(例如,“x”和“y”,它們可以由特定串/字段組合指示)中的任一者,則示例規(guī)則1和示例規(guī)則2觸發(fā)應(yīng)用跟蹤,并且如果出現(xiàn)另一消息類型(“z”),則規(guī)則3觸發(fā)特定探測。在圖示的示例中,規(guī)則1206a之一匹配在日志消息1208中接收的日志記錄信息,并且規(guī)則引擎1200a執(zhí)行針對(duì)規(guī)則的對(duì)應(yīng)動(dòng)作,以將日志記錄修改消息1210發(fā)送到應(yīng)用1212,以修改所生成的日志記錄信息的范圍。在一些實(shí)例中,規(guī)則可以使得在“方法_2”消息中接收的日志記錄信息觸發(fā)“方法_3”動(dòng)作,并且反之亦然。如上所述,技術(shù)可以包括指導(dǎo)以其它方式生成日志記錄信息的其它類型的規(guī)則的其它類型的“方法”。
可以由規(guī)則1206a定義的其它類型的動(dòng)作是包含特定信息的次級(jí)表的實(shí)施方式和總數(shù)。例如,在由規(guī)則引擎1200a應(yīng)用時(shí),規(guī)則1206a可以指導(dǎo)應(yīng)用生成由某些故障排除應(yīng)用所要求的指定附加信息,并且將指定附加信息存儲(chǔ)到次級(jí)表,次級(jí)表可以存儲(chǔ)任何格式的信息。
圖14是圖示根據(jù)本文中描述的技術(shù)用于動(dòng)態(tài)地修改由數(shù)據(jù)中心元件或其它生成器生成的日志記錄信息的虛擬網(wǎng)絡(luò)控制器的操作的示例模式的流程圖。出于說明性目的關(guān)于圖4的vnc節(jié)點(diǎn)102a的部件描述示例。首先,收集器1204a從應(yīng)用1212接收依照針對(duì)應(yīng)用1212的基線范圍的日志消息1208中的基線日志記錄信息(1300)。規(guī)則引擎1200a將規(guī)則1206a或其精確子集應(yīng)用于基線日志記錄信息,以嘗試匹配相應(yīng)規(guī)則條件與基線日志記錄信息的性質(zhì)(1302)。如果由規(guī)則引擎1200a應(yīng)用的規(guī)則1206a之一匹配并且指定應(yīng)用跟蹤動(dòng)作(1304的是分支),規(guī)則引擎1200a發(fā)送日志記錄修改消息1210,以包括對(duì)應(yīng)用1212執(zhí)行應(yīng)用跟蹤的指導(dǎo)(1306)。隨后,收集器1204a接收響應(yīng)日志消息,響應(yīng)日志消息包括應(yīng)用跟蹤結(jié)果以用于由例如分析vm104a進(jìn)行分析(1308)。收集器1204a將日志記錄信息存儲(chǔ)到日志數(shù)據(jù)庫1202a。
如果由規(guī)則引擎1200a應(yīng)用的規(guī)則1206a之一匹配并且指定主動(dòng)探測動(dòng)作(1310的是分支),規(guī)則引擎1200a發(fā)送日志記錄修改消息1210,以包括對(duì)應(yīng)用1212執(zhí)行主動(dòng)探測的指導(dǎo)(1312)。隨后,收集器1204a接收響應(yīng)日志消息,響應(yīng)日志消息包括主動(dòng)探測結(jié)果,以用于由例如分析vm104a進(jìn)行分析(1314)。收集器1204a將日志記錄信息存儲(chǔ)到日志數(shù)據(jù)庫1202a。如果沒有由規(guī)則引擎1200a應(yīng)用于日志消息1208的規(guī)則1206a匹配(1310的否分支),則收集器1204a僅將日志記錄信息存儲(chǔ)到日志數(shù)據(jù)庫1202a。在一些情況下,日志記錄信息可以匹配多個(gè)規(guī)則1206a,并且使得規(guī)則引擎1200a執(zhí)行不同類型的動(dòng)作的多個(gè)對(duì)應(yīng)集(例如,應(yīng)用跟蹤和主動(dòng)探測兩者)。
圖15是圖示根據(jù)本公開中描述的技術(shù)的被配置為響應(yīng)于來自收集器的指導(dǎo)而動(dòng)態(tài)地修改日志記錄范圍的示例計(jì)算設(shè)備的框圖。例如,計(jì)算設(shè)備1400可以表示圖1的服務(wù)器12、tor16或底架交換機(jī)18中的任何一種。圖15僅圖示計(jì)算設(shè)備1400的一個(gè)特定示例,并且在其它實(shí)例中可以使用計(jì)算設(shè)備1400的許多其它示例。例如,實(shí)現(xiàn)tor16和底架交換機(jī)18的計(jì)算設(shè)備可以包括高速分布式轉(zhuǎn)發(fā)平面。
如在圖15的具體示例中示出的,計(jì)算設(shè)備1400包括一個(gè)或多個(gè)處理器1401、一個(gè)或多個(gè)通信單元1402、一個(gè)或多個(gè)輸入設(shè)備1404、一個(gè)或多個(gè)輸出設(shè)備1406以及一個(gè)或多個(gè)存儲(chǔ)設(shè)備1408。計(jì)算設(shè)備1400進(jìn)一步包括操作系統(tǒng)1410、虛擬化模塊1412以及一個(gè)或多個(gè)應(yīng)用1414a至1414n(統(tǒng)稱為“應(yīng)用1414”)。例如,虛擬化模塊1412可以表示服務(wù)器12a的管理程序31,并且應(yīng)用1414可以表示不同vm36。部件1401、部件1402、部件1404、部件1406和部件1408中的每個(gè)部件可以互連(物理上、通信上和/或操作上)以用于部件間通信。作為圖15中的一個(gè)示例,部件1401、部件1402、部件1404、部件1406和部件1408可以通過一個(gè)或多個(gè)通信信道1416耦合。在一些示例中,通信信道1416可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于傳達(dá)數(shù)據(jù)的任何其它信道。虛擬化模塊1412和應(yīng)用1414,以及操作系統(tǒng)1410也可以與彼此以及與計(jì)算設(shè)備1400中的其它部件傳達(dá)信息。虛擬化模塊1412包括軟件交換機(jī)1420以在一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)上交換分組。虛擬化模塊1412還包括流跟蹤模塊1418,以通過生成流跟蹤分組并且遞增式設(shè)置相應(yīng)ttl值以使得下游交換設(shè)備向計(jì)算設(shè)備返回超時(shí)消息,確定由計(jì)算設(shè)備1400交換的網(wǎng)絡(luò)流的物理網(wǎng)絡(luò)路徑。流跟蹤模塊1418可以表示圖1的ftm48的示例實(shí)例。
在一個(gè)示例中,處理器1401被配置為實(shí)現(xiàn)用于在計(jì)算設(shè)備1400內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器1401可以有能力處理存儲(chǔ)在存儲(chǔ)設(shè)備1408中的指令。處理器1401的示例可以包括微處理器、控制器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者等效分立或集成邏輯電路裝置中的任何一個(gè)或多個(gè)。
一個(gè)或多個(gè)存儲(chǔ)設(shè)備1408可以被配置為存儲(chǔ)在操作期間計(jì)算設(shè)備1400內(nèi)的信息。在一些示例中,存儲(chǔ)設(shè)備1408被描述為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,存儲(chǔ)設(shè)備1408是暫時(shí)存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備1408的主要目的不是長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備1408被描述為易失存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備1408在計(jì)算機(jī)關(guān)閉時(shí)不保持存儲(chǔ)的內(nèi)容。易失存儲(chǔ)器的示例包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失存儲(chǔ)器。在一些示例中,存儲(chǔ)設(shè)備1408用于存儲(chǔ)程序指令以用于由處理器1401執(zhí)行。在一個(gè)示例中,存儲(chǔ)設(shè)備1408由運(yùn)行在計(jì)算設(shè)備1400上的軟件或應(yīng)用(例如,操作系統(tǒng)1410、虛擬化模塊1412等)使用,以在程序執(zhí)行期間暫時(shí)存儲(chǔ)信息。
在一些示例中,存儲(chǔ)設(shè)備1408還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備1408可以被配置為存儲(chǔ)比易失存儲(chǔ)器更大量的信息。存儲(chǔ)設(shè)備1408可以進(jìn)一步被配置用于信息的長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備1408包括非易失存儲(chǔ)元件。這樣的非易失存儲(chǔ)元件的示例包括磁性硬盤、盒式磁帶或磁帶盒、光盤、軟盤、閃速存儲(chǔ)器、或者電可編程存儲(chǔ)器(eprom)或電可擦除可編程存儲(chǔ)器(eeprom)的形式。
在一些示例中,計(jì)算設(shè)備1400還包括一個(gè)或多個(gè)通信單元1402。在一個(gè)示例中,計(jì)算設(shè)備1400利用通信單元1402與外部設(shè)備進(jìn)行通信。在一些示例中,通信單元1402可以通過經(jīng)由入站和出站鏈路在一個(gè)或多個(gè)網(wǎng)絡(luò)(諸如一個(gè)或多個(gè)無線網(wǎng)絡(luò))上發(fā)送數(shù)據(jù)分組而進(jìn)行通信。通信單元1402可以包括諸如以太網(wǎng)卡之類的一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡(ifc)、光學(xué)收發(fā)器、射頻收發(fā)器、或者可以發(fā)送和接收信息的任何其它類型的設(shè)備。這樣的網(wǎng)絡(luò)接口的其它示例可以包括藍(lán)牙、3g和wi-fi無線電部件。在一些示例中,計(jì)算設(shè)備1400利用通信單元1402與數(shù)據(jù)中心的虛擬化網(wǎng)絡(luò)域中的其它計(jì)算設(shè)備交換隧道分組。
在一個(gè)示例中,計(jì)算設(shè)備1400還包括一個(gè)或多個(gè)輸入設(shè)備14014。在一些示例中,輸入設(shè)備1404被配置為通過觸覺、音頻或視頻反饋接收來自用戶的輸入。輸入設(shè)備1404的示例包括存在敏感顯示器、鼠標(biāo)、鍵盤、語音響應(yīng)系統(tǒng)、攝像機(jī)、麥克風(fēng)、或者用于檢測來自用戶的命令的任何其它類型的設(shè)備。在一些示例中,存在敏感顯示器包括觸摸屏。
一個(gè)或多個(gè)輸出設(shè)備1406也可以被包括在計(jì)算設(shè)備1400中。在一些示例中,輸出設(shè)備1406被配置為使用觸覺、音頻或視頻刺激向用戶提供輸出。在一個(gè)示例中,輸出設(shè)備1406包括存在敏感顯示器、聲卡、視頻圖形適配器卡、或者用于將信號(hào)轉(zhuǎn)換成人或機(jī)器可理解的適當(dāng)形式的任何其它類型的設(shè)備。輸出設(shè)備1406的另外示例包括揚(yáng)聲器、陰極射線管(crt)監(jiān)控器、液晶顯示器(lcd)、或者可以生成用戶可理解輸出的任何其它類型的設(shè)備。
計(jì)算設(shè)備1400可以包括操作系統(tǒng)1412。在一些示例中,操作系統(tǒng)1412控制計(jì)算設(shè)備1400的部件的操作。例如,在一個(gè)示例中,操作系統(tǒng)1412便于模塊應(yīng)用1414與處理器1401、通信單元1402、輸入設(shè)備1404、輸出設(shè)備1406以及存儲(chǔ)設(shè)備1410的通信。應(yīng)用1414可以各自包括可由計(jì)算設(shè)備1400執(zhí)行的程序指令和/或數(shù)據(jù)。
作為一個(gè)示例,應(yīng)用1414a可以包括使得計(jì)算設(shè)備1400執(zhí)行本公開中描述的一個(gè)或多個(gè)操作和動(dòng)作的指令。應(yīng)用1414a包括探測例程1418和跟蹤例程1420。響應(yīng)于來自收集器的指導(dǎo),探測例程1418增加應(yīng)用1414a生成日志記錄信息的范圍。響應(yīng)于來自收集器的指導(dǎo),跟蹤例程1420從存儲(chǔ)器讀取應(yīng)用跟蹤信息以生成附加日志記錄信息。應(yīng)用1414a將生成的日志記錄信息發(fā)送到收集器。
圖16是圖示根據(jù)本公開中描述的技術(shù)的由應(yīng)用響應(yīng)于來自收集器的指導(dǎo)而動(dòng)態(tài)地修改日志記錄范圍的操作的示例模式的流程圖。出于說明性目的關(guān)于圖15的計(jì)算設(shè)備1400描述操作的示例模式。
首先,計(jì)算設(shè)備1400的應(yīng)用1414a被配置為將基線日志記錄信息以日志消息發(fā)送到諸如圖1的vnc22之類的收集器(1530)。應(yīng)用1414a從收集器接收日志記錄修改消息,日志記錄修改消息指導(dǎo)應(yīng)用1414a修改日志記錄信息生成的范圍(1532)。如果日志記錄修改消息包括執(zhí)行應(yīng)用跟蹤的指導(dǎo)(1534的是分支),跟蹤例程1420執(zhí)行,以依照日志記錄修改消息中指定的零個(gè)或多個(gè)參數(shù)執(zhí)行應(yīng)用跟蹤并且生成新的日志記錄信息(1536)。例如,日志記錄修改消息可以指定執(zhí)行關(guān)于由應(yīng)用1414a存儲(chǔ)的特定數(shù)據(jù)結(jié)構(gòu)的應(yīng)用跟蹤。
如果日志記錄修改消息包括執(zhí)行主動(dòng)探測的指導(dǎo)(1538的是分支),探測例程1418執(zhí)行,以執(zhí)行探測以生成新的日志記錄信息(1540)。執(zhí)行探測可以包括設(shè)置標(biāo)志或修改變量,以增加應(yīng)用1414a生成日志記錄信息的范圍。應(yīng)用1414a將新生成的日志記錄信息以新日志消息發(fā)送到收集器以用于分析(1542)。
在以下條款中描述了各種示例。依照本文中描述的技術(shù),在以下條款中的任一條款中闡述的示例可以被并入,并且可以與貫穿本公開描述的任何其它示例組合實(shí)現(xiàn)。
條款1.一種方法包括:由收集器從生成器接收包括日志記錄信息的日志消息;由收集器將各自指定條件和對(duì)應(yīng)動(dòng)作的一個(gè)或多個(gè)規(guī)則應(yīng)用于日志記錄信息,以標(biāo)識(shí)匹配規(guī)則;以及在標(biāo)識(shí)匹配規(guī)則的同時(shí),執(zhí)行匹配規(guī)則的動(dòng)作以生成和發(fā)送日志記錄修改消息,以增加生成器生成日志記錄信息的范圍。
條款2.條款1的方法,進(jìn)一步包括由收集器接收包括由生成器依照增加的范圍生成的附加日志記錄信息的附加日志消息。
條款3.條款1至2中的任一條款的方法,其中匹配規(guī)則的動(dòng)作指定主動(dòng)探測,并且日志記錄修改消息包括指導(dǎo)生成器執(zhí)行應(yīng)用的主動(dòng)探測。
條款4.條款1至3中的任一條款的方法,其中匹配規(guī)則的動(dòng)作指定應(yīng)用跟蹤,并且日志記錄修改消息包括指導(dǎo)生成器執(zhí)行應(yīng)用的應(yīng)用跟蹤。
條款5.條款1至4中的任一條款的方法,進(jìn)一步包括:由收集器接收包括新規(guī)則的規(guī)則修改消息;將新規(guī)則添加到一個(gè)或多個(gè)規(guī)則;以及將新規(guī)則應(yīng)用于日志記錄信息。
條款6.一種網(wǎng)絡(luò)設(shè)備包括:一個(gè)或多個(gè)處理器;收集器,被配置用于由處理器執(zhí)行,以從生成器接收包括日志記錄信息的日志消息;以及規(guī)則引擎,用于將各自指定條件和對(duì)應(yīng)動(dòng)作的一個(gè)或多個(gè)規(guī)則應(yīng)用于日志記錄信息,以標(biāo)識(shí)匹配規(guī)則,其中在標(biāo)識(shí)匹配規(guī)則的同時(shí),規(guī)則引擎執(zhí)行匹配規(guī)則的動(dòng)作以生成和發(fā)送日志記錄修改消息,以增加生成器生成日志記錄信息的范圍。
條款7.條款6的網(wǎng)絡(luò)設(shè)備,其中收集器接收包括由生成器依照增加的范圍生成的附加日志記錄信息的附加日志消息。
條款8.條款6至7中的任一條款的網(wǎng)絡(luò)設(shè)備,其中匹配規(guī)則的動(dòng)作指定主動(dòng)探測,并且日志記錄修改消息包括指導(dǎo)生成器執(zhí)行應(yīng)用的主動(dòng)探測。
條款9.條款6至8中的任一條款的網(wǎng)絡(luò)設(shè)備,其中匹配規(guī)則的動(dòng)作指定應(yīng)用跟蹤,并且日志記錄修改消息包括指導(dǎo)生成器執(zhí)行應(yīng)用的應(yīng)用跟蹤。
條款10.條款6至9中的任一條款的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括控制平面過程,用于接收包括新規(guī)則的規(guī)則修改消息并且將新規(guī)則添加到一個(gè)或多個(gè)規(guī)則,其中規(guī)則引擎將新規(guī)則應(yīng)用于日志記錄信息。
條款11.條款6至10中的任一條款的網(wǎng)絡(luò)設(shè)備,其中收集器包括控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的虛擬網(wǎng)絡(luò)控制器。
條款12.條款11的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括其包括日志數(shù)據(jù)庫的分布式分析數(shù)據(jù)庫,其中收集器將日志記錄信息存儲(chǔ)到日志數(shù)據(jù)庫。
條款13.條款12的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括分析虛擬機(jī),用于分析分布式分析數(shù)據(jù)庫,以診斷一個(gè)虛擬網(wǎng)絡(luò)的條件。
條款14.一種方法包括:由計(jì)算設(shè)備并且向收集器以日志消息發(fā)送針對(duì)應(yīng)用的基線日志記錄信息;由計(jì)算設(shè)備并且從收集器接收日志記錄修改消息;響應(yīng)于日志記錄修改消息,增加應(yīng)用生成日志記錄信息的范圍;以及由計(jì)算設(shè)備并且向收集器發(fā)送包括由應(yīng)用依照增加的范圍生成的附加日志記錄信息的附加日志消息。
條款15.條款14的方法,其中日志記錄修改消息包括執(zhí)行應(yīng)用的主動(dòng)探測的指導(dǎo),方法進(jìn)一步包括由應(yīng)用執(zhí)行主動(dòng)探測。
條款16.條款14至15中的任一條款的方法,其中日志記錄修改消息包括執(zhí)行應(yīng)用的應(yīng)用跟蹤的指導(dǎo),方法進(jìn)一步包括由應(yīng)用執(zhí)行應(yīng)用跟蹤。
條款17.一種網(wǎng)絡(luò)設(shè)備包括:一個(gè)或多個(gè)處理器;被配置用于由處理器執(zhí)行的應(yīng)用;輸出設(shè)備,用于向收集器以日志消息發(fā)送針對(duì)應(yīng)用的基線日志記錄信息;輸入設(shè)備,用于從收集器接收日志記錄修改消息,其中響應(yīng)于日志記錄修改消息,應(yīng)用增加應(yīng)用生成日志記錄信息的范圍,并且其中輸出設(shè)備向收集器發(fā)送包括由應(yīng)用依照增加的范圍生成的附加日志記錄信息的附加日志消息。
條款18.條款17的網(wǎng)絡(luò)設(shè)備,其中日志記錄修改消息包括執(zhí)行應(yīng)用的主動(dòng)探測的指導(dǎo),網(wǎng)絡(luò)設(shè)備進(jìn)一步包括應(yīng)用執(zhí)行主動(dòng)探測的主動(dòng)探測模塊。
條款19.條款17至18中的任一條款的網(wǎng)絡(luò)設(shè)備,其中日志記錄修改消息包括執(zhí)行應(yīng)用的應(yīng)用跟蹤的指導(dǎo),網(wǎng)絡(luò)設(shè)備進(jìn)一步包括應(yīng)用跟蹤模塊以執(zhí)行應(yīng)用跟蹤。
在鏈路故障之后重新路由網(wǎng)絡(luò)流量
總體上,本公開的這部分描述用于網(wǎng)絡(luò)設(shè)備之間通信的技術(shù)。例如,依照本公開的技術(shù),即使在底層物理網(wǎng)絡(luò)中通信時(shí),服務(wù)器可以被配置為使用虛擬網(wǎng)絡(luò)重疊。服務(wù)器可以被配置具有表示物理網(wǎng)絡(luò)的預(yù)留虛擬網(wǎng)絡(luò)。在一個(gè)示例中,虛擬網(wǎng)絡(luò)被稱為虛擬網(wǎng)絡(luò)0或vn0。vn0可以是配置在服務(wù)器上的多個(gè)虛擬網(wǎng)絡(luò)之一。然而,相比于針對(duì)其服務(wù)器根據(jù)重疊網(wǎng)絡(luò)規(guī)則封裝分組并且轉(zhuǎn)發(fā)封裝分組的其它虛擬網(wǎng)絡(luò),在將分組轉(zhuǎn)發(fā)到vn0虛擬網(wǎng)絡(luò)時(shí),基于由針對(duì)vn0的網(wǎng)絡(luò)轉(zhuǎn)發(fā)表指定的轉(zhuǎn)發(fā)信息,服務(wù)器根據(jù)物理網(wǎng)絡(luò)的規(guī)則不封裝分組并且轉(zhuǎn)發(fā)它們。
在服務(wù)器的虛擬網(wǎng)絡(luò)代理和虛擬網(wǎng)絡(luò)控制器之間的通信會(huì)話被建立之前或者在建立通信會(huì)話期間,在服務(wù)器的虛擬網(wǎng)絡(luò)代理和虛擬網(wǎng)絡(luò)控制器之間的初始通信通過由vn0指定的默認(rèn)路由發(fā)生。一旦在服務(wù)器的虛擬網(wǎng)絡(luò)代理和虛擬網(wǎng)絡(luò)控制器之間建立通信會(huì)話,虛擬網(wǎng)絡(luò)控制器向服務(wù)器的虛擬網(wǎng)絡(luò)代理發(fā)送命令,以安裝針對(duì)vn0的路由表(轉(zhuǎn)發(fā)表)中的指定路由,其中安裝的指定路由將使用重疊網(wǎng)絡(luò)和封裝。
以這種方式,在重疊網(wǎng)絡(luò)的發(fā)現(xiàn)和初始化期間,以及在其中故障鏈路、節(jié)點(diǎn)或其它網(wǎng)絡(luò)中斷已經(jīng)暫時(shí)停止了經(jīng)由重疊網(wǎng)絡(luò)的通信的條件期間,虛擬網(wǎng)絡(luò)控制器和服務(wù)器可以使用虛擬子網(wǎng)vn0依照默認(rèn)網(wǎng)絡(luò)轉(zhuǎn)發(fā)表nft0進(jìn)行通信。依照本公開的技術(shù),在檢測到鏈路故障時(shí),故障鏈路本地的虛擬網(wǎng)絡(luò)代理可以改變網(wǎng)絡(luò)分組的封裝,以使重疊網(wǎng)絡(luò)內(nèi)的流量改向,并且虛擬網(wǎng)絡(luò)代理通知虛擬網(wǎng)絡(luò)控制器路由改變。轉(zhuǎn)而,虛擬網(wǎng)絡(luò)控制器更新其路由信息,可以發(fā)出消息到其它服務(wù)器的其它虛擬網(wǎng)絡(luò)代理,以更新由虛擬網(wǎng)絡(luò)代理存儲(chǔ)在網(wǎng)絡(luò)轉(zhuǎn)發(fā)表內(nèi)的本地路由信息。
在一個(gè)示例中,方法包括在虛擬網(wǎng)絡(luò)控制器和在服務(wù)器設(shè)備上執(zhí)行的虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,由服務(wù)器設(shè)備使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由向虛擬網(wǎng)絡(luò)控制器發(fā)送網(wǎng)絡(luò)分組,以及在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,從虛擬網(wǎng)絡(luò)控制器接收命令以在服務(wù)器設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。方法還包括,響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
在一個(gè)示例中,網(wǎng)絡(luò)設(shè)備包括虛擬網(wǎng)絡(luò)代理以及網(wǎng)絡(luò)接口,網(wǎng)絡(luò)接口用于在虛擬網(wǎng)絡(luò)控制器和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,將網(wǎng)絡(luò)分組使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由發(fā)送到虛擬網(wǎng)絡(luò)控制器,其中,在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,虛擬網(wǎng)絡(luò)代理從虛擬網(wǎng)絡(luò)控制器接收命令以在網(wǎng)絡(luò)設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器,以及其中,響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,虛擬網(wǎng)絡(luò)代理在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
在另一示例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括指令,指令使得可編程處理器:在虛擬網(wǎng)絡(luò)控制器和服務(wù)器設(shè)備上執(zhí)行的虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,由服務(wù)器設(shè)備將網(wǎng)絡(luò)分組使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由發(fā)送到虛擬網(wǎng)絡(luò)控制器,在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,從虛擬網(wǎng)絡(luò)控制器接收命令以在服務(wù)器設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器,以及響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
在又一示例中,系統(tǒng)包括虛擬網(wǎng)絡(luò)控制器和服務(wù)器網(wǎng)絡(luò)設(shè)備,服務(wù)器網(wǎng)絡(luò)設(shè)備包括虛擬網(wǎng)絡(luò)代理和網(wǎng)絡(luò)接口,網(wǎng)絡(luò)接口用于在虛擬網(wǎng)絡(luò)控制器和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,將網(wǎng)絡(luò)分組使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由發(fā)送到虛擬網(wǎng)絡(luò)控制器。在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,虛擬網(wǎng)絡(luò)代理從虛擬網(wǎng)絡(luò)控制器接收命令以在網(wǎng)絡(luò)設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,虛擬網(wǎng)絡(luò)代理在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。虛擬網(wǎng)絡(luò)控制器包括一個(gè)或多個(gè)處理器以及由處理器執(zhí)行的多個(gè)虛擬機(jī),其中多個(gè)虛擬機(jī)從包括服務(wù)器網(wǎng)絡(luò)設(shè)備的多個(gè)網(wǎng)絡(luò)設(shè)備接收多個(gè)消息,其中多個(gè)消息中的每個(gè)消息指定相應(yīng)默認(rèn)路由。
圖17a是圖示包括依照本公開的技術(shù)進(jìn)行操作的網(wǎng)絡(luò)設(shè)備的系統(tǒng)2250的框圖。圖17a包括表示物理服務(wù)器到ip結(jié)構(gòu)2260的連接的鏈路。服務(wù)器2252a至2252b(“服務(wù)器2252”)可以類似于圖1至圖2的服務(wù)器12、圖3的服務(wù)器50以及圖5的服務(wù)器170中的任何服務(wù)器。在圖17a的描繪中,每個(gè)服務(wù)器2252經(jīng)由第一鏈路a和第二鏈路b連接到ip結(jié)構(gòu)2260。服務(wù)器2252a具有第一鏈路a和第二鏈路b,第一鏈路a具有ip地址ip1a并且第二鏈路b具有ip地址ip1b。服務(wù)器2252b具有被分派ip地址ip2a的第一鏈路a和被分派ip地址ip2b的第二鏈路b。服務(wù)器2252a的vm2254a至2254b(“vm2254”)生成擁有源ip地址為ipv1的分組,并且服務(wù)器2252b生成擁有源ip地址為ipv2的分組。
在一個(gè)示例中,例如在虛擬網(wǎng)絡(luò)域內(nèi)由虛擬機(jī)36執(zhí)行的應(yīng)用實(shí)例生成或消耗的層三(l3)ip分組或?qū)佣?l2)以太網(wǎng)分組的網(wǎng)絡(luò)分組可以被封裝在由物理網(wǎng)絡(luò)傳輸?shù)牧硪环纸M(例如,另一ip或以太網(wǎng)分組)中。在虛擬網(wǎng)絡(luò)中傳輸?shù)姆纸M本文中可以被稱為“內(nèi)部分組”,而物理網(wǎng)絡(luò)分組本文中可以被稱為“外部分組”。虛擬網(wǎng)絡(luò)分組在物理網(wǎng)絡(luò)分組內(nèi)的封裝和/或解封裝可以在虛擬交換機(jī)內(nèi)執(zhí)行,例如在運(yùn)行在每個(gè)服務(wù)器2252上的管理程序或主機(jī)操作系統(tǒng)內(nèi)執(zhí)行。在諸如服務(wù)器2252之類的第一和第二網(wǎng)絡(luò)設(shè)備之間的ecmp路徑可以被虛擬網(wǎng)絡(luò)看作一個(gè)物理連接,因?yàn)樗鼈兊姆纸M(內(nèi)部分組)通過外部ip封裝來封裝。
圖17b是圖示依照一個(gè)示例實(shí)施例的示例隧道封裝的框圖。例如,圖17b圖示隧道封裝以給具有源ip地址ip1a和目的地ip地址ip2a的數(shù)據(jù)分組指向。如上面提到的,隧道封裝用于在虛擬網(wǎng)絡(luò)中重新路由分組。在封裝期間,分組2262(示出為具有ipv1的源地址和ipv2的目的地地址)利用外部包封2264進(jìn)行封裝,其指示分組2262應(yīng)當(dāng)被路由到的地址。在該特定示例中,分組2262從具有ip地址ip1a的服務(wù)器2252a的接口在鏈路a上、通過ip結(jié)構(gòu)2260、并且然后在鏈路a上被路由到服務(wù)器2252b到目的地ip地址ip2a。
圖17c是圖示在沒有鏈路故障時(shí)指向默認(rèn)虛擬子網(wǎng)vn0的分組的框圖。在沒有鏈路故障時(shí),虛擬交換機(jī)30a封裝分組2266,使得封裝包封2268上的地址匹配分組2266的原始旨在地址,因?yàn)椴恍枰{(diào)整。這樣的結(jié)果是與圖17b的示例相同。
圖17d是圖示依照一個(gè)示例實(shí)施例的示例隧道封裝的框圖。例如,圖17d圖示其中發(fā)送服務(wù)器2252a的管理程序31已經(jīng)在到目的地的路徑上檢測到故障鏈路的示例情況。例如,在ip結(jié)構(gòu)2260和服務(wù)器2252b之間的鏈路可能已經(jīng)故障,并且將故障通知服務(wù)器2252a的管理程序。在網(wǎng)絡(luò)中發(fā)生故障鏈路時(shí),將故障通知管理程序31,并且更新其轉(zhuǎn)發(fā)信息,以指示使用具有備選目的地地址的包封2272封裝分組2270。在該特定示例中,因?yàn)閕p結(jié)構(gòu)2260和服務(wù)器2252b之間的鏈路故障,在故障之前將從源地址ip1a被路由到目的地地址ip2a的分組2270現(xiàn)在將從源地址ip1a被路由到目的地地址ip2b。
圖17e是圖示依照一個(gè)示例實(shí)施例的示例非封裝分組2274的框圖。圖17e圖示其中nft32指示交換機(jī)應(yīng)當(dāng)把數(shù)據(jù)分組路由到默認(rèn)路由(其將分組帶到tor交換機(jī)16a)的示例情況。在使用默認(rèn)路由時(shí),不使用重疊網(wǎng)絡(luò),并且虛擬交換機(jī)30a在不封裝的情況下將分組轉(zhuǎn)發(fā)到tor交換機(jī)16a。
圖18a至圖18b是圖示依照一個(gè)示例實(shí)施例的示例網(wǎng)絡(luò)轉(zhuǎn)發(fā)表的框圖。網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280是l3路由表,并且可以對(duì)應(yīng)于虛擬交換機(jī)30a的nft32之一(圖1)(諸如與vn0關(guān)聯(lián)的nft32)。在圖18a的示例中,在與虛擬交換機(jī)30a關(guān)聯(lián)的vn代理35a已經(jīng)建立與虛擬網(wǎng)絡(luò)控制器22的通信會(huì)話之前的時(shí)間,描繪示例網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280。在圖18a的示例中,nft2280包括用于在物理網(wǎng)絡(luò)上將分組轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)控制器的默認(rèn)路由。nft2280包括指示封裝地址的路由條目,該封裝地址包括分派到物理網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)設(shè)備的實(shí)際網(wǎng)絡(luò)地址。
在圖18b的示例中,在vn代理35a已經(jīng)建立與虛擬網(wǎng)絡(luò)控制器22的通信會(huì)話并且已經(jīng)接收重疊路由2296(其已經(jīng)被安裝在網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280中)之后的時(shí)間,描繪網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280。
網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280的每個(gè)路由條目指向相應(yīng)下一跳。下一跳指定關(guān)于如何轉(zhuǎn)發(fā)分組以及分組是否被封裝在外部ip分組中(或其它封裝)的信息。為(例如,ip結(jié)構(gòu)14的)物理網(wǎng)絡(luò)預(yù)留特殊的虛擬網(wǎng)絡(luò)vn0。網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280中的默認(rèn)路由2282指向下一跳2284,下一跳2284指示在不封裝的情況下將分組轉(zhuǎn)發(fā)到物理網(wǎng)絡(luò),如按照物理網(wǎng)絡(luò)的路由規(guī)則。一旦與虛擬網(wǎng)絡(luò)控制器22的連接建立,虛擬網(wǎng)絡(luò)控制器22開始將新的指定路由放在該路由表中,其使用封裝重疊技術(shù)。封裝工作在網(wǎng)絡(luò)層,并且不破壞任何l4連接,這對(duì)于應(yīng)用來說是透明的。這保持ip結(jié)構(gòu)簡單并且有成本效益。例如,虛擬網(wǎng)絡(luò)控制器22添加指定重疊路由并且指向封裝動(dòng)作2298的條目2296。在一些示例中,虛擬網(wǎng)絡(luò)控制器22的控制平面vm使用諸如通過網(wǎng)絡(luò)2260進(jìn)行操作的xmpp之類的通信協(xié)議(諸如上面關(guān)于圖5描述的)與虛擬網(wǎng)絡(luò)交換機(jī)(例如,圖示的由服務(wù)器2252執(zhí)行的vm交換機(jī)2254)進(jìn)行通信。
服務(wù)器設(shè)備可以保持多個(gè)路由表或nft,諸如一個(gè)路由表針對(duì)由服務(wù)器支持的每個(gè)子網(wǎng)。例如,除nft2280之外,服務(wù)器還可以包括除針對(duì)vn0的默認(rèn)表外的第二l3路由表,即與針對(duì)其虛擬網(wǎng)絡(luò)中的網(wǎng)絡(luò)部件的網(wǎng)絡(luò)地址不同于物理網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)地址的虛擬網(wǎng)絡(luò)關(guān)聯(lián)的表。
響應(yīng)于在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前檢測到物理網(wǎng)絡(luò)中的故障鏈路,虛擬交換機(jī)在物理網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器,并且響應(yīng)于在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后檢測到物理網(wǎng)絡(luò)中的故障鏈路,虛擬交換機(jī)在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
圖19是描繪依照本公開的技術(shù)的啟動(dòng)過程的流程圖。如參照?qǐng)D18a至圖18b描述的,網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280包括默認(rèn)路由2282,如果采用默認(rèn)路由2282,其在不封裝的情況下將分組發(fā)送到子網(wǎng)vn0。在vn代理已經(jīng)建立與虛擬網(wǎng)絡(luò)控制器的通信會(huì)話之前,與vn代理關(guān)聯(lián)的虛擬交換機(jī)使用默認(rèn)路由2282,以通過物理網(wǎng)絡(luò)轉(zhuǎn)發(fā)分組(2320)。也就是說,當(dāng)與虛擬網(wǎng)絡(luò)控制器22的初始接觸尚未建立時(shí),虛擬交換機(jī)30a將非封裝的接收分組指向子網(wǎng)vn0。例如,在不封裝的情況下,分組經(jīng)由tor交換機(jī)16a被發(fā)送到虛擬網(wǎng)絡(luò)控制器22。子網(wǎng)vn0不使用重疊網(wǎng)絡(luò),并且vn代理35a通過物理網(wǎng)絡(luò)將消息發(fā)送到虛擬網(wǎng)絡(luò)控制器22(2322),以觸發(fā)虛擬網(wǎng)絡(luò)控制器22利用指定路由更新網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280。一旦已經(jīng)建立與虛擬網(wǎng)絡(luò)控制器22的初始接觸(諸如使用xmpp),虛擬網(wǎng)絡(luò)控制器22可以將重疊路由發(fā)送到vn代理35a,以安裝在具有下一跳的網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280中,以使用重疊網(wǎng)絡(luò)規(guī)則封裝分組并且將封裝分組指向旨在目的地。vn代理35a從虛擬網(wǎng)絡(luò)控制器22接收具有重疊路由的消息(2324),并且將重疊路由安裝到網(wǎng)絡(luò)轉(zhuǎn)發(fā)表2280處的數(shù)據(jù)平面(2326)。
圖20是描繪依照本公開的技術(shù)的網(wǎng)絡(luò)設(shè)備的示例操作的流程圖。將為了關(guān)于圖2a的示例的目的描述圖20。在接收到分組的同時(shí)(2352),例如基于在分組的報(bào)頭中指定的目的地地址,服務(wù)器12a確定包含正確目的地的虛擬子網(wǎng)(2354)。然后,管理程序31(例如,管理程序31的虛擬交換機(jī)30a)使用諸如最長前綴匹配(lpm)算法之類的任何技術(shù)在nft0中查找路由(2356)。如果虛擬交換機(jī)30a確定路由不存在(2358的否分支),分組被丟棄,并且重新開始下一個(gè)分組的處理(2360)。另一方面,如果虛擬交換機(jī)30a確定在nft0中存在路由(2358的是分支),則虛擬交換機(jī)30a確定針對(duì)來自nft0的路由的下一跳(2362)。如果下一跳說要封裝分組(2364的是分支),則包封信息如圖17b所示被添加,并且虛擬交換機(jī)30a將分組發(fā)送到目的地地址。如果虛擬交換機(jī)30a確定下一跳沒有規(guī)定封裝(2364的否分支),則虛擬交換機(jī)30a在不封裝的情況下發(fā)送分組,如圖17e中的。
圖21是圖示依照本公開的一個(gè)或多個(gè)方面的示例設(shè)備2190的框圖。圖19僅圖示計(jì)算設(shè)備2190的一個(gè)特定示例,并且在其它實(shí)例中可以使用計(jì)算設(shè)備2190的許多其它示例。例如,計(jì)算設(shè)備2190可以表示例如圖1至圖2的服務(wù)器12、tor交換機(jī)16、底架交換機(jī)18、虛擬網(wǎng)絡(luò)控制器22、網(wǎng)絡(luò)控制臺(tái)42或ifmap服務(wù)器26中的任何一種。
如在圖19的具體示例中示出的,計(jì)算設(shè)備2190包括一個(gè)或多個(gè)處理器2200、一個(gè)或多個(gè)通信單元2202、一個(gè)或多個(gè)輸入設(shè)備2204、一個(gè)或多個(gè)輸出設(shè)備2206以及一個(gè)或多個(gè)存儲(chǔ)設(shè)備2208。在圖19的具體示例中,計(jì)算設(shè)備2190進(jìn)一步包括操作系統(tǒng)2210、虛擬化模塊2212以及一個(gè)或多個(gè)應(yīng)用2214a至2214n(統(tǒng)稱為“應(yīng)用2214”)。部件2200、部件2202、部件2204、部件2206和部件2208中的每個(gè)部件可以互連(物理上、通信上和/或操作上)以用于部件間通信。作為圖19中的一個(gè)示例,部件2200、部件2202、部件2204、部件2206和部件2208可以通過一個(gè)或多個(gè)通信信道2216耦合。在一些示例中,通信信道2216可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于傳達(dá)數(shù)據(jù)的任何其它信道。虛擬化模塊2212和應(yīng)用2214,以及操作系統(tǒng)2210也可以與彼此以及與計(jì)算設(shè)備2190中的其它部件傳達(dá)信息。虛擬化可以允許這些部件的功能分布在多個(gè)機(jī)器或多個(gè)虛擬機(jī)之上,而管理程序給出單個(gè)部件的外觀。
在一個(gè)示例中,處理器2200被配置為實(shí)現(xiàn)用于在計(jì)算設(shè)備2190內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器2200可以有能力處理存儲(chǔ)在存儲(chǔ)設(shè)備2208中的指令。處理器2200的示例可以包括微處理器、控制器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者等效分立或集成邏輯電路裝置中的任何一個(gè)或多個(gè)。
一個(gè)或多個(gè)存儲(chǔ)設(shè)備2208可以被配置為存儲(chǔ)在操作期間計(jì)算設(shè)備2190內(nèi)的信息。在一些示例中,存儲(chǔ)設(shè)備2208被描述為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,存儲(chǔ)設(shè)備2208是暫時(shí)存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備2208的主要目的不是長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備2208被描述為易失存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備2208在計(jì)算機(jī)關(guān)閉時(shí)不保持存儲(chǔ)的內(nèi)容。易失存儲(chǔ)器的示例包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失存儲(chǔ)器。在一些示例中,存儲(chǔ)設(shè)備2208用于存儲(chǔ)程序指令以用于由處理器2200執(zhí)行。在一個(gè)示例中,存儲(chǔ)設(shè)備2208由運(yùn)行在計(jì)算設(shè)備2190上的軟件或應(yīng)用(例如,操作系統(tǒng)2210、虛擬化模塊2212等)使用,以在程序執(zhí)行期間暫時(shí)存儲(chǔ)信息。
在一些示例中,存儲(chǔ)設(shè)備2208還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備2208可以被配置為存儲(chǔ)比易失存儲(chǔ)器更大量的信息。存儲(chǔ)設(shè)備2208可以進(jìn)一步被配置用于信息的長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備2208包括非易失存儲(chǔ)元件。這樣的非易失存儲(chǔ)元件的示例包括磁性硬盤、盒式磁帶或磁帶盒、光盤、軟盤、閃速存儲(chǔ)器、或者電可編程存儲(chǔ)器(eprom)或電可擦除可編程存儲(chǔ)器(eeprom)的形式。
在一些示例中,計(jì)算設(shè)備2190還包括一個(gè)或多個(gè)通信單元2202。在一個(gè)示例中,計(jì)算設(shè)備2190利用通信單元2202與外部設(shè)備進(jìn)行通信。在一些示例中,通信單元2202可以通過經(jīng)由入站和出站鏈路在一個(gè)或多個(gè)網(wǎng)絡(luò)(諸如一個(gè)或多個(gè)無線網(wǎng)絡(luò))上發(fā)送數(shù)據(jù)分組而進(jìn)行通信。通信單元2202可以包括諸如以太網(wǎng)卡之類的一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡(ifc)、光學(xué)收發(fā)器、射頻收發(fā)器、或者可以發(fā)送和接收信息的任何其它類型的設(shè)備。這樣的網(wǎng)絡(luò)接口的其它示例可以包括藍(lán)牙、3g和wi-fi無線電部件。在一些示例中,計(jì)算設(shè)備2190利用通信單元2202與其它網(wǎng)絡(luò)設(shè)備進(jìn)行通信,諸如用于如本文中描述的發(fā)送或接收消息。
在一個(gè)示例中,計(jì)算設(shè)備2190還包括一個(gè)或多個(gè)輸入設(shè)備2204。在一些示例中,輸入設(shè)備2204被配置為通過觸覺、音頻或視頻反饋接收來自用戶的輸入。輸入設(shè)備2204的示例包括存在敏感顯示器、鼠標(biāo)、鍵盤、語音響應(yīng)系統(tǒng)、攝像機(jī)、麥克風(fēng)、或者用于檢測來自用戶的命令的任何其它類型的設(shè)備。在一些示例中,存在敏感顯示器包括觸摸屏。
一個(gè)或多個(gè)輸出設(shè)備2206也可以被包括在計(jì)算設(shè)備2190中。在一些示例中,輸出設(shè)備2206被配置為使用觸覺、音頻或視頻刺激向用戶提供輸出。在一個(gè)示例中,輸出設(shè)備2206包括存在敏感顯示器、聲卡、視頻圖形適配器卡、或者用于將信號(hào)轉(zhuǎn)換成人或機(jī)器可理解的適當(dāng)形式的任何其它類型的設(shè)備。輸出設(shè)備2206的另外示例包括揚(yáng)聲器、陰極射線管(crt)監(jiān)控器、液晶顯示器(lcd)、或者可以生成用戶可理解輸出的任何其它類型的設(shè)備。
計(jì)算設(shè)備2190可以包括操作系統(tǒng)2212。在一些示例中,操作系統(tǒng)2212控制計(jì)算設(shè)備2190的部件的操作。例如,在一個(gè)示例中,操作系統(tǒng)2212便于模塊應(yīng)用2214與處理器2200、通信單元2202、輸入設(shè)備2204、輸出設(shè)備2206以及存儲(chǔ)設(shè)備2210的通信。應(yīng)用2214可以各自包括可由計(jì)算設(shè)備2190執(zhí)行的程序指令和/或數(shù)據(jù)。作為一個(gè)示例,應(yīng)用2214a可以包括使得計(jì)算設(shè)備2190執(zhí)行本公開中描述的一個(gè)或多個(gè)操作和動(dòng)作的指令。
依照本公開的技術(shù),計(jì)算設(shè)備2190可以依照?qǐng)D19至圖20中描述的示例過程進(jìn)行操作。
在以下條款中描述了各種示例。依照本文中描述的技術(shù),在以下條款中的任一條款中闡述的示例可以被并入,并且可以與貫穿本公開描述的任何其它示例組合實(shí)現(xiàn)。
條款1.一種方法包括:在虛擬網(wǎng)絡(luò)控制器和服務(wù)器設(shè)備上執(zhí)行的虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,由服務(wù)器設(shè)備使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器;在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,從虛擬網(wǎng)絡(luò)控制器接收命令以在服務(wù)器設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器;以及響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
條款2.條款1的方法,進(jìn)一步包括:由服務(wù)器設(shè)備,保持具有默認(rèn)路由的層三(l3)路由表,以用于在物理網(wǎng)絡(luò)上將分組轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)控制器。
條款3.條款2的方法,其中l(wèi)3路由表包括指示封裝地址的路由條目,該封裝地址包括分派到物理網(wǎng)絡(luò)中的物理網(wǎng)絡(luò)設(shè)備的實(shí)際網(wǎng)絡(luò)地址。
條款4.條款1至3中的任一條款的方法,進(jìn)一步包括:由服務(wù)器設(shè)備,保持第二l3路由表,其中第二l3路由表與針對(duì)其虛擬網(wǎng)絡(luò)中的網(wǎng)絡(luò)部件的網(wǎng)絡(luò)地址不同于物理網(wǎng)絡(luò)中的網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)地址的虛擬網(wǎng)絡(luò)關(guān)聯(lián)。
條款5.條款1至4中的任一條款的方法,進(jìn)一步包括:響應(yīng)于接收到來自虛擬網(wǎng)絡(luò)控制器的命令,將新路由安裝到l3路由表;并且至少基于新路由,使用重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組作為封裝網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
條款6.條款1至5中的任一條款的方法,其中默認(rèn)路由被表示為分派給物理網(wǎng)絡(luò)設(shè)備的因特網(wǎng)協(xié)議(ip)地址。
條款7.條款1至6中的任一條款的方法,其中虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理是軟件定義網(wǎng)絡(luò)(sdn)的一部分。
條款8.條款1至7中的任一條款的方法,其中在備選路由上發(fā)送分組包括:響應(yīng)于在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前檢測到物理網(wǎng)絡(luò)中的故障鏈路,在物理網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器;并且響應(yīng)于在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后檢測到物理網(wǎng)絡(luò)中的故障鏈路,在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
條款9.一種包括指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),指令用于使得可編程處理器:在虛擬網(wǎng)絡(luò)控制器和服務(wù)器設(shè)備上執(zhí)行的虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,由服務(wù)器設(shè)備使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器;在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,從虛擬網(wǎng)絡(luò)控制器接收命令以在服務(wù)器設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器;以及響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
條款10.一種網(wǎng)絡(luò)設(shè)備包括:虛擬網(wǎng)絡(luò)代理;以及網(wǎng)絡(luò)接口,用于在虛擬網(wǎng)絡(luò)控制器和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,將網(wǎng)絡(luò)分組使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由發(fā)送到虛擬網(wǎng)絡(luò)控制器,其中,在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,虛擬網(wǎng)絡(luò)代理從虛擬網(wǎng)絡(luò)控制器接收命令以在網(wǎng)絡(luò)設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器,以及其中,響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,虛擬網(wǎng)絡(luò)代理在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
條款11.條款10的網(wǎng)絡(luò)設(shè)備,進(jìn)一步包括:具有默認(rèn)路由的層三(l3)路由表,以用于在物理網(wǎng)絡(luò)上將分組轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)控制器設(shè)備。
條款12.條款10或11中的任一條款的網(wǎng)絡(luò)設(shè)備,其中響應(yīng)于接收到來自虛擬網(wǎng)絡(luò)控制器設(shè)備的命令,虛擬網(wǎng)絡(luò)代理將新路由安裝到l3路由表,并且基于新路由,使用重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組作為封裝網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器。
條款13.條款10至12中的任一條款的網(wǎng)絡(luò)設(shè)備,其中默認(rèn)路由被表示為分派給物理網(wǎng)絡(luò)設(shè)備的因特網(wǎng)協(xié)議(ip)地址。
條款14.條款10至13中的任一條款的網(wǎng)絡(luò)設(shè)備,其中虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理是軟件定義網(wǎng)絡(luò)(sdn)的一部分。
條款15.一種系統(tǒng)包括:虛擬網(wǎng)絡(luò)控制器;以及服務(wù)器網(wǎng)絡(luò)設(shè)備,包括:虛擬網(wǎng)絡(luò)代理;以及網(wǎng)絡(luò)接口,用于在虛擬網(wǎng)絡(luò)控制器和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之前,將網(wǎng)絡(luò)分組使用針對(duì)物理網(wǎng)絡(luò)的默認(rèn)路由發(fā)送到虛擬網(wǎng)絡(luò)控制器,其中,在虛擬網(wǎng)絡(luò)控制器設(shè)備和虛擬網(wǎng)絡(luò)代理之間建立通信會(huì)話之后,虛擬網(wǎng)絡(luò)代理從虛擬網(wǎng)絡(luò)控制器接收命令以在網(wǎng)絡(luò)設(shè)備處安裝新路由,其中新路由指定封裝網(wǎng)絡(luò)分組所使用的封裝信息,以用于通過重疊網(wǎng)絡(luò)將網(wǎng)絡(luò)分組發(fā)送到虛擬網(wǎng)絡(luò)控制器,以及其中,響應(yīng)于檢測到物理網(wǎng)絡(luò)中的故障鏈路,虛擬網(wǎng)絡(luò)代理在重疊網(wǎng)絡(luò)中的備選路由上將分組發(fā)送到虛擬網(wǎng)絡(luò)控制器,其中虛擬網(wǎng)絡(luò)控制器包括:一個(gè)或多個(gè)處理器;由處理器執(zhí)行的多個(gè)虛擬機(jī),其中多個(gè)虛擬機(jī)從包括服務(wù)器網(wǎng)絡(luò)設(shè)備的多個(gè)網(wǎng)絡(luò)設(shè)備接收多個(gè)消息,其中多個(gè)消息中的每個(gè)消息指定相應(yīng)默認(rèn)路由。
虛擬網(wǎng)絡(luò)中的多播服務(wù)
在典型的云數(shù)據(jù)中心環(huán)境中,存在大集合的互連服務(wù)器,服務(wù)器提供計(jì)算和/或存儲(chǔ)容量以運(yùn)行各種應(yīng)用。例如,數(shù)據(jù)中心可以包括托管用于訂戶(即,數(shù)據(jù)中心的客戶)的應(yīng)用和服務(wù)的設(shè)施。例如,數(shù)據(jù)中心可以托管所有的基礎(chǔ)結(jié)構(gòu)設(shè)備,諸如聯(lián)網(wǎng)和存儲(chǔ)系統(tǒng)、冗余電源和環(huán)境控制。在典型的數(shù)據(jù)中心中,存儲(chǔ)系統(tǒng)和應(yīng)用服務(wù)器的集群經(jīng)由由一個(gè)或多個(gè)層級(jí)的物理網(wǎng)絡(luò)交換機(jī)和路由器提供的高速交換機(jī)結(jié)構(gòu)(例如,clos網(wǎng)絡(luò))互連。更復(fù)雜的數(shù)據(jù)中心通過位于各種物理托管設(shè)施中的訂戶支持設(shè)備提供遍布世界的基礎(chǔ)結(jié)構(gòu)。
一般,多播服務(wù)涉及在單個(gè)發(fā)射中將數(shù)據(jù)從源設(shè)備(例如服務(wù)器)通過網(wǎng)絡(luò)基本上同時(shí)地遞送到訂戶(例如,數(shù)據(jù)中心的客戶或者數(shù)據(jù)中心內(nèi)的服務(wù)器)的群組。作為示例,在兩個(gè)或更多訂戶有興趣接收相同的多播數(shù)據(jù)時(shí),每個(gè)訂戶可以請(qǐng)求加入與多播數(shù)據(jù)關(guān)聯(lián)的多播群組。來自源的多播數(shù)據(jù)按需由網(wǎng)絡(luò)內(nèi)的物理網(wǎng)絡(luò)交換機(jī)和路由器復(fù)制,以便到達(dá)多播群組的訂戶。用于復(fù)制和轉(zhuǎn)發(fā)針對(duì)多播群組的多播數(shù)據(jù)的網(wǎng)絡(luò)交換機(jī)和路由器可以創(chuàng)建通過網(wǎng)絡(luò)的多播分布樹,以用于多播數(shù)據(jù)的遞送。
在其中大量服務(wù)器通過交換機(jī)結(jié)構(gòu)互連的情況下,每對(duì)服務(wù)器可以具有大量的在它們之間的等價(jià)路徑。在這種情景中,物理服務(wù)器之間的層二(l2)連接可能變得難管理,并且物理服務(wù)器可能僅使用層三(l3)連接與彼此連接。經(jīng)由交換機(jī)結(jié)構(gòu)連接的物理服務(wù)器可以使用單播服務(wù)進(jìn)行通信,但是由于網(wǎng)絡(luò)中的大量冗余路徑,物理服務(wù)器之間的多播服務(wù)可能更難以管理。在一些情況下,虛擬重疊網(wǎng)絡(luò)可以使用例如ip-in-ip、nvgre或vxlan的隧道封裝協(xié)議建立在交換機(jī)結(jié)構(gòu)的頂部上,以仿真服務(wù)器上執(zhí)行的虛擬交換機(jī)之間的l2網(wǎng)絡(luò)。然而,為了虛擬重疊網(wǎng)絡(luò)仿真l2多播服務(wù),底層交換機(jī)結(jié)構(gòu)也必須支持多播服務(wù)。
總體上,技術(shù)被描述為提供虛擬網(wǎng)絡(luò)內(nèi)的多播服務(wù),而不要求底層網(wǎng)絡(luò)中的多播支持。更具體地,技術(shù)使用邏輯集中虛擬網(wǎng)絡(luò)控制器和端點(diǎn)復(fù)制使得能夠在交換機(jī)結(jié)構(gòu)的虛擬重疊網(wǎng)絡(luò)中支持l2多播服務(wù)。虛擬網(wǎng)絡(luò)控制器被配置為創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備(例如,服務(wù)器)的多播樹。然后,虛擬網(wǎng)絡(luò)控制器將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以指示端點(diǎn)設(shè)備根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到其它。端點(diǎn)設(shè)備。多播樹可以是單向多播樹或雙向多播樹。
根據(jù)技術(shù),多播樹在虛擬網(wǎng)絡(luò)控制器的集中位置處被計(jì)算,而不是由服務(wù)多播群組的網(wǎng)絡(luò)交換機(jī)和路由器以分布式方式被計(jì)算。另外,多播分組的復(fù)制和轉(zhuǎn)發(fā)由執(zhí)行在虛擬網(wǎng)絡(luò)中的端點(diǎn)設(shè)備上的虛擬交換機(jī)執(zhí)行。在底層網(wǎng)絡(luò)內(nèi)不執(zhí)行復(fù)制。用這種方法,在不要求底層網(wǎng)絡(luò)中的多播支持的情況下,技術(shù)使得虛擬網(wǎng)絡(luò)內(nèi)的多播服務(wù)能夠進(jìn)行。另外,集中虛擬網(wǎng)絡(luò)控制器可以創(chuàng)建多播樹以最小化復(fù)制限制,使得若干虛擬網(wǎng)絡(luò)的端點(diǎn)可以復(fù)制和轉(zhuǎn)發(fā)少數(shù)的多播分組,而不是源端點(diǎn)必須承擔(dān)復(fù)制分組并且將分組轉(zhuǎn)發(fā)到屬于多播群組的所有端點(diǎn)的負(fù)載。進(jìn)一步地,虛擬網(wǎng)絡(luò)控制器可以配置針對(duì)多播群組的多播樹中的每個(gè)鏈路方向的唯一虛擬網(wǎng)絡(luò)隧道封裝,以便高效地使用網(wǎng)絡(luò)中的帶寬。
在一個(gè)示例中,方法包括:利用虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹;將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器內(nèi)的存儲(chǔ)器中;以及利用虛擬網(wǎng)絡(luò)控制器將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以便指示在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制和轉(zhuǎn)發(fā)多播分組。
在另一示例中,方法包括:利用虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備接收針對(duì)多播群組的多播分組,以根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā),多播樹由虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建;利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組;以及利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
在又一示例中,虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器包括存儲(chǔ)器和一個(gè)或多個(gè)處理器,一個(gè)或多個(gè)處理器被配置為創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹、將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器的存儲(chǔ)器中、并且將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以便指示在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制和轉(zhuǎn)發(fā)多播分組。
在另外的示例中,虛擬網(wǎng)絡(luò)中的端點(diǎn)設(shè)備包括:一個(gè)或多個(gè)處理器,被配置為接收針對(duì)端點(diǎn)設(shè)備所屬多播群組的多播分組,以根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā),其中多播樹由虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建;以及在處理器上執(zhí)行的虛擬交換機(jī),被配置為根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組,并且根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
在另一示例中,虛擬網(wǎng)絡(luò)的系統(tǒng),系統(tǒng)包括:虛擬網(wǎng)絡(luò)控制器,被配置為創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹、將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器內(nèi)的存儲(chǔ)器中、并且將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備;以及多播群組的端點(diǎn)設(shè)備之一,被配置為接收將在虛擬網(wǎng)絡(luò)上被轉(zhuǎn)發(fā)的針對(duì)多播群組的多播分組,并且執(zhí)行虛擬交換機(jī),以根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組、并且根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
在又一示例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括指令,指令在被執(zhí)行時(shí)使得一個(gè)或多個(gè)處理器:利用虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹,將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器內(nèi)的存儲(chǔ)器中,以及利用虛擬網(wǎng)絡(luò)控制器將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以便指示在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制和轉(zhuǎn)發(fā)多播分組。
在另一示例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括指令,指令在被執(zhí)行時(shí)使得一個(gè)或多個(gè)處理器:利用虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備接收針對(duì)多播群組的多播分組,以根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā),多播樹由虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建;利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組;以及利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
圖22a圖示可以由虛擬網(wǎng)絡(luò)控制器(例如,來自圖2a和圖2b的虛擬網(wǎng)絡(luò)控制器22)創(chuàng)建的不平衡多播樹。虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建圖示的多播樹,以便最小化針對(duì)每個(gè)服務(wù)器的復(fù)制限制。針對(duì)給定多播樹的復(fù)制限制(n)可以基于多播群組中的設(shè)備總數(shù)(m)來選擇,使得2≤n≤(m-1)。在一些情況下,可以選擇針對(duì)多播樹的復(fù)制限制(n)使得2≤n<<m。又在其它情況下,針對(duì)多播樹的復(fù)制限制(n)可被確定為滿足[logn(m)]=d,其中d等于樹的深度,并且[x]意指等于不大于x的最大整數(shù)的地板函數(shù)(floorfunction)。復(fù)制限制指定多播樹中的每個(gè)服務(wù)器必須復(fù)制的多播分組副本的最大數(shù)量。樹深度指定多播樹的拓?fù)浣Y(jié)構(gòu)中的服務(wù)器的階段或級(jí)別的數(shù)量。
在一些情況下,虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建多播樹以平衡復(fù)制限制(n)和樹深度(d)。最小化針對(duì)多播樹中的所有服務(wù)器的復(fù)制限制避免了具有過度水平的樹拓?fù)浣Y(jié)構(gòu),在過度水平的樹拓?fù)浣Y(jié)構(gòu)中,樹中的一個(gè)或兩個(gè)服務(wù)器承擔(dān)復(fù)制分組并且將分組轉(zhuǎn)發(fā)到大多數(shù)服務(wù)器的負(fù)載。復(fù)制限制可以與樹深度進(jìn)行平衡,以避免具有過度豎直的樹拓?fù)浣Y(jié)構(gòu),在過度豎直的樹拓?fù)浣Y(jié)構(gòu)中,每個(gè)服務(wù)器僅復(fù)制多播分組的幾個(gè)(例如,一個(gè))副本以用于進(jìn)一步發(fā)射。用這種方法,可以保存計(jì)算資源和網(wǎng)絡(luò)資源,并且計(jì)算負(fù)載可以跨多播群組的所有服務(wù)器分布。
在圖22a所示的示例中,多播樹的多播群組中的服務(wù)器數(shù)量等于10(m=10),并且多播樹具有兩個(gè)服務(wù)器階段或級(jí)別(d=2)。因此,基于等于3的復(fù)制限制(n=3),這滿足2≤n≤9、2≤n<<10、和[logn(10)]=2,虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建圖22a所示的多播樹。如圖22a所示,假定根服務(wù)器s10是源服務(wù)器,s103190復(fù)制三個(gè)分組副本,并且將副本發(fā)射到s83188、s23182和s33183。然后,s83188復(fù)制三個(gè)分組副本,并且將副本發(fā)射到s13181、s73187和s93189。s23182復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s43184和s53185。s33183僅復(fù)制一個(gè)分組副本,并且將副本發(fā)射到s63186。如可以看到的,盡管多播樹中的每個(gè)服務(wù)器在3的復(fù)制限制內(nèi),但是復(fù)制負(fù)載不均勻分布,其中s103190和s83188各自生成3個(gè)副本(n=3),s23182生成2個(gè)副本(2<n),并且s33183生成1個(gè)副本(1<n)。
在節(jié)點(diǎn)的總數(shù)量不是(n(d+1)-1)/(n-1)時(shí),則一些倒數(shù)第二個(gè)葉節(jié)點(diǎn)可以不具有n個(gè)葉。圖6a中圖示的多播樹就是這樣,其中節(jié)點(diǎn)的總數(shù)量不等于13,所以不是所有的s83188、s23182和s33183都可以具有3個(gè)葉節(jié)點(diǎn)。在這樣的情況下,虛擬網(wǎng)絡(luò)控制器22可以生成平衡多播樹,如圖22b所示,使得每個(gè)倒數(shù)第二個(gè)葉節(jié)點(diǎn)將具有彼此相差+/-(n/2)的葉節(jié)點(diǎn)數(shù)量。
圖22b圖示可以由虛擬網(wǎng)絡(luò)控制器22創(chuàng)建的平衡多播樹。如圖22b所示,再次假定根服務(wù)器s10是源服務(wù)器,s103190復(fù)制三個(gè)分組副本,并且將副本發(fā)射到s83188、s23182和s33183。然后,s83188復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s13181和s73187。s23182復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s43184和s53185。s33183也復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s63186和s93189。如可以看到的,多播樹中的每個(gè)服務(wù)器在3的復(fù)制限制內(nèi),并且復(fù)制負(fù)載均勻分布,其中s10190生成3個(gè)副本(n=3)并且s83188、s23182和s33183各自生成2個(gè)副本(2<n)。
圖23a至圖23c是圖示由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的針對(duì)多播群組中的所有服務(wù)器的多播樹的示例的概念圖,其中任何服務(wù)器操作作為樹的源節(jié)點(diǎn)。在圖示的示例中,多播樹包括與圖22b所示多播樹相同的十個(gè)服務(wù)器和相同的平衡拓?fù)浣Y(jié)構(gòu)。依照本公開的技術(shù),多播樹被創(chuàng)建在有能力仿真l2多播的虛擬重疊網(wǎng)絡(luò)中。因此,多播樹可以是雙向多播樹,其中任何服務(wù)器可以操作作為針對(duì)多播群組的多播分組的源服務(wù)器。在任何中間服務(wù)器接收來自樹中另一服務(wù)器的分組時(shí),中間服務(wù)器執(zhí)行復(fù)制并且在多播樹的每個(gè)鏈路上發(fā)射分組副本,除了在其上接收分組的鏈路。
圖23a圖示其中服務(wù)器s23182操作作為源服務(wù)器的雙向多播樹。如圖23a所示,s23182復(fù)制三個(gè)分組副本,并且將副本發(fā)射到s43184、s53185和s103190(即,根服務(wù)器)。然后,s103190復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s83188和s33183。s103190不在其接收來自s23182的分組的鏈路上發(fā)送分組副本。然后,s83188復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s13181和s73187,但是s83188不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。s33183也復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s63186和s93189,但是不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。
圖23b圖示其中服務(wù)器s43184操作作為源服務(wù)器的雙向多播樹。如圖23b所示,s43184復(fù)制一個(gè)分組副本,并且將副本發(fā)射到s23182。然后,s23182復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s53185和s103190(即,根服務(wù)器)。s23182不在其接收來自s43184的分組的鏈路上發(fā)送分組副本。然后,s103190復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s83188和s33183。s103190不在其接收來自s23182的分組的鏈路上發(fā)送分組副本。然后,s83188復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s13181和s73187,但是s83188不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。s33183也復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s63186和s93189,但是不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。
圖23c圖示其中服務(wù)器s103190(即,根服務(wù)器)操作作為源服務(wù)器的多播樹。在這個(gè)示例中,圖示的多播樹可以是單向多播樹或雙向多播樹。如圖23c所示,s103190復(fù)制三個(gè)分組副本,并且將副本發(fā)射到s83188、s23182和s33183。然后,s83188復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s13181和s73187,但是s83188不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。s23182復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s43184和s53185,s23182不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。s33183也復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s63186和s93189,但是不在其接收來自s103190的分組的鏈路上發(fā)送分組副本。
圖24是圖示由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的針對(duì)具有最小化復(fù)制限制的多播群組中的所有服務(wù)器的示例多播樹的概念圖。在圖示的示例中,多播樹包括在不同拓?fù)浣Y(jié)構(gòu)中的與圖22a至圖22b和圖23a至圖23c所示的多播樹相同的十個(gè)服務(wù)器。多播樹按階段或級(jí)別布置服務(wù)器,使得一個(gè)或多個(gè)服務(wù)器生成多播分組副本以發(fā)射到中間服務(wù)器,中間服務(wù)器轉(zhuǎn)而可以復(fù)制另外的多播分組副本以發(fā)射到多播群組中的其它服務(wù)器。
圖24中圖示的多播樹可以由虛擬網(wǎng)絡(luò)控制器(例如,來自圖2a和圖2b的虛擬網(wǎng)絡(luò)控制器22)創(chuàng)建。虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建圖示的多播樹,以便進(jìn)一步最小化針對(duì)每個(gè)服務(wù)器的復(fù)制限制。在圖22a至圖22b和圖23a至圖23c中的示例多播樹中,基于多播樹的多播群組中的服務(wù)器數(shù)量等于10(m=10)并且多播樹具有兩個(gè)服務(wù)器階段或級(jí)別(d=2),復(fù)制限制(n)被設(shè)置為等于3。在圖24中圖示的示例多播樹中,多播樹的多播群組中的服務(wù)器數(shù)量再次等于10(m=10),只是樹的拓?fù)浣Y(jié)構(gòu)已經(jīng)改變?yōu)榘ㄈ齻€(gè)服務(wù)器階段或級(jí)別(d=3)。因此,基于等于2(n=2)的復(fù)制限制,這滿足2≤n≤9、2≤n<<10和[logn(10)]=3,虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建圖24所示的多播樹。
如圖24所示,假定根服務(wù)器s103190是源服務(wù)器,s103190復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s83188和s23182。然后,s83188復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s13181和s73187。s73187也復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s93189和s43184。s23182復(fù)制兩個(gè)分組副本,并且將副本發(fā)射到s53185和s63186。然后,s53185復(fù)制一個(gè)分組副本,并且將副本發(fā)射到s33183。如可以看到的,多播樹中的每個(gè)服務(wù)器在2的復(fù)制限制內(nèi),并且復(fù)制負(fù)載均勻分布,其中s103190、s83188、s73187和s23182各自生成2個(gè)副本(n=2),并且s53185生成1個(gè)副本(1<n)。
圖25a是圖示依照本公開的一個(gè)或多個(gè)方面用于根據(jù)由虛擬網(wǎng)絡(luò)控制器創(chuàng)建的多播樹復(fù)制和轉(zhuǎn)發(fā)分組的示例計(jì)算設(shè)備3198的框圖。圖25a僅圖示計(jì)算設(shè)備3198的一個(gè)特定示例,并且在其它實(shí)例中可以使用計(jì)算設(shè)備3198的許多其它示例。
如圖33的具體示例所示,計(jì)算設(shè)備3198包括一個(gè)或多個(gè)處理器3200、一個(gè)或多個(gè)通信單元3202、一個(gè)或多個(gè)輸入設(shè)備3204、一個(gè)或多個(gè)輸出設(shè)備3206以及一個(gè)或多個(gè)存儲(chǔ)設(shè)備3208。在圖25a的具體示例中,計(jì)算設(shè)備3198進(jìn)一步包括操作系統(tǒng)3210、虛擬化模塊3212以及一個(gè)或多個(gè)應(yīng)用3214a至3214n(統(tǒng)稱為“應(yīng)用3214”)。部件3200、3202、3204、3206和3208中的每個(gè)部件可以互連(物理上、通信上和/或操作上)以用于部件間通信。作為圖25a中的一個(gè)示例,部件3200、3202、3204、3206和3208可以通過一個(gè)或多個(gè)通信信道3216耦合。在一些示例中,通信信道3216可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于傳達(dá)數(shù)據(jù)的任何其它信道。虛擬化模塊3212和應(yīng)用3214,以及操作系統(tǒng)3210也可以與彼此以及與計(jì)算設(shè)備3198中的其它部件傳達(dá)信息。
在一個(gè)示例中,處理器3200被配置為實(shí)現(xiàn)用于在計(jì)算設(shè)備3198內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器3200可以有能力處理存儲(chǔ)在存儲(chǔ)設(shè)備3208中的指令。處理器3200的示例可以包括微處理器、控制器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者等效分立或集成邏輯電路裝置中的任何一個(gè)或多個(gè)。
一個(gè)或多個(gè)存儲(chǔ)設(shè)備3208可以被配置為存儲(chǔ)在操作期間計(jì)算設(shè)備3198內(nèi)的信息。在一些示例中,存儲(chǔ)設(shè)備3208被描述為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,存儲(chǔ)設(shè)備3208是暫時(shí)存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備3208的主要目的不是長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備3208被描述為易失存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備3208在計(jì)算機(jī)關(guān)閉時(shí)不保持存儲(chǔ)的內(nèi)容。易失存儲(chǔ)器的示例包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失存儲(chǔ)器。在一些示例中,存儲(chǔ)設(shè)備3208用于存儲(chǔ)程序指令以用于由處理器3200執(zhí)行。在一個(gè)示例中,存儲(chǔ)設(shè)備3208由運(yùn)行在計(jì)算設(shè)備3198上的軟件或應(yīng)用(例如,操作系統(tǒng)3210、虛擬化模塊3212等)使用,以在程序執(zhí)行期間暫時(shí)存儲(chǔ)信息。
在一些示例中,存儲(chǔ)設(shè)備3208還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備3208可以被配置為存儲(chǔ)比易失存儲(chǔ)器更大量的信息。存儲(chǔ)設(shè)備3208可以進(jìn)一步被配置用于信息的長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備3208包括非易失存儲(chǔ)元件。這樣的非易失存儲(chǔ)元件的示例包括磁性硬盤、盒式磁帶或磁帶盒、光盤、軟盤、閃速存儲(chǔ)器、或者電可編程存儲(chǔ)器(eprom)或電可擦除可編程存儲(chǔ)器(eeprom)的形式。
在一些示例中,計(jì)算設(shè)備3198還包括一個(gè)或多個(gè)通信單元3202。在一個(gè)示例中,計(jì)算設(shè)備3198利用通信單元3202與外部設(shè)備進(jìn)行通信。在一些示例中,通信單元3202可以通過經(jīng)由入站和出站鏈路在一個(gè)或多個(gè)網(wǎng)絡(luò)(諸如一個(gè)或多個(gè)無線網(wǎng)絡(luò))上發(fā)送數(shù)據(jù)分組而進(jìn)行通信。通信單元3202可以包括諸如以太網(wǎng)卡之類的一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡(ifc)、光學(xué)收發(fā)器、射頻收發(fā)器、或者可以發(fā)送和接收信息的任何其它類型的設(shè)備。這樣的網(wǎng)絡(luò)接口的其它示例可以包括藍(lán)牙、3g和wi-fi無線電部件。
在一個(gè)示例中,計(jì)算設(shè)備3198還包括一個(gè)或多個(gè)輸入設(shè)備3204。在一些示例中,輸入設(shè)備3204被配置為通過觸覺、音頻或視頻反饋接收來自用戶的輸入。輸入設(shè)備3204的示例包括存在敏感顯示器、鼠標(biāo)、鍵盤、語音響應(yīng)系統(tǒng)、攝像機(jī)、麥克風(fēng)、或者用于檢測來自用戶的命令的任何其它類型的設(shè)備。在一些示例中,存在敏感顯示器包括觸摸屏。
一個(gè)或多個(gè)輸出設(shè)備3206也可以被包括在計(jì)算設(shè)備3198中。在一些示例中,輸出設(shè)備3206被配置為使用觸覺、音頻或視頻刺激向用戶提供輸出。在一個(gè)示例中,輸出設(shè)備3206包括存在敏感顯示器、聲卡、視頻圖形適配器卡、或者用于將信號(hào)轉(zhuǎn)換成人或機(jī)器可理解的適當(dāng)形式的任何其它類型的設(shè)備。輸出設(shè)備3206的另外示例包括揚(yáng)聲器、陰極射線管(crt)監(jiān)控器、液晶顯示器(lcd)、或者可以生成用戶可理解輸出的任何其它類型的設(shè)備。
計(jì)算設(shè)備3198可以包括操作系統(tǒng)3210。在一些示例中,操作系統(tǒng)3210控制計(jì)算設(shè)備3198的部件的操作。例如,在一個(gè)示例中,操作系統(tǒng)3210便于應(yīng)用3214與處理器3200、通信單元3202、輸入設(shè)備3204、輸出設(shè)備3206以及存儲(chǔ)設(shè)備3208的通信。應(yīng)用3214可以各自包括可由計(jì)算設(shè)備3198執(zhí)行的程序指令和/或數(shù)據(jù)。作為一個(gè)示例,應(yīng)用3214a可以包括使得計(jì)算設(shè)備3198執(zhí)行本公開中描述的一個(gè)或多個(gè)操作和動(dòng)作的指令。
依照本公開的技術(shù),計(jì)算設(shè)備3198可以操作作為虛擬網(wǎng)絡(luò)的端點(diǎn)設(shè)備,諸如來自圖1、圖2a和圖2b的數(shù)據(jù)中心10中的服務(wù)器12之一。更具體地,計(jì)算設(shè)備3198可以使用虛擬化模塊3212執(zhí)行一個(gè)或多個(gè)虛擬交換機(jī)(未示出),一個(gè)或多個(gè)虛擬交換機(jī)創(chuàng)建和管理作為數(shù)據(jù)中心交換機(jī)結(jié)構(gòu)的虛擬重疊網(wǎng)絡(luò)的一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)。計(jì)算機(jī)設(shè)備3198的通信單元3202可以從虛擬網(wǎng)絡(luò)控制器接收針對(duì)虛擬網(wǎng)絡(luò)的通信。
根據(jù)技術(shù),通信單元3202可以從虛擬網(wǎng)絡(luò)控制器接收針對(duì)虛擬網(wǎng)絡(luò)的多播群組的多播樹,并且將多播樹傳達(dá)給在虛擬化模塊3212上執(zhí)行的復(fù)制單元(“rep.單元”)3216。然后,通信單元3202可以接收針對(duì)多播群組的多播分組以在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā)。多播樹可以指示復(fù)制單元3216根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到其它端點(diǎn)設(shè)備。多播樹由集中位置中的虛擬網(wǎng)絡(luò)控制器針對(duì)虛擬網(wǎng)絡(luò)來計(jì)算,而不是由底層物理網(wǎng)絡(luò)中的部件以分布式方式計(jì)算。另外,多播分組的復(fù)制和轉(zhuǎn)發(fā)僅由執(zhí)行在虛擬網(wǎng)絡(luò)的計(jì)算設(shè)備3198和其它端點(diǎn)設(shè)備上的虛擬交換機(jī)執(zhí)行。在底層網(wǎng)絡(luò)內(nèi)不執(zhí)行復(fù)制。用這種方法,在不要求底層網(wǎng)絡(luò)中的多播支持的情況下,技術(shù)使得虛擬網(wǎng)絡(luò)內(nèi)計(jì)算設(shè)備3198和其它端點(diǎn)設(shè)備之間的多播服務(wù)能夠進(jìn)行。
圖25b是圖示利用虛擬網(wǎng)絡(luò)控制器創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的網(wǎng)絡(luò)端點(diǎn)的多播樹、并且利用端點(diǎn)之一依照多播樹復(fù)制和轉(zhuǎn)發(fā)分組以在虛擬網(wǎng)絡(luò)中提供分布式多播服務(wù)的示例操作的流程圖。關(guān)于來自圖2a的虛擬網(wǎng)絡(luò)控制器22和服務(wù)器12a描述圖25b的操作。
虛擬網(wǎng)絡(luò)控制器22創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的服務(wù)器12的多播樹(3220)。用這種方法,多播樹被創(chuàng)建在邏輯集中位置(即,虛擬網(wǎng)絡(luò)控制器22)中,而不是由服務(wù)多播群組的底層網(wǎng)絡(luò)中的部件以分布式方式創(chuàng)建。虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建多播樹以便于針對(duì)多播群組的多播分組在虛擬網(wǎng)絡(luò)中的兩個(gè)或更多端點(diǎn)或服務(wù)器之間的遞送。
在一些情況下,多播樹可以是單向多播樹,其中多播樹的根節(jié)點(diǎn)操作作為針對(duì)多播群組的多播分組的源,并且多播分組在從根節(jié)點(diǎn)的單個(gè)、下游方向上被傳達(dá)。在其它情況下,多播樹可以是雙向多播樹,其中多播樹的任何節(jié)點(diǎn)可以操作作為針對(duì)多播群組的多播分組的源,并且多播分組可以在從多播樹的根節(jié)點(diǎn)的上游或下游方向上被傳達(dá)。根據(jù)技術(shù),因?yàn)樘摂M重疊網(wǎng)絡(luò)仿真其支持雙向多播的l2多播,虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建雙向多播樹。
虛擬網(wǎng)絡(luò)控制器22可以基于例如依照vnc22執(zhí)行的路由協(xié)議接收的底層物理網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)信息,計(jì)算多播樹。另外,虛擬網(wǎng)絡(luò)控制器22可以計(jì)算多播樹,以便最小化在每個(gè)服務(wù)器處的復(fù)制限制并且跨樹平衡復(fù)制。用這種方法,虛擬網(wǎng)絡(luò)控制器22可以創(chuàng)建多播樹,使得每個(gè)源服務(wù)器和中間服務(wù)器執(zhí)行類似的、小量的復(fù)制,而不是源服務(wù)器必須承擔(dān)復(fù)制分組并且將分組轉(zhuǎn)發(fā)到屬于多播群組的所有服務(wù)器的負(fù)載。虛擬網(wǎng)絡(luò)控制器22將多播樹存儲(chǔ)到存儲(chǔ)器(3222)。然后,虛擬網(wǎng)絡(luò)控制器22將多播樹傳達(dá)到多播群組的一個(gè)或多個(gè)服務(wù)器12(3224)。
例如,服務(wù)器12a從虛擬網(wǎng)絡(luò)控制器22接收針對(duì)服務(wù)器12a所屬多播群組的多播樹(3226)。服務(wù)器12a還接收針對(duì)多播群組的多播分組,以根據(jù)多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā)(3227)。服務(wù)器12a執(zhí)行管理程序31內(nèi)的針對(duì)虛擬網(wǎng)絡(luò)的虛擬交換機(jī)30a。服務(wù)器12a使用虛擬交換機(jī)30a的復(fù)制單元(例如,計(jì)算設(shè)備3198的復(fù)制單元3216)根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組(3228)。例如,如果服務(wù)器12a是多播樹中的源服務(wù)器或中間服務(wù)器,則復(fù)制單元44a可以創(chuàng)建如多播樹要求的分組的一個(gè)或多個(gè)副本。
然后服務(wù)器12a使用虛擬交換機(jī)30a,以根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到虛擬網(wǎng)絡(luò)中的多播群組的其它服務(wù)器(3230)。虛擬交換機(jī)30a可以將分組的每個(gè)副本封裝在唯一隧道封裝報(bào)頭中。用這種方法,底層網(wǎng)絡(luò)中的多個(gè)等價(jià)路徑可以被用于相同的多播群組,以高效地使用帶寬。唯一隧道封裝報(bào)頭可以由虛擬網(wǎng)絡(luò)控制器22配置,使得多播樹中的每個(gè)鏈路方向具有唯一的虛擬網(wǎng)絡(luò)隧道封裝。多播分組的復(fù)制和轉(zhuǎn)發(fā)僅由執(zhí)行在虛擬網(wǎng)絡(luò)中的服務(wù)器12上的虛擬交換機(jī)30執(zhí)行。在底層網(wǎng)絡(luò)內(nèi)不執(zhí)行復(fù)制。用這種方法,在不要求底層網(wǎng)絡(luò)中的多播支持的情況下,技術(shù)使得虛擬網(wǎng)絡(luò)內(nèi)的多播服務(wù)能夠進(jìn)行。
在以下條款中描述了各種示例。依照本文中描述的技術(shù),在以下條款中的任一條款中闡述的示例可以被并入,并且可以與貫穿本公開描述的任何其它示例組合實(shí)現(xiàn)。
條款1.一種方法包括:利用虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹;將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器內(nèi)的存儲(chǔ)器中;以及利用虛擬網(wǎng)絡(luò)控制器將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以便指示在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制和轉(zhuǎn)發(fā)多播分組。
條款2.條款1的方法,其中將多播樹傳達(dá)給端點(diǎn)設(shè)備中的一個(gè)特定端點(diǎn)設(shè)備包括傳達(dá)與端點(diǎn)設(shè)備中的一個(gè)特定端點(diǎn)設(shè)備相關(guān)的多播樹的一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目。
條款3.條款2的方法,其中一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目包括多播樹的下一跳信息,并且其中下一跳信息包括鏈接的下一跳,該鏈接的下一跳指定由端點(diǎn)設(shè)備中的一個(gè)特定端點(diǎn)設(shè)備執(zhí)行對(duì)針對(duì)多播群組的每個(gè)多播分組的復(fù)制。
條款4.條款1至3中的任一條款的方法,其中創(chuàng)建多播樹包括配置針對(duì)多播樹中的每個(gè)鏈路方向的唯一虛擬網(wǎng)絡(luò)隧道封裝。
條款5.條款1至4中的任一條款的方法,其中創(chuàng)建多播樹包括基于針對(duì)多播群組的一個(gè)或多個(gè)成員信息、虛擬網(wǎng)絡(luò)的物理網(wǎng)絡(luò)底層的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息、以及虛擬網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息來創(chuàng)建多播樹。
條款6.條款1至5中的任一條款的方法,其中創(chuàng)建多播樹包括創(chuàng)建多播樹以最小化針對(duì)多播群組中的每個(gè)端點(diǎn)設(shè)備的復(fù)制限制。
條款7.條款1至6中的任一條款的方法,其中創(chuàng)建多播樹包括創(chuàng)建多播樹以平衡針對(duì)多播群組中的每個(gè)端點(diǎn)設(shè)備的復(fù)制限制與多播樹的樹深度。
條款8.條款1至7中的任一條款的方法,其中虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器包括數(shù)據(jù)中心交換機(jī)結(jié)構(gòu)的虛擬重疊網(wǎng)絡(luò)的集中控制器。
條款9.條款1至8中的任一條款的方法,其中多播樹包括單向多播樹或雙向多播樹之一。
條款10.一種方法包括:利用虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備接收多播分組,以根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā),多播樹由虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建;利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組;以及利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
條款11.條款10的方法,進(jìn)一步包括利用端點(diǎn)設(shè)備從虛擬網(wǎng)絡(luò)控制器接收與端點(diǎn)設(shè)備相關(guān)的多播樹的一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目。
條款12.條款11的方法,其中一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目包括多播樹的下一跳信息,并且其中下一跳信息包括鏈接的下一跳,該鏈接的下一跳指定由端點(diǎn)設(shè)備執(zhí)行對(duì)針對(duì)多播群組的每個(gè)多播分組的復(fù)制。
條款13.條款10至12中的任一條款的方法,其中轉(zhuǎn)發(fā)多播分組包括利用由虛擬網(wǎng)絡(luò)控制器配置的唯一虛擬網(wǎng)絡(luò)隧道封裝來封裝多播分組的每個(gè)副本。
條款14.條款10至13中的任一條款的方法,其中復(fù)制多播分組包括基于針對(duì)端點(diǎn)設(shè)備的最小化復(fù)制限制來復(fù)制多播分組。
條款15.條款10至14中的任一條款的方法,其中端點(diǎn)設(shè)備包括多播樹的源節(jié)點(diǎn),其根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
條款16.條款10至14中的任一條款的方法,其中端點(diǎn)設(shè)備包括中間節(jié)點(diǎn),其從多播群組的另一端點(diǎn)設(shè)備接收多播分組,并且根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備,而不在到從其接收多播分組的端點(diǎn)設(shè)備的鏈路上發(fā)送多播分組。
條款17.條款10至14中的任一條款的方法,其中虛擬網(wǎng)絡(luò)中的端點(diǎn)設(shè)備包括數(shù)據(jù)中心交換機(jī)結(jié)構(gòu)的虛擬重疊網(wǎng)絡(luò)中的服務(wù)器。
條款18.條款10的方法,其中多播樹包括單向多播樹或雙向多播樹之一。
條款19.一種虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器包括:存儲(chǔ)器;以及一個(gè)或多個(gè)處理器,被配置為創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹、將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器的存儲(chǔ)器中、并且將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以便指示在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制和轉(zhuǎn)發(fā)多播分組。
條款20.條款19的虛擬網(wǎng)絡(luò)控制器,其中處理器被配置為按照與端點(diǎn)設(shè)備中的一個(gè)特定端點(diǎn)設(shè)備相關(guān)的多播樹的一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目,將多播樹傳達(dá)給端點(diǎn)設(shè)備中的一個(gè)特定端點(diǎn)設(shè)備。
條款21.條款20的虛擬網(wǎng)絡(luò)控制器,其中一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目包括多播樹的下一跳信息,并且其中下一跳信息包括鏈接的下一跳,該鏈接的下一跳指定由端點(diǎn)設(shè)備中的一個(gè)特定端點(diǎn)設(shè)備執(zhí)行對(duì)針對(duì)多播群組的每個(gè)多播分組的復(fù)制。
條款22.條款19至21中的任一條款的虛擬網(wǎng)絡(luò)控制器,其中處理器被配置為配置針對(duì)多播樹中的每個(gè)鏈路方向的唯一虛擬網(wǎng)絡(luò)隧道封裝。
條款23.條款19至22中的任一條款的虛擬網(wǎng)絡(luò)控制器,其中處理器被配置為基于針對(duì)多播群組的一個(gè)或多個(gè)成員信息、虛擬網(wǎng)絡(luò)的物理網(wǎng)絡(luò)底層的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息、以及虛擬網(wǎng)絡(luò)的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)信息來創(chuàng)建多播樹。
條款24.條款19至22中的任一條款的虛擬網(wǎng)絡(luò)控制器,其中處理器被配置為創(chuàng)建多播樹以最小化針對(duì)多播群組中的每個(gè)端點(diǎn)設(shè)備的復(fù)制限制。
條款25.條款19至22中的任一條款的虛擬網(wǎng)絡(luò)控制器,其中處理器被配置為創(chuàng)建多播樹以平衡針對(duì)多播群組中的每個(gè)端點(diǎn)設(shè)備的復(fù)制限制與多播樹的樹深度。
條款26.條款19至25中的任一條款的虛擬網(wǎng)絡(luò)控制器,其中虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器包括數(shù)據(jù)中心交換機(jī)結(jié)構(gòu)的虛擬重疊網(wǎng)絡(luò)的集中控制器。
條款27.一種虛擬網(wǎng)絡(luò)中的端點(diǎn)設(shè)備包括:一個(gè)或多個(gè)處理器,被配置為接收針對(duì)端點(diǎn)設(shè)備所屬多播群組的多播分組,以根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā),其中多播樹由虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建;以及在處理器上執(zhí)行的虛擬交換機(jī),被配置為根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組,并且根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
條款28.條款27的端點(diǎn)設(shè)備,其中處理器被配置為從虛擬網(wǎng)絡(luò)控制器接收與端點(diǎn)設(shè)備相關(guān)的多播樹的一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目。
條款29.條款27至28中的任一條款的端點(diǎn)設(shè)備,其中一個(gè)或多個(gè)轉(zhuǎn)發(fā)條目包括多播樹的下一跳信息,并且其中下一跳信息包括鏈接的下一跳,該鏈接的下一跳指定由端點(diǎn)設(shè)備執(zhí)行對(duì)針對(duì)多播群組的每個(gè)多播分組的復(fù)制。
條款30.條款27至29中的任一條款的端點(diǎn)設(shè)備,其中虛擬交換機(jī)被配置為利用由虛擬網(wǎng)絡(luò)控制器配置的唯一虛擬網(wǎng)絡(luò)隧道封裝來封裝多播分組的每個(gè)副本。
條款31.條款27至30中的任一條款的端點(diǎn)設(shè)備,其中虛擬交換機(jī)被配置為基于針對(duì)端點(diǎn)設(shè)備的最小化復(fù)制限制來復(fù)制多播分組。
條款32.條款27至31中的任一條款的端點(diǎn)設(shè)備,其中端點(diǎn)設(shè)備包括多播樹的源節(jié)點(diǎn),其根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到多播群組的兩個(gè)或更多其它端點(diǎn)設(shè)備。
條款33.條款27至31中的任一條款的端點(diǎn)設(shè)備,其中端點(diǎn)設(shè)備包括中間節(jié)點(diǎn),其從多播群組的另一端點(diǎn)設(shè)備接收多播分組,并且根據(jù)多播樹復(fù)制多播分組并且將多播分組轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備,而不在到從其接收多播分組的端點(diǎn)設(shè)備的鏈路上發(fā)送多播分組。
條款34.條款27至31中的任一條款的端點(diǎn)設(shè)備,其中虛擬網(wǎng)絡(luò)中的端點(diǎn)設(shè)備包括數(shù)據(jù)中心交換機(jī)結(jié)構(gòu)的虛擬重疊網(wǎng)絡(luò)中的服務(wù)器。
條款35.一種虛擬網(wǎng)絡(luò)的系統(tǒng),系統(tǒng)包括:虛擬網(wǎng)絡(luò)控制器,被配置為創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹、將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器內(nèi)的存儲(chǔ)器中、并且將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備;以及多播群組的端點(diǎn)設(shè)備之一,被配置為接收將在虛擬網(wǎng)絡(luò)上被轉(zhuǎn)發(fā)的針對(duì)多播群組的多播分組,并且執(zhí)行虛擬交換機(jī),以根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組、并且根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
條款36.一種包括指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),指令在被執(zhí)行時(shí)使得一個(gè)或多個(gè)處理器:利用虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建針對(duì)虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備的多播樹;將多播樹存儲(chǔ)在虛擬網(wǎng)絡(luò)控制器內(nèi)的存儲(chǔ)器中;以及利用虛擬網(wǎng)絡(luò)控制器將多播樹傳達(dá)給多播群組的一個(gè)或多個(gè)端點(diǎn)設(shè)備,以便指示在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制和轉(zhuǎn)發(fā)多播分組。
條款37.一種包括指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),指令在被執(zhí)行時(shí)使得一個(gè)或多個(gè)處理器:利用虛擬網(wǎng)絡(luò)中的多播群組的端點(diǎn)設(shè)備接收多播分組,以根據(jù)針對(duì)多播群組的多播樹在虛擬網(wǎng)絡(luò)上轉(zhuǎn)發(fā),多播樹由虛擬網(wǎng)絡(luò)的虛擬網(wǎng)絡(luò)控制器創(chuàng)建;利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹復(fù)制針對(duì)多播群組的多播分組;以及利用在端點(diǎn)設(shè)備上執(zhí)行的虛擬交換機(jī)根據(jù)多播樹將復(fù)制的多播分組使用隧道封裝轉(zhuǎn)發(fā)到多播群組的一個(gè)或多個(gè)其它端點(diǎn)設(shè)備。
用于數(shù)據(jù)中心內(nèi)的虛擬網(wǎng)絡(luò)的多租戶服務(wù)器
總體上,技術(shù)被描述為便于在諸如元數(shù)據(jù)接入點(diǎn)接口(if-map)服務(wù)器之類的廠商中立服務(wù)器的上下文中的多租戶。本公開中描述的各種技術(shù)可以提供在數(shù)據(jù)中心內(nèi)執(zhí)行的若干虛擬網(wǎng)絡(luò)的上下文中的多租戶if-map服務(wù)器,其中每個(gè)虛擬網(wǎng)絡(luò)與不同租戶關(guān)聯(lián)并且訪問if-map服務(wù)器以保持會(huì)話數(shù)據(jù)。支持這些虛擬網(wǎng)絡(luò)的虛擬交換機(jī)可以確保,與會(huì)話數(shù)據(jù)關(guān)聯(lián)的標(biāo)識(shí)符可以是跨虛擬網(wǎng)絡(luò)全局唯一的,以便于有效地保持針對(duì)每個(gè)虛擬網(wǎng)絡(luò)的分離或非重疊的虛擬if-map服務(wù)器空間。為了確保這種分離,虛擬交換機(jī)可以將從虛擬網(wǎng)絡(luò)響應(yīng)的標(biāo)識(shí)符從在虛擬網(wǎng)絡(luò)的上下文內(nèi)唯一的局部唯一標(biāo)識(shí)符翻譯成跨所有虛擬網(wǎng)絡(luò)唯一的全局唯一標(biāo)識(shí)符。通常,這種翻譯涉及響應(yīng)于創(chuàng)建“名稱空間:標(biāo)識(shí)符”形式的全局唯一標(biāo)識(shí)符,將名稱空間附加到標(biāo)識(shí)符。以這種方式,技術(shù)可以便于廠商中立數(shù)據(jù)庫內(nèi)的多租戶。
圖26是圖示依照本公開中描述的技術(shù)的各種方面的存儲(chǔ)會(huì)話信息的系統(tǒng)4050的框圖。多個(gè)服務(wù)器4052a至4052n(“服務(wù)器4052”)可以訪問if-map服務(wù)器4054。服務(wù)器4052可以各自表示在上面示例中示出的服務(wù)器12之一。在一些示例中,if-map服務(wù)器4054可以表示if-map服務(wù)器26。如上所述,if-map服務(wù)器4054感知虛擬化,并且可以使用諸如“名稱空間:標(biāo)識(shí)符”之類的格式。同樣地,多個(gè)租戶可以訪問if-map服務(wù)器26。每個(gè)服務(wù)器4052具有多個(gè)租戶vn1、vn2、vn3(其可以被統(tǒng)稱為“vn4056”)和翻譯器vn0(其還可以被稱為翻譯器4058”),翻譯器vn0包括定義由其對(duì)應(yīng)一個(gè)服務(wù)器4052管理的所有租戶的數(shù)據(jù)。
在接收到來自屬于例如公司a的子網(wǎng)vn1的查詢的同時(shí),通過添加查詢租戶的唯一名稱空間(在這種情況下,公司a),翻譯器vn0將查詢轉(zhuǎn)換成全局唯一查詢。例如,假設(shè)查詢是由公司a生成的關(guān)于雇員#5的。在沒有翻譯器vn0的情況下,關(guān)于雇員#5的查詢可能不被處理,這是因?yàn)楣綽和公司c也可以在它們的相應(yīng)名稱空間中具有標(biāo)識(shí)符雇員#5,并且if-map服務(wù)器4054將不知道查詢涉及哪個(gè)雇員#5。通過標(biāo)識(shí)查詢通過其進(jìn)入的連接,翻譯器vn0將查詢“雇員#5”翻譯成“公司a:雇員#5”。利用其是全局唯一的翻譯查詢,考慮到多個(gè)租戶可以“共享”相同的if-map服務(wù)器(即,圖3的示例中的if-map服務(wù)器4054),可以高效使用if-map服務(wù)器4052。
由if-map服務(wù)器4054生成的查詢結(jié)果可以包括名稱空間“公司a”。因?yàn)樽泳W(wǎng)vn1可能不識(shí)別包括名稱空間“公司a”的結(jié)果,在向子網(wǎng)vn1轉(zhuǎn)發(fā)結(jié)果之前,翻譯器vn0可以剝離名稱空間。
通常,vn4056向vn4058(其表示針對(duì)數(shù)據(jù)中心10的vn)轉(zhuǎn)發(fā)指向數(shù)據(jù)中心10內(nèi)部的資源的所有分組。換言之,在配置vn4056時(shí),每個(gè)vn4056被配置為向vn4058轉(zhuǎn)發(fā)對(duì)數(shù)據(jù)中心10內(nèi)部的資源(諸如if-map服務(wù)器4054)的請(qǐng)求。然后vn4058可以處理這些請(qǐng)求,這在if-map服務(wù)器4054的情況下可以包括翻譯該標(biāo)識(shí)符(根據(jù)開放系統(tǒng)互連(osi)模型,其是層七(l7)數(shù)據(jù)),并且修改請(qǐng)求以用全局唯一標(biāo)識(shí)符替換該標(biāo)識(shí)符。
盡管未示出在圖3的示例中,vn4058還可以包括表或其它數(shù)據(jù)結(jié)構(gòu),表或其它數(shù)據(jù)結(jié)構(gòu)標(biāo)識(shí)哪些vn4056已經(jīng)被配置為使用名稱空間以便于自動(dòng)生成全局唯一標(biāo)識(shí)符以及哪些vn4056還沒有被配置為使用名稱空間以便于自動(dòng)生成全局唯一標(biāo)識(shí)符。也就是說,一些vn4056可以被配置為在格式化針對(duì)與特定標(biāo)識(shí)符關(guān)聯(lián)的會(huì)話數(shù)據(jù)的請(qǐng)求時(shí)使用名稱空間,而其它vn4056可以不被配置為以這種方式使用名稱空間。針對(duì)未被配置為使用名稱空間的那些vn4056,翻譯器4058可以透明地翻譯這些請(qǐng)求中的標(biāo)識(shí)符,以生成具有代替由不使用名稱空間的那些vn4056生成的標(biāo)識(shí)符的全局唯一標(biāo)識(shí)符的更新請(qǐng)求。通過使用該表處理發(fā)送到if-map服務(wù)器4054的請(qǐng)求和來自if-map服務(wù)器4054的響應(yīng)兩者,vn4058可以保持?jǐn)?shù)據(jù)結(jié)構(gòu)以標(biāo)識(shí)使用名稱空間的那些vn4056和不使用名稱空間的那些。
圖27是描繪根據(jù)本公開中描述的技術(shù)的各種方面的由服務(wù)器執(zhí)行的虛擬交換機(jī)在執(zhí)行查詢翻譯過程中的操作的流程圖。通常,查詢翻譯過程(在圖35的示例中表示為查詢翻譯過程“4180”)將在服務(wù)器4052a中例如由翻譯器vn0(或者在服務(wù)器4052a中例如由vn4058)執(zhí)行。在一些實(shí)例中,一個(gè)或多個(gè)配置vm108可以執(zhí)行查詢翻譯過程4180。
翻譯器vn0從諸如由子網(wǎng)vn1托管的公司a之類的一個(gè)租戶接收查詢(例如,針對(duì)與標(biāo)識(shí)符“雇員#5”關(guān)聯(lián)的數(shù)據(jù))(步驟4182)。如果查詢不包括名稱空間(步驟4183),通過基于查詢來自哪個(gè)租戶而將名稱空間添加到查詢(步驟4184),翻譯器vn0使查詢?nèi)只?。如果查詢已?jīng)包括名稱空間,則沒有名稱空間被添加,并且可以繞過步驟4184。具有添加的名稱空間的查詢現(xiàn)在可以是“公司a:雇員#5”。然后,具有添加的名稱空間的這種查詢被轉(zhuǎn)發(fā)到if-map服務(wù)器4054(步驟4186),并且接收結(jié)果(步驟4188)。由于if-map服務(wù)器4054是通用的并且處理來自不同子網(wǎng)218的查詢,結(jié)果包括名稱空間“公司a”。例如,結(jié)果可以是“公司a:邁阿密”。如果原始查詢不包括名稱空間,翻譯器vn0去掉名稱空間(步驟4190),并且將結(jié)果(“邁阿密”)轉(zhuǎn)發(fā)給租戶(步驟4192)。如果原始查詢包括名稱空間,翻譯器vn0可以在不去掉名稱空間的情況下將查詢結(jié)果轉(zhuǎn)發(fā)給租戶。
利用查詢翻譯過程4180,服務(wù)器4052a可以自動(dòng)將名稱空間添加到標(biāo)識(shí)符,而客戶端或租戶不知道命名方案。在這個(gè)意義上,服務(wù)器4052a可以有效地在局部唯一標(biāo)識(shí)符和全局唯一標(biāo)識(shí)符之間進(jìn)行翻譯,從而允許多個(gè)租戶共享if-map服務(wù)器4054。
如上所述,技術(shù)可以便于由數(shù)據(jù)中心的虛擬網(wǎng)絡(luò)訪問的服務(wù)器的多租戶。在以下條款中描述了各種示例。依照本文中描述的技術(shù),在以下條款中的任一條款中闡述的示例可以被并入,并且可以與貫穿本公開描述的任何其它示例組合實(shí)現(xiàn)。
條款1.一種方法包括:利用支持在數(shù)據(jù)中心內(nèi)執(zhí)行的多個(gè)虛擬網(wǎng)絡(luò)的虛擬交換機(jī)接收關(guān)于與在發(fā)起請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一內(nèi)唯一的標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的請(qǐng)求;翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符,以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符;更新請(qǐng)求,以用全局唯一標(biāo)識(shí)符替換包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符;以及將更新的請(qǐng)求發(fā)射到數(shù)據(jù)中心的服務(wù)器。
條款2.條款1的方法,其中翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符包括將分派給發(fā)起請(qǐng)求的一個(gè)虛擬網(wǎng)絡(luò)的名稱空間附加到標(biāo)識(shí)符以生成全局唯一標(biāo)識(shí)符。
條款3.條款1至2中的任一條款的方法,其中發(fā)起請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一包括多個(gè)虛擬網(wǎng)絡(luò)中的第一虛擬網(wǎng)絡(luò),其中請(qǐng)求包括第一請(qǐng)求,其中全局唯一標(biāo)識(shí)符包括第一全局唯一標(biāo)識(shí)符,以及其中方法進(jìn)一步包括:利用虛擬交換機(jī)接收關(guān)于與包括在第一請(qǐng)求中的標(biāo)識(shí)符相同的標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的第二請(qǐng)求,其中相同標(biāo)識(shí)符在發(fā)起第二請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)中的第二虛擬網(wǎng)絡(luò)內(nèi)也是唯一的;翻譯包括在第二請(qǐng)求內(nèi)的標(biāo)識(shí)符,以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的并且不同于第一全局唯一標(biāo)識(shí)符的第二全局唯一標(biāo)識(shí)符;更新第二請(qǐng)求以用第二全局唯一標(biāo)識(shí)符替換包括在第二請(qǐng)求內(nèi)的第二標(biāo)識(shí)符;以及將更新的第二請(qǐng)求發(fā)射到服務(wù)器。
條款4.條款1至3中的任一條款的方法,進(jìn)一步包括:從服務(wù)器接收包括全局唯一標(biāo)識(shí)符的響應(yīng);翻譯全局唯一標(biāo)識(shí)符,以恢復(fù)包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符;更新響應(yīng),以用恢復(fù)的標(biāo)識(shí)符替換全局唯一標(biāo)識(shí)符;以及將響應(yīng)發(fā)射給發(fā)出請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一。
條款5.條款4的方法,其中翻譯請(qǐng)求包括透明地翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符,使得發(fā)起響應(yīng)的多個(gè)虛擬網(wǎng)絡(luò)之一無法檢測到翻譯,以及其中翻譯全局唯一標(biāo)識(shí)符包括透明地翻譯包括在響應(yīng)內(nèi)的全局唯一標(biāo)識(shí)符以恢復(fù)包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符,使得發(fā)起響應(yīng)的多個(gè)虛擬網(wǎng)絡(luò)之一不知道翻譯。
條款6.條款1至5中的任一條款的方法,其中翻譯標(biāo)識(shí)符包括透明地翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符,使得發(fā)起響應(yīng)的多個(gè)虛擬網(wǎng)絡(luò)之一不知道翻譯。
條款7.條款1至6中的任一條款的方法,其中請(qǐng)求符合廠商中立協(xié)議,以及其中服務(wù)器包括依照廠商中立數(shù)據(jù)模型存儲(chǔ)數(shù)據(jù)的廠商中立服務(wù)器。
條款8.條款1至5中的任一條款的方法,其中請(qǐng)求符合元數(shù)據(jù)接入點(diǎn)接口(if-map)協(xié)議,以及其中服務(wù)器包括依照if-map數(shù)據(jù)模型存儲(chǔ)數(shù)據(jù)的if-map服務(wù)器。
條款9.條款1的方法,其中多個(gè)虛擬網(wǎng)絡(luò)中的每個(gè)虛擬網(wǎng)絡(luò)與數(shù)據(jù)中心的不同客戶關(guān)聯(lián),以及其中服務(wù)器包括存儲(chǔ)針對(duì)不同客戶中的至少兩個(gè)客戶的數(shù)據(jù)的多租戶服務(wù)器。
條款10.一種包括在數(shù)據(jù)中心內(nèi)的設(shè)備包括:一個(gè)或多個(gè)處理器,被配置為執(zhí)行支持在數(shù)據(jù)中心內(nèi)執(zhí)行的多個(gè)虛擬網(wǎng)絡(luò)的虛擬交換機(jī),其中虛擬交換機(jī)被配置為接收關(guān)于與在發(fā)起請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一內(nèi)唯一的標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的請(qǐng)求、翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符、更新請(qǐng)求以用全局唯一標(biāo)識(shí)符替換包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符、以及將更新的請(qǐng)求發(fā)射到數(shù)據(jù)中心的服務(wù)器。
條款11.條款10的設(shè)備,其中一個(gè)或多個(gè)處理器進(jìn)一步被配置為,在翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符時(shí),將分派給發(fā)起請(qǐng)求的一個(gè)虛擬網(wǎng)絡(luò)的名稱空間附加到標(biāo)識(shí)符,以生成全局唯一標(biāo)識(shí)符。
條款12.條款10至11中的任一條款的設(shè)備,其中發(fā)起請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一包括多個(gè)虛擬網(wǎng)絡(luò)中的第一虛擬網(wǎng)絡(luò),其中請(qǐng)求包括第一請(qǐng)求,其中全局唯一標(biāo)識(shí)符包括第一全局唯一標(biāo)識(shí)符,以及其中一個(gè)或多個(gè)處理器進(jìn)一步被配置為:接收關(guān)于與包括在第一請(qǐng)求中的標(biāo)識(shí)符相同的標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的第二請(qǐng)求,其中相同標(biāo)識(shí)符在發(fā)起第二請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)中的第二虛擬網(wǎng)絡(luò)內(nèi)也是唯一的;翻譯包括在第二請(qǐng)求內(nèi)的標(biāo)識(shí)符,以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的并且不同于第一全局唯一標(biāo)識(shí)符的第二全局唯一標(biāo)識(shí)符;更新第二請(qǐng)求以用第二全局唯一標(biāo)識(shí)符替換包括在第二請(qǐng)求內(nèi)的第二標(biāo)識(shí)符;以及將更新的第二請(qǐng)求發(fā)射到服務(wù)器。
條款13.條款10至12中的任一條款的設(shè)備,其中一個(gè)或多個(gè)處理器進(jìn)一步被配置為:從服務(wù)器接收包括全局唯一標(biāo)識(shí)符的響應(yīng);翻譯全局唯一標(biāo)識(shí)符,以恢復(fù)包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符;更新響應(yīng),以用恢復(fù)的標(biāo)識(shí)符替換全局唯一標(biāo)識(shí)符;以及將響應(yīng)發(fā)射給發(fā)出請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一。
條款14.條款13的設(shè)備,其中一個(gè)或多個(gè)處理器進(jìn)一步被配置為,在翻譯請(qǐng)求時(shí),透明地翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符,使得發(fā)起響應(yīng)的多個(gè)虛擬網(wǎng)絡(luò)之一無法檢測到翻譯,以及其中一個(gè)或多個(gè)處理器進(jìn)一步被配置為,在翻譯全局唯一標(biāo)識(shí)符時(shí),透明地翻譯包括在響應(yīng)內(nèi)的全局唯一標(biāo)識(shí)符以恢復(fù)包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符,使得發(fā)起響應(yīng)的多個(gè)虛擬網(wǎng)絡(luò)之一不知道翻譯。
條款15.條款10至14中的任一條款的設(shè)備,其中一個(gè)或多個(gè)處理器進(jìn)一步被配置為,在翻譯標(biāo)識(shí)符時(shí),透明地翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符,使得發(fā)起響應(yīng)的多個(gè)虛擬網(wǎng)絡(luò)之一不知道翻譯。
條款16.條款10至15中的任一條款的設(shè)備,其中請(qǐng)求符合廠商中立協(xié)議,以及其中服務(wù)器包括依照廠商中立數(shù)據(jù)模型存儲(chǔ)數(shù)據(jù)的廠商中立服務(wù)器。
條款17.條款10至15中的任一條款的設(shè)備,其中請(qǐng)求符合元數(shù)據(jù)接入點(diǎn)接口(if-map)協(xié)議,以及其中服務(wù)器包括依照if-map數(shù)據(jù)模型存儲(chǔ)數(shù)據(jù)的if-map服務(wù)器。
條款18.條款10的設(shè)備,其中多個(gè)虛擬網(wǎng)絡(luò)中的每個(gè)虛擬網(wǎng)絡(luò)與數(shù)據(jù)中心的不同客戶關(guān)聯(lián),以及其中服務(wù)器包括存儲(chǔ)針對(duì)不同客戶中的至少兩個(gè)客戶的數(shù)據(jù)的多租戶服務(wù)器。
條款19.一種具有存儲(chǔ)在其上的指令的非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),指令在被執(zhí)行時(shí)使得包括在數(shù)據(jù)中心內(nèi)的設(shè)備的一個(gè)或多個(gè)處理器執(zhí)行支持在數(shù)據(jù)中心內(nèi)執(zhí)行的多個(gè)虛擬網(wǎng)絡(luò)的虛擬交換機(jī),其中虛擬交換機(jī)被配置為:接收關(guān)于與在發(fā)起請(qǐng)求的多個(gè)虛擬網(wǎng)絡(luò)之一內(nèi)唯一的標(biāo)識(shí)符關(guān)聯(lián)的數(shù)據(jù)的請(qǐng)求,翻譯包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符以生成在多個(gè)虛擬網(wǎng)絡(luò)內(nèi)唯一的全局唯一標(biāo)識(shí)符,更新請(qǐng)求以用全局唯一標(biāo)識(shí)符替換包括在請(qǐng)求內(nèi)的標(biāo)識(shí)符,以及將更新的請(qǐng)求發(fā)射到數(shù)據(jù)中心的服務(wù)器。
便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作
總體上,描述了用于使用分布式虛擬網(wǎng)絡(luò)控制器便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的技術(shù)。一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)可以至少包括通過至少交換機(jī)設(shè)備連接到因特網(wǎng)協(xié)議網(wǎng)絡(luò)的服務(wù)器設(shè)備。系統(tǒng)可以包括被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第一集的操作的第一控制器節(jié)點(diǎn)設(shè)備。系統(tǒng)可以進(jìn)一步包括被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第二集的操作的第二控制器節(jié)點(diǎn)設(shè)備。第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備可以使用對(duì)等協(xié)議對(duì)等,并且根據(jù)對(duì)等協(xié)議可以是對(duì)等體。系統(tǒng)可以包括與第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備中的一個(gè)或多個(gè)關(guān)聯(lián)的硬件(和軟件)。
圖28是圖示依照本公開的一個(gè)或多個(gè)方面的用于便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的示例設(shè)備5200的框圖。圖28僅圖示計(jì)算設(shè)備5200的一個(gè)特定示例,并且在其它實(shí)例中可以使用計(jì)算設(shè)備5200的許多其它示例。例如,計(jì)算設(shè)備5200可以表示圖1的任何服務(wù)器12的示例實(shí)例。
如圖6的具體示例所示,計(jì)算設(shè)備5200包括一個(gè)或多個(gè)處理器5201、一個(gè)或多個(gè)通信單元5202、一個(gè)或多個(gè)輸入設(shè)備5204、一個(gè)或多個(gè)輸出設(shè)備5206以及一個(gè)或多個(gè)存儲(chǔ)設(shè)備5208。在圖6的具體示例中,計(jì)算設(shè)備5200進(jìn)一步包括操作系統(tǒng)5210、虛擬化模塊5212以及一個(gè)或多個(gè)應(yīng)用5214a至5214n(統(tǒng)稱為“應(yīng)用5214”)。部件5201、部件5202、部件5204、部件5206和部件5208中的每個(gè)部件可以互連(物理上、通信上和/或操作上)以用于部件間通信。作為圖6中的一個(gè)示例,部件5201、部件5202、部件5204、部件5206和部件5208可以通過一個(gè)或多個(gè)通信信道5216耦合。在一些示例中,通信信道5216可以包括系統(tǒng)總線、網(wǎng)絡(luò)連接、進(jìn)程間通信數(shù)據(jù)結(jié)構(gòu)或者用于傳達(dá)數(shù)據(jù)的任何其它信道。虛擬化模塊5212和應(yīng)用5214,以及操作系統(tǒng)5210也可以與彼此以及與計(jì)算設(shè)備5200中的其它部件傳達(dá)信息。
在一個(gè)示例中,處理器5201被配置為實(shí)現(xiàn)用于在計(jì)算設(shè)備5200內(nèi)執(zhí)行的功能和/或過程指令。例如,處理器5201可以有能力處理存儲(chǔ)在存儲(chǔ)設(shè)備5208中的指令。處理器5201的示例可以包括微處理器、控制器、數(shù)字信號(hào)處理器(dsp)、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者等效分立或集成邏輯電路裝置中的任何一個(gè)或多個(gè)。
一個(gè)或多個(gè)存儲(chǔ)設(shè)備5208可以被配置為存儲(chǔ)在操作期間計(jì)算設(shè)備5200內(nèi)的信息。在一些示例中,存儲(chǔ)設(shè)備5208被描述為計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。在一些示例中,存儲(chǔ)設(shè)備5208是暫時(shí)存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備5208的主要目的不是長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備5208被描述為易失存儲(chǔ)器,從而意指存儲(chǔ)設(shè)備5208在計(jì)算機(jī)關(guān)閉時(shí)不保持存儲(chǔ)的內(nèi)容。易失存儲(chǔ)器的示例包括隨機(jī)存取存儲(chǔ)器(ram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)以及本領(lǐng)域已知的其它形式的易失存儲(chǔ)器。在一些示例中,存儲(chǔ)設(shè)備5208用于存儲(chǔ)程序指令以用于由處理器5201執(zhí)行。在一個(gè)示例中,存儲(chǔ)設(shè)備5208由運(yùn)行在計(jì)算設(shè)備5200上的軟件或應(yīng)用(例如,操作系統(tǒng)5210、虛擬化模塊5212等)使用,以在程序執(zhí)行期間暫時(shí)存儲(chǔ)信息。
在一些示例中,存儲(chǔ)設(shè)備5208還包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。存儲(chǔ)設(shè)備5208可以被配置為存儲(chǔ)比易失存儲(chǔ)器更大量的信息。存儲(chǔ)設(shè)備5208可以進(jìn)一步被配置用于信息的長期存儲(chǔ)。在一些示例中,存儲(chǔ)設(shè)備5208包括非易失存儲(chǔ)元件。這樣的非易失存儲(chǔ)元件的示例包括磁性硬盤、盒式磁帶或磁帶盒、光盤、軟盤、閃速存儲(chǔ)器、或者電可編程存儲(chǔ)器(eprom)或電可擦除可編程存儲(chǔ)器(eeprom)的形式。
在一些示例中,計(jì)算設(shè)備5200還包括一個(gè)或多個(gè)通信單元5202。在一個(gè)示例中,計(jì)算設(shè)備5200利用通信單元5202與外部設(shè)備進(jìn)行通信。在一些示例中,通信單元5202可以通過經(jīng)由入站和出站鏈路在一個(gè)或多個(gè)網(wǎng)絡(luò)(諸如一個(gè)或多個(gè)無線網(wǎng)絡(luò))上發(fā)送數(shù)據(jù)分組而進(jìn)行通信。通信單元5202可以包括諸如以太網(wǎng)卡之類的一個(gè)或多個(gè)網(wǎng)絡(luò)接口卡(ifc)、光學(xué)收發(fā)器、射頻收發(fā)器、或者可以發(fā)送和接收信息的任何其它類型的設(shè)備。這樣的網(wǎng)絡(luò)接口的其它示例可以包括藍(lán)牙、3g和wi-fi無線電部件。
在一個(gè)示例中,計(jì)算設(shè)備5200還包括一個(gè)或多個(gè)輸入設(shè)備5204。在一些示例中,輸入設(shè)備5204被配置為通過觸覺、音頻或視頻反饋接收來自用戶的輸入。輸入設(shè)備5204的示例包括存在敏感顯示器、鼠標(biāo)、鍵盤、語音響應(yīng)系統(tǒng)、攝像機(jī)、麥克風(fēng)、或者用于檢測來自用戶的命令的任何其它類型的設(shè)備。在一些示例中,存在敏感顯示器包括觸摸屏。
一個(gè)或多個(gè)輸出設(shè)備5206也可以被包括在計(jì)算設(shè)備5200中。在一些示例中,輸出設(shè)備5206被配置為使用觸覺、音頻或視頻刺激向用戶提供輸出。在一個(gè)示例中,輸出設(shè)備5206包括存在敏感顯示器、聲卡、視頻圖形適配器卡、或者用于將信號(hào)轉(zhuǎn)換成人或機(jī)器可理解的適當(dāng)形式的任何其它類型的設(shè)備。輸出設(shè)備5206的另外示例包括揚(yáng)聲器、陰極射線管(crt)監(jiān)控器、液晶顯示器(lcd)、或者可以生成用戶可理解輸出的任何其它類型的設(shè)備。
計(jì)算設(shè)備5200可以包括操作系統(tǒng)5212。在一些示例中,操作系統(tǒng)5212控制計(jì)算設(shè)備5200的部件的操作。例如,在一個(gè)示例中,操作系統(tǒng)5212便于應(yīng)用5214與處理器5201、通信單元5202、輸入設(shè)備5204、輸出設(shè)備5206以及存儲(chǔ)設(shè)備5210的通信。應(yīng)用5214可以各自包括可由計(jì)算設(shè)備5200執(zhí)行的程序指令和/或數(shù)據(jù)。作為一個(gè)示例,應(yīng)用5214a可以包括使得計(jì)算設(shè)備5200執(zhí)行本公開中描述的一個(gè)或多個(gè)操作和動(dòng)作的指令。
依照本公開的技術(shù),計(jì)算設(shè)備5200可以進(jìn)一步包括虛擬交換機(jī)5216和虛擬網(wǎng)絡(luò)代理5218,它們可以執(zhí)行在作為計(jì)算設(shè)備5200的管理程序進(jìn)行操作的虛擬化模塊5212上或者在計(jì)算設(shè)備5200的本機(jī)操作系統(tǒng)上。虛擬交換機(jī)5216和虛擬交換機(jī)代理5218可以分別執(zhí)行圖5的虛擬交換機(jī)174和虛擬網(wǎng)絡(luò)交換機(jī)代理172。虛擬交換機(jī)5216可以實(shí)現(xiàn)針對(duì)執(zhí)行在計(jì)算設(shè)備5200上的一個(gè)或多個(gè)端點(diǎn)和/或一個(gè)或多個(gè)主機(jī)(例如,vm36)的層3轉(zhuǎn)發(fā)和策略強(qiáng)制執(zhí)行點(diǎn)。由于從諸如圖1的vnc22之類的虛擬網(wǎng)絡(luò)控制器接收的配置信息,一個(gè)或多個(gè)端點(diǎn)或者一個(gè)和/或一個(gè)或多個(gè)主機(jī)可以被分類到虛擬網(wǎng)絡(luò)中。
技術(shù)被描述用于使用分布式虛擬網(wǎng)絡(luò)控制器便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作。在以下條款中描述了各種示例。依照本文中描述的技術(shù),在以下條款中的任一條款中闡述的示例可以被并入,并且可以與貫穿本公開描述的任何其它示例組合實(shí)現(xiàn)。
條款1.一種系統(tǒng)包括實(shí)現(xiàn)一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的元件的第一集和元件的第二集;第一服務(wù)器設(shè)備和第二服務(wù)器設(shè)備各自通過交換機(jī)結(jié)構(gòu)連接到網(wǎng)絡(luò);第一控制器節(jié)點(diǎn)設(shè)備被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第一集的操作,其中元件的第一集包括第一服務(wù)器設(shè)備;以及第二控制器節(jié)點(diǎn)設(shè)備被配置為控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第二集的操作,其中元件的第二集包括第二服務(wù)器設(shè)備,其中第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備根據(jù)對(duì)等協(xié)議是對(duì)等體,第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備通過對(duì)等協(xié)議交換涉及元件的第一集和元件的第二集的操作的信息。
條款2.條款1的系統(tǒng),進(jìn)一步包括第一服務(wù)器設(shè)備的虛擬網(wǎng)絡(luò)交換機(jī),虛擬網(wǎng)絡(luò)交換機(jī)被配置為通過使用層3協(xié)議使分組隧穿到第二服務(wù)器設(shè)備,便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)的重疊。
條款3.條款1至2中的任一條款的系統(tǒng),其中第一控制器節(jié)點(diǎn)設(shè)備包括用于存儲(chǔ)與元件的第一集有關(guān)的診斷信息的第一分析數(shù)據(jù)庫,其中第二控制器節(jié)點(diǎn)設(shè)備包括用于存儲(chǔ)與元件的第二集有關(guān)的診斷信息的第二分析數(shù)據(jù)庫,以及其中第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)被配置為共享與元件的第一集和元件的第二集中的一個(gè)或多個(gè)有關(guān)的至少一些診斷數(shù)據(jù)。
條款4.條款3的系統(tǒng),其中第一分析數(shù)據(jù)庫和第二分析數(shù)據(jù)庫是分布式數(shù)據(jù)庫的一部分。
條款5.條款1至4中的任一條款的系統(tǒng),其中第一控制器節(jié)點(diǎn)設(shè)備包括用于使用元數(shù)據(jù)接入點(diǎn)接口協(xié)議存儲(chǔ)與元件的第一集有關(guān)的配置信息的第一配置數(shù)據(jù)庫,其中第二控制器節(jié)點(diǎn)設(shè)備包括用于存儲(chǔ)與元件的第二集有關(guān)的配置信息的第二配置數(shù)據(jù)庫,以及其中第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)被配置為共享與元件的第一集和元件的第二集中的一個(gè)或多個(gè)有關(guān)的至少一些配置數(shù)據(jù)。
條款6.條款1至5中的任一條款的系統(tǒng),進(jìn)一步包括用戶接口,配置用于與第一控制器節(jié)點(diǎn)設(shè)備交互并且用于與第二控制器節(jié)點(diǎn)設(shè)備交互。
條款7.條款1至6中的任一條款的系統(tǒng),其中第一控制器節(jié)點(diǎn)設(shè)備被配置為使用對(duì)等協(xié)議向第二控制器節(jié)點(diǎn)設(shè)備提供與元件的第一集有關(guān)的信息。
條款8.條款1至7中的任一條款的系統(tǒng),其中對(duì)等協(xié)議是邊界網(wǎng)關(guān)協(xié)議。
條款9.條款1至8中的任一條款的系統(tǒng),其中第一控制器節(jié)點(diǎn)設(shè)備包括第一控制平面虛擬機(jī),其中第二控制器節(jié)點(diǎn)設(shè)備包括第二控制平面虛擬機(jī),以及其中第一控制平面虛擬機(jī)被配置為使用對(duì)等協(xié)議向第二控制平面虛擬機(jī)提供與元件的第一集有關(guān)的信息。
條款10.條款1至9中的任一條款的系統(tǒng),進(jìn)一步包括虛擬網(wǎng)絡(luò)交換機(jī),其實(shí)現(xiàn)在第一服務(wù)器設(shè)備中并且被配置為便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)的重疊,其中第一控制平面虛擬機(jī)被配置為使用可擴(kuò)展消息傳遞和到場協(xié)議與虛擬網(wǎng)絡(luò)交換機(jī)進(jìn)行通信。
條款11.條款1至9中的任一條款的系統(tǒng),其中第一控制器節(jié)點(diǎn)設(shè)備進(jìn)一步包括被配置為存儲(chǔ)與元件的第一集有關(guān)的配置信息的第一配置虛擬機(jī),以及其中第一控制平面虛擬機(jī)被配置為使用可擴(kuò)展消息傳遞和到場協(xié)議和元數(shù)據(jù)接入點(diǎn)接口協(xié)議中的至少一個(gè),與第一配置虛擬機(jī)進(jìn)行通信。
條款12.條款1至9中的任一條款的系統(tǒng),其中第一控制器節(jié)點(diǎn)設(shè)備進(jìn)一步包括被配置為存儲(chǔ)與元件的第一集有關(guān)的診斷信息的第一分析虛擬機(jī),以及其中第一控制平面虛擬機(jī)被配置成使用可擴(kuò)展消息傳遞和到場協(xié)議與第一分析虛擬機(jī)進(jìn)行通信。
條款13.條款1至9中的任一條款的系統(tǒng),其中第一控制平面虛擬機(jī)包括一種類型軟件的特定版本,以及其中第二控制平面虛擬機(jī)包括該種類型軟件的不同于特定版本的不同版本。
條款14.一種用于便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)的操作的方法,一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)包括各自通過交換機(jī)結(jié)構(gòu)連接到網(wǎng)絡(luò)的第一服務(wù)器設(shè)備和第二服務(wù)器設(shè)備,方法包括:使用第一控制器節(jié)點(diǎn)設(shè)備控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第一集的操作,其中元件的第一集包括第一服務(wù)器設(shè)備;使用第二控制器節(jié)點(diǎn)設(shè)備控制一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的元件的第二集的操作,其中元件的第二集包括第二服務(wù)器設(shè)備;以及使用對(duì)等協(xié)議使第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備對(duì)等,以在第一控制器節(jié)點(diǎn)設(shè)備和第二控制器節(jié)點(diǎn)設(shè)備之間,交換涉及元件的第一集和元件的第二集的操作的信息。
條款15.條款14的方法,進(jìn)一步包括使用實(shí)現(xiàn)在服務(wù)器設(shè)備中的虛擬網(wǎng)絡(luò)交換機(jī)并且使用層3協(xié)議,便于一個(gè)或多個(gè)虛擬網(wǎng)絡(luò)中的多個(gè)網(wǎng)絡(luò)的重疊。
條款16.條款14至15中的任一條款的方法,進(jìn)一步包括:使用實(shí)現(xiàn)在第一控制器節(jié)點(diǎn)設(shè)備中的第一分析數(shù)據(jù)庫存儲(chǔ)與元件的第一集有關(guān)的診斷信息;使用實(shí)現(xiàn)在第二控制器節(jié)點(diǎn)設(shè)備中的第二分析數(shù)據(jù)庫存儲(chǔ)與元件的第二集有關(guān)的診斷信息;以及使用第一控制器節(jié)點(diǎn)設(shè)備向第二控制器節(jié)點(diǎn)提供與元件的第一集和元件的第二集中的一個(gè)或多個(gè)有關(guān)的至少一些診斷數(shù)據(jù)。
條款17.條款14至16中的任一條款的方法,其中第一分析數(shù)據(jù)庫和第二分析數(shù)據(jù)庫是分布式數(shù)據(jù)庫的一部分。
條款18.條款14至17中的任一條款的方法,進(jìn)一步包括:使用實(shí)現(xiàn)在第一控制器節(jié)點(diǎn)設(shè)備中的第一配置數(shù)據(jù)庫并且使用元數(shù)據(jù)接入點(diǎn)接口協(xié)議存儲(chǔ)與元件的第一集有關(guān)的配置信息;使用實(shí)現(xiàn)在第二控制器節(jié)點(diǎn)設(shè)備中的第二配置數(shù)據(jù)庫存儲(chǔ)與元件的第二集有關(guān)的配置信息;以及使用第一控制器節(jié)點(diǎn)設(shè)備向第二控制器節(jié)點(diǎn)設(shè)備提供與元件的第一集和元件的第二集中的一個(gè)或多個(gè)有關(guān)的至少一些配置數(shù)據(jù)。
條款19.一種虛擬網(wǎng)絡(luò)控制器節(jié)點(diǎn)設(shè)備包括:一個(gè)或多個(gè)處理器;由處理器執(zhí)行的控制平面虛擬機(jī),用于使用可擴(kuò)展消息傳遞和到場協(xié)議(xmpp)與多個(gè)虛擬網(wǎng)絡(luò)交換機(jī)進(jìn)行通信;配置虛擬機(jī),用于存儲(chǔ)和管理包括針對(duì)虛擬網(wǎng)絡(luò)交換機(jī)的配置信息的配置數(shù)據(jù)庫;分析虛擬機(jī),用于存儲(chǔ)和管理包括針對(duì)虛擬網(wǎng)絡(luò)交換機(jī)的日志記錄信息的分析數(shù)據(jù)庫,其中配置虛擬機(jī)和分析虛擬機(jī)使用元數(shù)據(jù)接入點(diǎn)接口協(xié)議與控制平面虛擬機(jī)進(jìn)行通信,其中控制平面虛擬機(jī)通過使用xmpp向虛擬網(wǎng)絡(luò)交換機(jī)發(fā)送路由數(shù)據(jù)和配置信息來配置虛擬網(wǎng)絡(luò)交換機(jī),以及其中控制平面虛擬機(jī)使用xmpp接收針對(duì)虛擬網(wǎng)絡(luò)交換機(jī)的日志記錄信息并且將日志記錄信息路由到分析虛擬機(jī)以存儲(chǔ)到分析數(shù)據(jù)庫。
條款20.一種網(wǎng)絡(luò)系統(tǒng)包括:包括多個(gè)交換機(jī)的交換機(jī)結(jié)構(gòu);具有依照對(duì)等協(xié)議與彼此進(jìn)行對(duì)等通信的一組控制器節(jié)點(diǎn)設(shè)備的分布式控制器,其中每個(gè)控制器節(jié)點(diǎn)設(shè)備配置和管理多個(gè)交換機(jī)內(nèi)的重疊網(wǎng)絡(luò);通過交換機(jī)結(jié)構(gòu)互連的多個(gè)服務(wù)器,其中每個(gè)服務(wù)器包括執(zhí)行經(jīng)由重疊網(wǎng)絡(luò)進(jìn)行通信的一個(gè)或多個(gè)虛擬機(jī)的操作環(huán)境,以及其中服務(wù)器包括使重疊網(wǎng)絡(luò)作為虛擬網(wǎng)絡(luò)延伸到虛擬機(jī)的操作環(huán)境的一組虛擬交換機(jī)。
條款21.條款20的網(wǎng)絡(luò)系統(tǒng),其中網(wǎng)絡(luò)包括網(wǎng)絡(luò)數(shù)據(jù)中心。
條款22.條款20至21中的任一條款的網(wǎng)絡(luò)系統(tǒng),其中控制器節(jié)點(diǎn)設(shè)備經(jīng)由對(duì)等協(xié)議交換涉及虛擬交換機(jī)的操作的信息。
本文中描述的技術(shù)(包括前述任何章節(jié)中的)可以被實(shí)現(xiàn)在硬件、軟件、固件或其任何組合中。描述為模塊、單元或部件的各種特征可一起實(shí)現(xiàn)在集成邏輯設(shè)備中或者單獨(dú)作為分立但可互操作的邏輯設(shè)備或其它硬件設(shè)備。在一些情況下,電子電路裝置的各種特征可以被實(shí)現(xiàn)為諸如集成電路芯片或芯片組之類的一個(gè)或多個(gè)集成電路設(shè)備。
如果實(shí)現(xiàn)在硬件中,本公開可以涉及處理器或集成電路設(shè)備這樣的裝置,諸如集成電路芯片或芯片組。備選地或另外,如果實(shí)現(xiàn)在軟件或固件中,技術(shù)可以至少部分通過包括指令的計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)介質(zhì)來實(shí)現(xiàn),指令在被執(zhí)行時(shí)使得處理器執(zhí)行上面描述的一個(gè)或多個(gè)方法。例如,計(jì)算機(jī)可讀數(shù)據(jù)存儲(chǔ)介質(zhì)可以存儲(chǔ)這樣的指令以用于由處理器執(zhí)行。
計(jì)算機(jī)可讀介質(zhì)可以形成其可以包括包裝材料的計(jì)算機(jī)程序產(chǎn)品的一部分。計(jì)算機(jī)可讀介質(zhì)可以包括計(jì)算機(jī)數(shù)據(jù)存儲(chǔ)介質(zhì),諸如隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、非易失隨機(jī)存取存儲(chǔ)器(nvram)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、閃速存儲(chǔ)器、磁性或光學(xué)數(shù)據(jù)存儲(chǔ)介質(zhì)等。在一些示例中,一件制造品可以包括一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。
在一些示例中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括非瞬態(tài)介質(zhì)。術(shù)語“非瞬態(tài)”可以指示存儲(chǔ)介質(zhì)不是在載波或傳播信號(hào)中體現(xiàn)的。在某些示例中,非瞬態(tài)存儲(chǔ)介質(zhì)可以存儲(chǔ)可以隨著時(shí)間的推移改變的數(shù)據(jù)(例如,在ram或高速緩存中)。
代碼或指令可以是由處理電路裝置執(zhí)行的軟件和/或固件,處理電路裝置包括一個(gè)或多個(gè)處理器,諸如一個(gè)或多個(gè)數(shù)字信號(hào)處理器(dsp)、通用微處理器、專用集成電路(asic)、現(xiàn)場可編程門陣列(fpga)或者其它等效的集成或分立邏輯電路裝置。據(jù)此,如本文中使用的術(shù)語“處理器”可以指任何前述結(jié)構(gòu)或者適合于實(shí)現(xiàn)本文中描述的技術(shù)的任何其它結(jié)構(gòu)。另外,在一些方面中,本公開中描述的功能可以被提供具有軟件模塊或硬件模塊。
已經(jīng)描述了各種實(shí)施例。這些和其它實(shí)施例在以下示例的范圍內(nèi)。