两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于虛擬和物理網(wǎng)絡(luò)集成的方法和系統(tǒng)與流程

文檔序號(hào):12067946閱讀:178來(lái)源:國(guó)知局
用于虛擬和物理網(wǎng)絡(luò)集成的方法和系統(tǒng)與流程

技術(shù)領(lǐng)域

本發(fā)明涉及虛擬和物理網(wǎng)絡(luò)集成的領(lǐng)域。



背景技術(shù):

互聯(lián)網(wǎng)的指數(shù)級(jí)增長(zhǎng)已經(jīng)使其成為用于各種應(yīng)用的無(wú)處不在的遞送介質(zhì)。此類應(yīng)用又已帶來(lái)對(duì)帶寬的不斷增加的需求。結(jié)果,服務(wù)提供者競(jìng)相建立具有各種各樣能力的更大更快的數(shù)據(jù)中心。同時(shí),虛擬化技術(shù)的發(fā)展使得可以在數(shù)據(jù)中心中實(shí)現(xiàn)大量虛擬機(jī)(VM)。這些虛擬機(jī)實(shí)質(zhì)上可以作為物理主機(jī)操作,并執(zhí)行諸如Web服務(wù)器或數(shù)據(jù)庫(kù)服務(wù)器的各種功能。因?yàn)樘摂M機(jī)是以軟件實(shí)現(xiàn)的,所以它們可以自由地移植到各個(gè)位置。這種能力使服務(wù)提供者可以根據(jù)消費(fèi)者需求對(duì)物理資源(例如,計(jì)算能力和網(wǎng)絡(luò)容量)進(jìn)行分區(qū)和隔離,并且可以動(dòng)態(tài)分配這種資源。

雖然虛擬化給服務(wù)提供者帶來(lái)前所未有的靈活性,但是常規(guī)的層-2網(wǎng)絡(luò)架構(gòu)趨于是固定的并且不能容易地適應(yīng)虛擬機(jī)的動(dòng)態(tài)特性。例如,在常規(guī)的數(shù)據(jù)中心架構(gòu)中,主機(jī)常常通過(guò)一個(gè)或多個(gè)層-2(例如,以太網(wǎng))交換機(jī)互連,以形成層-2廣播域。層-2廣播域的物理范圍(physical reach)受傳輸介質(zhì)限制。結(jié)果,不同的數(shù)據(jù)中心通常與不同的層-2廣播域關(guān)聯(lián),而多個(gè)層-2廣播域可以存在于單個(gè)數(shù)據(jù)中心中。為了使一個(gè)數(shù)據(jù)中心中的VM與另一個(gè)數(shù)據(jù)中心中的VM或存儲(chǔ)設(shè)備通信,這種通信將需要經(jīng)層-3網(wǎng)絡(luò)承載。即,源和目的地之間的包必須由層-3設(shè)備(例如,IP路由器)處理和轉(zhuǎn)發(fā),因?yàn)樵春湍康牡貙儆诓煌膶?2廣播域。雖然這種架構(gòu)有好處,但是扁平的層-2處理有其優(yōu)點(diǎn)。實(shí)際上,將期望在網(wǎng)絡(luò)中利用層-3和層-2模型這兩者的優(yōu)點(diǎn)和處理能力。

解決上述問(wèn)題的一種技術(shù)是實(shí)現(xiàn)虛擬可擴(kuò)展局域網(wǎng)(VXLAN)。VXLAN是由互聯(lián)網(wǎng)工程任務(wù)組(IETF)管理的標(biāo)準(zhǔn)網(wǎng)絡(luò)虛擬化技術(shù),并通過(guò)創(chuàng)建覆蓋在層-3IP網(wǎng)絡(luò)之上的邏輯層-2網(wǎng)絡(luò)來(lái)工作。由VM生成的以太網(wǎng)包在被傳輸?shù)竭h(yuǎn)程數(shù)據(jù)中心之前被封裝在IP頭中,在遠(yuǎn)程數(shù)據(jù)中心,IP頭被移除并且原始以太網(wǎng)包被遞送到目的地。IP封裝機(jī)制允許邏輯層-2廣播域擴(kuò)展到任意數(shù)量的遠(yuǎn)程位置,并允許不同的數(shù)據(jù)中心或相同數(shù)據(jù)中心的不同部分(由此其中的VM和設(shè)備)處于相同的層-2廣播域中。VXLAN功能通常駐留在主機(jī)的管理程序中,并與管理程序的虛擬交換機(jī)配合進(jìn)行工作。VXLAN的更多細(xì)節(jié)可以在https://tools.ietf.org/html/draft-mahalingam-dutt-dcops-vxlan-02處可獲得的IETF草案“VXLAN:A Framework for Overlaying Virtualized Layer 2Networks over Layer 3Networks”中找到,該草案通過(guò)引用被并入本文。

但是,現(xiàn)有的VXLAN實(shí)現(xiàn)方式不能容易地適應(yīng)在相同的邏輯層-2廣播域中的VM與物理主機(jī)的混合。這是因?yàn)楣芾沓绦蛑械腣XLAN特征默認(rèn)地對(duì)由屬于某個(gè)VXLAN的VM生成的以太網(wǎng)包進(jìn)行封裝。另一方面,物理主機(jī)不能容易地參與到相同的VXLAN,因?yàn)闆](méi)有對(duì)物理主機(jī)生成的以太網(wǎng)包進(jìn)行封裝的機(jī)制,該機(jī)制會(huì)以其它方式允許以太網(wǎng)包被遞送到其它具有VXLAN能力的VM。



技術(shù)實(shí)現(xiàn)要素:

本文的公開(kāi)內(nèi)容描述了一種促進(jìn)虛擬和物理網(wǎng)絡(luò)設(shè)備的集成的網(wǎng)絡(luò)通信系統(tǒng)。具體而言,該系統(tǒng)提供虛擬可擴(kuò)展局域網(wǎng)(VXLAN)網(wǎng)關(guān)。在操作期間,VXLAN網(wǎng)關(guān)從物理主機(jī)接收以駐留在遠(yuǎn)程層-2網(wǎng)絡(luò)廣播域中的虛擬機(jī)為目的地的以太網(wǎng)包,遠(yuǎn)程層-2網(wǎng)絡(luò)廣播域與物理主機(jī)駐留的本地層-2網(wǎng)絡(luò)廣播域不同。然后,VXLAN網(wǎng)關(guān)確定接收的以太網(wǎng)包的VXLAN網(wǎng)絡(luò)標(biāo)識(shí)符(VNI)。VXLAN網(wǎng)關(guān)還用VNI和互聯(lián)網(wǎng)協(xié)議(IP)頭來(lái)封裝以太網(wǎng)包,并將封裝的包轉(zhuǎn)發(fā)到IP網(wǎng)絡(luò),由此允許包經(jīng)由IP網(wǎng)絡(luò)傳輸?shù)教摂M機(jī),并允許遠(yuǎn)程層-2網(wǎng)絡(luò)廣播域和本地層-2網(wǎng)絡(luò)廣播域成為公共層-2廣播域的部分。

從物理主機(jī)接收的以太網(wǎng)包可以是地址解析協(xié)議(ARP)請(qǐng)求包。此外,VXLAN網(wǎng)關(guān)維護(hù)將VNI映射到IP多播組的數(shù)據(jù)結(jié)構(gòu)。VXLAN網(wǎng)關(guān)還將IP頭中的目的地IP地址設(shè)定為與該IP多播組對(duì)應(yīng)的IP地址。VXLAN網(wǎng)關(guān)還可以維護(hù)將物理主機(jī)的介質(zhì)訪問(wèn)控制(MAC)地址以及可選地將物理主機(jī)的虛擬局域網(wǎng)(VLAN)標(biāo)簽映射到VNI的數(shù)據(jù)結(jié)構(gòu)。該數(shù)據(jù)結(jié)構(gòu)還可以包含涵蓋特定VLAN上所有物理主機(jī)的條目。這被指示為在沒(méi)有任何特定于主機(jī)的信息的情況下VNI與VLAN標(biāo)簽之間的映射。

此外,VXLAN網(wǎng)關(guān)可以從虛擬機(jī)接收包,其中該包包括外部以太網(wǎng)頭、IP頭以及內(nèi)部以太網(wǎng)頭。然后,VXLAN網(wǎng)關(guān)通過(guò)移除從虛擬機(jī)接收的包的外部以太網(wǎng)頭和IP頭來(lái)對(duì)該包解封裝,并將解封裝的包轉(zhuǎn)發(fā)到物理主機(jī)。VXLAN網(wǎng)關(guān)還可以創(chuàng)建與第二虛擬可擴(kuò)展局域網(wǎng)網(wǎng)關(guān)的隧道,由此接合具有公共VNI的兩個(gè)層-2網(wǎng)絡(luò)廣播域。可選地,VXLAN網(wǎng)關(guān)可以從OpenFlow控制器接收配置信息。

附圖說(shuō)明

圖1示出了促進(jìn)VXLAN網(wǎng)關(guān)的示例性網(wǎng)絡(luò)架構(gòu)。

圖2示出了常規(guī)以太網(wǎng)包的頭格式及其VXLAN封裝。

圖3展示了示出物理主機(jī)經(jīng)由VXLAN網(wǎng)關(guān)啟動(dòng)跨IP網(wǎng)絡(luò)與VM的通信的示例性處理的時(shí)間-空間圖。

圖4展示了示出物理主機(jī)經(jīng)由VXLAN網(wǎng)關(guān)與VM通信的示例性處理的流程圖。

圖5示出了兩個(gè)遠(yuǎn)程定位的數(shù)據(jù)中心通過(guò)VXLAN網(wǎng)關(guān)接合以形成單個(gè)層-2廣播域的示例性網(wǎng)絡(luò)架構(gòu)。

圖6示出了利用OpenFlow控制器促進(jìn)VXLAN網(wǎng)關(guān)的配置的示例性網(wǎng)絡(luò)架構(gòu)。

圖7示出了促進(jìn)VXLAN網(wǎng)關(guān)的示例性計(jì)算機(jī)系統(tǒng)。

在附圖中,相同的參考標(biāo)號(hào)指示相同的附圖單元。

具體實(shí)施方式

以下描述的給出是為了使本領(lǐng)域任何技術(shù)人員都能夠作出和使用實(shí)施例,并且是在特定應(yīng)用及其需求的情境下提供的。對(duì)所公開(kāi)實(shí)施例的各種修改將對(duì)本領(lǐng)域技術(shù)人員非常清楚,并且在不偏離本公開(kāi)內(nèi)容的精神與范圍的情況下,本文所定義的一般原理可以應(yīng)用到其它實(shí)施例和應(yīng)用。因此,本發(fā)明不限于示出的實(shí)施例,而是將符合與本文所公開(kāi)的原理和特征一致的最寬范圍。

本文所公開(kāi)的系統(tǒng)的實(shí)施例通過(guò)促進(jìn)VXLAN網(wǎng)關(guān)來(lái)解決在VM和物理主機(jī)之間啟用VXLAN封裝的通信的問(wèn)題,其中VXLAN網(wǎng)關(guān)充當(dāng)物理主機(jī)的網(wǎng)關(guān)并代表物理主機(jī)執(zhí)行VXLAN封裝和解封裝。如以上提到的,管理程序(諸如位于加州Palo Alto的VMware有限公司的產(chǎn)品系列)中的VXLAN特征自動(dòng)地對(duì)由作為啟用了VXLAN的以太網(wǎng)廣播域的一部分的VM生成的以太網(wǎng)包進(jìn)行封裝。目前沒(méi)有現(xiàn)成可用的可以允許物理主機(jī)參與這種啟用了VXLAN的廣播域的機(jī)制,其中物理主機(jī)在其協(xié)議棧中不具有這種VXLAN特征。這是因?yàn)榫W(wǎng)絡(luò)中沒(méi)有可以用VXLAN頭對(duì)物理主機(jī)的以太網(wǎng)包進(jìn)行封裝的設(shè)備。

為了解決這個(gè)問(wèn)題,駐留在與物理主機(jī)相同的層-2廣播域中的VXLAN網(wǎng)關(guān)可以代表物理主機(jī)執(zhí)行VXLAN封裝和解封裝。圖1示出了促進(jìn)VXLAN網(wǎng)關(guān)的示例性網(wǎng)絡(luò)架構(gòu)。在這個(gè)例子中,IP網(wǎng)絡(luò)100耦合若干個(gè)常規(guī)的層-2網(wǎng)絡(luò)。具體而言,主機(jī)102耦合到IP路由器130。主機(jī)102托管多個(gè)VM:108、110和112。VM 108和110屬于VXLAN 1,而VM 112屬于VXLAN 2。虛擬化軟件104(諸如管理程序)管理主機(jī)102中的VM,并且包括VXLAN模塊106。VXLAN模塊106負(fù)責(zé)對(duì)由VM 108、110和112生成的以太網(wǎng)包進(jìn)行封裝和解封裝。

類似地,主機(jī)103耦合到IP路由器132。主機(jī)103托管多個(gè)VM:118、120和122。VM 118屬于VXLAN 1,而VM 120和122屬于VXLAN 2。虛擬化軟件114管理VM 118、120和122,并且包括VXLAN模塊116。當(dāng)相同VXLAN中的VM彼此通信時(shí),由VM生成的以太網(wǎng)包用IP頭封裝,然后被遞送到(擁有目的地IP地址的)目的地物理主機(jī)中的VXLAN模塊。

例如,當(dāng)VM 108與VM 118通信時(shí),VM 108用VM 118的MAC地址作為其MAC目的地地址(DA)來(lái)生成以太網(wǎng)包。(注意,相同VXLAN中的VM在相同的邏輯層-2廣播域中,因此被假設(shè)為知道彼此的MAC地址。)當(dāng)該以太網(wǎng)包到達(dá)VXLAN模塊106時(shí),VXLAN模塊106檢查包的MAC源地址(SA)、MAC DA以及可選地檢查VLAN標(biāo)簽,并確定源(VM 108)和目的地(VM 118)都屬于VXLAN 1。此外,基于包的MAC DA,VXLAN模塊106確定目的地物理主機(jī)103的IP地址。VXLAN模塊106又用合適的VXLAN頭和IP頭封裝該以太網(wǎng)包(這將結(jié)合圖2更具體地描述),并將該封裝的包發(fā)送到IP路由器130。由于封裝的包具有與主機(jī)103關(guān)聯(lián)的IP目的地地址,因此IP路由器130(以及IP網(wǎng)絡(luò)100中的其它IP路由器)然后可以作出合適的轉(zhuǎn)發(fā)決定并向主機(jī)103轉(zhuǎn)發(fā)封裝的包。

當(dāng)主機(jī)103接收封裝的包時(shí),VXLAN模塊116首先移除IP頭以暴露內(nèi)部以太網(wǎng)包。隨后,基于VNI和內(nèi)部以太網(wǎng)頭的MAC DA這兩者,虛擬化軟件114將內(nèi)部以太網(wǎng)包轉(zhuǎn)發(fā)到VM 118。注意,當(dāng)VXLAN 116接收以太網(wǎng)包時(shí),它可以創(chuàng)建內(nèi)部以太網(wǎng)包的MAC SA(這是VM 108的MAC地址)與IP源地址(這是主機(jī)102的IP地址)的映射關(guān)系。由此,當(dāng)將來(lái)VM 118向VM 108發(fā)送以太網(wǎng)包時(shí),VXLAN模塊116可以用主機(jī)102的IP地址作為IP目的地地址來(lái)執(zhí)行VXLAN封裝。

在源VM不知道目的地VM的MAC地址(并且只知道目的地VM的IP地址)的情況下,源VM通常發(fā)布具有目的地VM的IP地址的地址解析協(xié)議(ARP)請(qǐng)求。這種ARP請(qǐng)求是廣播層-2消息,該請(qǐng)求被認(rèn)為會(huì)由層-2廣播域中的所有主機(jī)(和VM)接收。在VXLAN的情況下,例如,當(dāng)VM 108發(fā)出ARP請(qǐng)求時(shí),這個(gè)ARP請(qǐng)求首先到達(dá)VXLAN模塊106。當(dāng)VXLAN模塊106確定這是被認(rèn)為會(huì)廣播到整個(gè)VXLAN的ARP請(qǐng)求時(shí),VXLAN模塊106又用具有IP多播組地址作為其目的地IP地址的IP頭封裝該ARP請(qǐng)求。即,每個(gè)VXLAN與包括VXLAN中所有物理主機(jī)的IP多播樹(shù)關(guān)聯(lián)。以這種方式,當(dāng)存在用于整個(gè)VXLAN的廣播包時(shí),主機(jī)的管理程序中的VXLAN模塊可以用IP多播頭對(duì)包進(jìn)行封裝,并將該封裝的包多播到VXLAN中的所有主機(jī)。

由此,ARP請(qǐng)求將被多播到與相同VXLAN關(guān)聯(lián)的所有主機(jī)。每個(gè)接收主機(jī)上的VXLAN模塊將對(duì)包解封裝,并將內(nèi)部ARP請(qǐng)求本地廣播到屬于該VXLAN的所有VM。作為響應(yīng),具有與ARP請(qǐng)求中的IP地址匹配的IP地址的VM產(chǎn)生ARP響應(yīng),該響應(yīng)將由本地VXLAN模塊封裝并被單播回到發(fā)出請(qǐng)求的VM。

在圖1所示的例子中,如果物理主機(jī)(或者不具有VXLAN能力的VM)或直接地或經(jīng)由層-2交換機(jī)耦合到IP網(wǎng)絡(luò)100,那么物理主機(jī)即使不是不可能也難以與屬于VXLAN的任何VM通信,這是因?yàn)橛捎谝蕴W(wǎng)包不可能用VXLAN頭和IP頭來(lái)封裝,因此來(lái)自物理主機(jī)的以太網(wǎng)包不能被遞送到任何VM。一種解決方案是使用VXLAN網(wǎng)關(guān)124,該VXLAN網(wǎng)關(guān)可以是執(zhí)行VXLAN模塊106或108的功能的獨(dú)立設(shè)備。例如,物理主機(jī)126可以經(jīng)由層-2交換機(jī)127耦合到VXLAN網(wǎng)關(guān)124。物理主機(jī)126屬于通過(guò)VXLAN網(wǎng)關(guān)124映射到VXLAN 1的VLAN 1。物理主機(jī)128可以托管未啟用VXLAN的多個(gè)VM 138、140和142。VM 138屬于映射到VXLAN 1的VLAN 1。VM 140和142屬于映射到VXLAN 2的VLAN 2。主機(jī)128還耦合到VXLAN網(wǎng)關(guān)124。

當(dāng)物理主機(jī)126要與VM 108通信時(shí),物理主機(jī)126可以發(fā)出以太網(wǎng)包,其中VM 108的MAC地址作為MAC DA、物理主機(jī)126自己的MAC地址作為MAC SA并且VLAN標(biāo)簽與VLAN 1對(duì)應(yīng)。當(dāng)該以太網(wǎng)包到達(dá)VXLAN網(wǎng)關(guān)124時(shí),VXLAN網(wǎng)關(guān)124檢查包的MAC SA和MAC DA及其VLAN標(biāo)簽。注意,VXLAN網(wǎng)關(guān)維護(hù)將MAC地址以及可選地將VLAN標(biāo)簽映射到VXLAN的一組映射信息。注意,維護(hù)映射信息的數(shù)據(jù)結(jié)構(gòu)還可以包含涵蓋特定VLAN上所有物理主機(jī)的條目。這被指示為在沒(méi)有任何特定于主機(jī)的信息的情況下VNI與VLAN標(biāo)簽之間的映射。如果物理主機(jī)126被適當(dāng)?shù)嘏渲?,則VXLAN網(wǎng)關(guān)124將把以太網(wǎng)包的MAC SA和MAC DA(以及可選地把VLAN標(biāo)簽)標(biāo)識(shí)為與VXLAN 1關(guān)聯(lián)。(注意,如果存在VLAN標(biāo)簽,則VXLAN網(wǎng)關(guān)124可以直接將VLAN映射到VXLAN,而無(wú)需使用MAC地址。但是,如果沒(méi)有配置VLAN,則VXLAN網(wǎng)關(guān)124可以將MAC SA、MAC DA或者這兩者映射到VXLAN。)此外,VXLAN網(wǎng)關(guān)124還維護(hù)VM的MAC地址和該VM的物理主機(jī)的IP地址之間的一組映射信息。由此,基于由物理主機(jī)126生成的以太網(wǎng)包的MAC DA(該MAC DA是VM 108的MAC地址),VXLAN網(wǎng)關(guān)124確定主機(jī)102的IP地址應(yīng)當(dāng)被用作用于VXLAN封裝的目的地IP地址。此外,VXLAN網(wǎng)關(guān)124使用其自己的IP地址作為用于封裝的源IP地址。隨后,VXLAN用合適的VXLAN頭和IP頭對(duì)來(lái)自主機(jī)126的以太網(wǎng)包進(jìn)行封裝,并將封裝的包發(fā)送到IP網(wǎng)絡(luò)100。

當(dāng)封裝的包到達(dá)主機(jī)102時(shí),該封裝的包被轉(zhuǎn)發(fā)到VXLAN模塊106。VXLAN模塊106又移除IP頭,以獲得內(nèi)部以太網(wǎng)包。注意,VXLAN模塊106可以獲知IP頭的源IP地址(這是VXLAN網(wǎng)關(guān)124的IP地址)與內(nèi)部以太網(wǎng)包的MAC SA(這是主機(jī)126的MAC地址)之間的映射。這種映射信息被用來(lái)對(duì)到主機(jī)126的出站流量(outbound traffic)進(jìn)行封裝。隨后,VXLAN模塊106基于MAC DA將內(nèi)部以太網(wǎng)包轉(zhuǎn)發(fā)到VM 108。

當(dāng)VM 108將以太網(wǎng)包發(fā)送回主機(jī)126時(shí),發(fā)生類似的VXLAN封裝/解封裝處理。具體而言,VXLAN模塊106標(biāo)識(shí)從VM 108到主機(jī)126的以太網(wǎng)包屬于VXLAN 1。此外,基于以太網(wǎng)包的MAC DA(這是主機(jī)126的MAC地址),VXLAN模塊106將主機(jī)126的IP地址標(biāo)識(shí)為VXLAN封裝的目的地IP地址,并使用主機(jī)102的IP地址作為源IP地址。然后,主機(jī)102將封裝的以太網(wǎng)包發(fā)送到IP網(wǎng)絡(luò)100,IP網(wǎng)絡(luò)100將包遞送到VXLAN網(wǎng)關(guān)124。然后,VXLAN網(wǎng)關(guān)124通過(guò)移除包的IP頭對(duì)包解封裝,并將內(nèi)部以太網(wǎng)包轉(zhuǎn)發(fā)到主機(jī)126。

圖2示出了常規(guī)以太網(wǎng)包的頭格式及其VXLAN封裝。在這個(gè)例子中,常規(guī)的以太網(wǎng)包200通常包括有效負(fù)荷203和以太網(wǎng)頭208。通常,有效負(fù)荷203可以包括包含IP頭206的IP包。以太網(wǎng)頭208包括MAC DA 204、MAC SA 202以及可選地包括VLAN標(biāo)簽205。

在一種實(shí)施例中,VXLAN網(wǎng)關(guān)124可以將常規(guī)的以太網(wǎng)包200封裝成封裝的包220。封裝的包220通常包括:包含VNI以指示內(nèi)部以太網(wǎng)包200所屬的VXLAN的VXLAN頭222、指示傳輸層協(xié)議和為VXLAN保留的端口號(hào)的UDP頭218、以及外部IP頭210。此外,封裝的包220包括外部以太網(wǎng)頭212。

例如,將以太網(wǎng)包200作為由主機(jī)126生成的并且以VM 108為目的地的以太網(wǎng)包。通常,主機(jī)126中的上層應(yīng)用將利用VM 108的IP地址生成以VM 108為目的地的IP包。這種IP包變成有效負(fù)荷203,而VM 108的IP地址將是IP頭206中的目的地IP地址。此外,主機(jī)126的IP地址將是IP頭206中的源IP地址。然后,主機(jī)126中的數(shù)據(jù)鏈路層生成以太網(wǎng)頭208,以封裝有效負(fù)荷203。以太網(wǎng)頭208的MAC DA 204將是VM 108的MAC地址,而以太網(wǎng)頭208的MAC SA 202將是主機(jī)126的MAC地址。這基于主機(jī)126已經(jīng)知道VM 108的MAC地址的假設(shè)。在主機(jī)126不知道VM 108的MAC地址的情況下,主機(jī)126可以使用ARP來(lái)找出VM 108的MAC地址。結(jié)合圖3來(lái)描述這種ARP處理。然后,主機(jī)126將以太網(wǎng)包200發(fā)送到VXLAN網(wǎng)關(guān)124。

當(dāng)VXLAN網(wǎng)關(guān)124接收來(lái)自主機(jī)126的以太網(wǎng)包200時(shí),VXLAN網(wǎng)關(guān)124檢查以太網(wǎng)MAC DA 204、MAC SA 202以及可選地檢查VLAN標(biāo)簽205?;谠撔畔?,VXLAN網(wǎng)關(guān)124確定以太網(wǎng)包200與VXLAN 1關(guān)聯(lián)。此外,基于MAC DA 204,VXLAN網(wǎng)關(guān)124確定VXLAN封裝的目的地IP地址是主機(jī)102的IP地址。隨后,VXLAN網(wǎng)關(guān)124組裝包括VXLAN頭222(對(duì)應(yīng)于VXLAN 1)的VXLAN頭,并附連包括適當(dāng)UDP端口號(hào)的UDP頭218。此外,VXLAN網(wǎng)關(guān)124組裝使用主機(jī)102的IP地址作為目的地地址以及使用VXLAN網(wǎng)關(guān)124自己的IP地址作為源地址的外部IP頭210。然后,VXLAN網(wǎng)關(guān)124組裝外部以太網(wǎng)頭212。外部以太網(wǎng)頭212用來(lái)將包220從VXLAN網(wǎng)關(guān)124傳輸?shù)较乱惶腎P路由器134。外部以太網(wǎng)頭212具有作為IP路由器134的MAC地址的MAC DA214、作為VXLAN網(wǎng)關(guān)124的MAC地址的MAC SA以及可選地具有外部VLAN標(biāo)簽217。

一旦包220到達(dá)IP路由器134,則IP路由器134可以移除外部以太網(wǎng)頭212并基于外部IP頭210來(lái)轉(zhuǎn)發(fā)包。這個(gè)處理遍及IP網(wǎng)絡(luò)100地持續(xù),直到包到達(dá)主機(jī)102為止。

如以上提到的,當(dāng)主機(jī)126首次嘗試與VM 108通信時(shí),主機(jī)126可能只具有VM 108的IP地址而不具有VM 108的MAC地址。為了找出VM 108的MAC地址,主機(jī)126可以執(zhí)行ARP查詢操作。圖3展示了示出這個(gè)處理的時(shí)間-空間圖。首先,主機(jī)126生成在以太網(wǎng)廣播包302中運(yùn)送的ARP請(qǐng)求消息。然后,主機(jī)126將廣播包302發(fā)送到VXLAN網(wǎng)關(guān)124。VXLAN網(wǎng)關(guān)124又基于包302的MAC SA來(lái)標(biāo)識(shí)主機(jī)126屬于VXLAN 1。此外,由于包302是以太網(wǎng)廣播包,因此VXLAN網(wǎng)關(guān)124將包302映射到與VXLAN 1對(duì)應(yīng)的IP多播組,并生成IP多播頭303以對(duì)包302進(jìn)行封裝。注意,IP多播組包括主機(jī)102和主機(jī)103這兩者,因?yàn)檫@兩個(gè)主機(jī)都托管屬于VXLAN 1的VM(主機(jī)102上的VM 108和110,以及主機(jī)103上的VM 118)。然后,該IP多播包被IP網(wǎng)絡(luò)100遞送到主機(jī)102和103這兩者。主機(jī)102上的VXLAN模塊106然后從包302移除IP頭303,并向?qū)儆赩XLAN 1的所有VM(即,VM 108和110)本地廣播包302。此外,VXLAN模塊106獲知主機(jī)126的MAC地址和對(duì)應(yīng)的IP地址之間的映射,其中主機(jī)126的MAC地址是包302中MAC SA,對(duì)應(yīng)的IP地址是IP多播包中的源IP地址和VXLAN網(wǎng)關(guān)124的IP地址。

類似地,主機(jī)103上的VXLAN模塊116接收相同的IP多播包,并將內(nèi)部以太網(wǎng)廣播包302轉(zhuǎn)發(fā)到VM 118(圖3中未示出)。

隨后,VM 108確定其IP地址與包302中ARP請(qǐng)求中的IP地址匹配。作為響應(yīng),VM 108生成ARP響應(yīng)消息并把它封裝在以太網(wǎng)單播包304中,其中以太網(wǎng)單播包304將主機(jī)126的MAC地址作為MAC DA并將VM 108自己的MAC地址作為MAC SA。然后,主機(jī)102上的VXLAN模塊106用單播IP頭305對(duì)包304進(jìn)行封裝。IP頭305的源IP地址是主機(jī)102的IP地址,而目的地IP地址是VXLAN網(wǎng)關(guān)124的IP地址。當(dāng)該單播IP包到達(dá)VXLAN網(wǎng)關(guān)124時(shí),VXLAN網(wǎng)關(guān)124移除IP頭305,并將內(nèi)部以太網(wǎng)包304轉(zhuǎn)發(fā)到主機(jī)126。主機(jī)126又取出在包304中運(yùn)送的ARP響應(yīng),并獲知VM 108的MAC地址。

接下來(lái),主機(jī)126生成將有效負(fù)荷運(yùn)送到VM 108的普通單播以太網(wǎng)包306。包306的MAC DA是由主機(jī)126基于包304(ARP響應(yīng))獲知的VM 108的MAC地址。包306的MAC SA是主機(jī)126的MAC地址。然后,VXLAN網(wǎng)關(guān)124用VXLAN頭和在其后的單播IP頭307對(duì)包306進(jìn)行封裝。IP頭307將主機(jī)102的IP地址作為其目的地IP地址,并將VXLAN網(wǎng)關(guān)124的IP地址作為其源IP地址。隨后,主機(jī)102上的VXLAN模塊106移除IP頭307,并將內(nèi)部以太網(wǎng)包306轉(zhuǎn)發(fā)到VM 108。

當(dāng)VM 108發(fā)送以太網(wǎng)包308作為應(yīng)答時(shí),VXLAN模塊106用單播IP頭309封裝包308。單播IP頭309將VXLAN網(wǎng)關(guān)124的IP地址作為其目的地IP地址,并將主機(jī)102的IP地址作為其源IP地址。然后,VXLAN網(wǎng)關(guān)124接收封裝的包,移除IP頭309,并將內(nèi)部以太網(wǎng)包308轉(zhuǎn)發(fā)到主機(jī)126。

圖4展示了示出物理主機(jī)經(jīng)由VXLAN網(wǎng)關(guān)與VM通信的一般處理的流程圖。在操作期間,為了啟動(dòng)與VXLAN中的VM的通信,物理主機(jī)首先廣播ARP請(qǐng)求,該ARP請(qǐng)求到達(dá)VXLAN網(wǎng)關(guān)(操作402)。作為響應(yīng),VXLAN網(wǎng)關(guān)基于物理主機(jī)的MAC地址以及可選地基于其VLAN標(biāo)簽將ARP請(qǐng)求映射到特定的VXLAN和對(duì)應(yīng)的IP多播組(操作404)。VXLAN網(wǎng)關(guān)用VXLAN頭、UDP頭和外部IP頭(其包括IP多播組地址作為目的地IP地址)以及外部以太網(wǎng)頭來(lái)封裝ARP請(qǐng)求(操作406)。然后,VXLAN網(wǎng)關(guān)將封裝的包發(fā)送到IP網(wǎng)絡(luò)(操作408)。

封裝的包被IP網(wǎng)絡(luò)遞送到對(duì)屬于相同的VXLAN的VM進(jìn)行托管的所有主機(jī)。結(jié)果,對(duì)與ARP請(qǐng)求對(duì)應(yīng)的VM進(jìn)行托管的主機(jī)上的啟用了VXLAN的管理程序接收封裝的包,對(duì)包解封裝,并將內(nèi)部ARP請(qǐng)求轉(zhuǎn)發(fā)到屬于相同VXLAN并且在主機(jī)上運(yùn)行的VM(操作410)。隨后,具有與ARP請(qǐng)求匹配的IP地址的VM對(duì)ARP請(qǐng)求作出響應(yīng)(操作412)。作為響應(yīng),用于VM的管理程序用VXLAN網(wǎng)關(guān)的IP地址作為目的地IP地址來(lái)封裝ARP響應(yīng),并將封裝的包發(fā)送到IP網(wǎng)絡(luò)(操作414)。

接下來(lái),VXLAN網(wǎng)關(guān)接收封裝的ARP響應(yīng)包并對(duì)其解封裝(操作416)。然后,VXLAN網(wǎng)關(guān)將解封裝的ARP響應(yīng)包轉(zhuǎn)發(fā)到物理主機(jī)(操作418)。物理主機(jī)又獲知目的地VM的MAC地址(操作420)。隨后,物理主機(jī)可以繼續(xù)利用VM的MAC地址來(lái)與VM通信,就好像VM駐留在相同的層-2廣播域中一樣(操作422)。

在一些實(shí)施例中,除了向未啟用VXLAN的物理主機(jī)提供VXLAN功能,VXLAN網(wǎng)關(guān)還可以將不具有VXLAN能力的兩個(gè)數(shù)據(jù)中心“縫合”成具有公共VXLAN ID的一個(gè)VXLAN域。為了促進(jìn)這種“縫合”,分別駐留在兩個(gè)數(shù)據(jù)中心中的兩個(gè)VXLAN網(wǎng)關(guān)在這兩個(gè)VXLAN網(wǎng)關(guān)之間創(chuàng)建隧道(在一個(gè)實(shí)施例中,該隧道可以是例如基于IP的(諸如基于IPSEC的)隧道)。在一個(gè)實(shí)施例中,這種隧道是IPsec隧道。兩個(gè)VXLAN網(wǎng)關(guān)可以透明地將包從一個(gè)數(shù)據(jù)中心傳到另一個(gè),由此將兩個(gè)數(shù)據(jù)中心接合成單個(gè)廣播域。注意,使用IPsec隧道作為例子,并且這兩個(gè)VXLAN網(wǎng)關(guān)可以使用任何隧道化協(xié)議。

圖5示出了兩個(gè)遠(yuǎn)程定位的數(shù)據(jù)中心通過(guò)VXLAN網(wǎng)關(guān)接合以形成單個(gè)層-2廣播域的示例性網(wǎng)絡(luò)架構(gòu)。在這個(gè)例子中,主機(jī)504托管VM 518、520和522。主機(jī)506托管VM 508、510和512。主機(jī)504耦合到VXLAN網(wǎng)關(guān)516,而主機(jī)506耦合到VXLAN網(wǎng)關(guān)516。VXLAN網(wǎng)關(guān)516和506都耦合到IP網(wǎng)絡(luò)500,并且在它們之間已創(chuàng)建了隧道515。

在操作期間,每個(gè)VXLAN網(wǎng)關(guān)都維護(hù)一組映射信息,這組映射信息不僅將本地MAC地址映射到VXLAN,而且將遠(yuǎn)程數(shù)據(jù)中心中的MAC地址映射到VXLAN。例如,當(dāng)VM 508發(fā)出以VM 518為目的地的以太網(wǎng)包時(shí),VXLAN網(wǎng)關(guān)514將用VXLAN頭和IP頭封裝該以太網(wǎng)包,并將該封裝的包經(jīng)由隧道515發(fā)送到VXLAN網(wǎng)關(guān)516。VXLAN網(wǎng)關(guān)516又將對(duì)包解封裝,并將內(nèi)部以太網(wǎng)包發(fā)送到主機(jī)504,主機(jī)504可以將內(nèi)部以太網(wǎng)包轉(zhuǎn)發(fā)到VM 518。實(shí)質(zhì)上,VXLAN網(wǎng)關(guān)516和506提供啟用了VXLAN的管理程序中的VXLAN模塊的功能性。

如以上提到的,VXLAN網(wǎng)關(guān)通常維護(hù)將MAC地址和(可選的)VLAN標(biāo)簽映射到VXLAN ID的一組映射信息。此外,VXLAN封裝需要將MAC DA映射到目的地IP地址(取決于內(nèi)部以太網(wǎng),或單播或多播)。在一個(gè)實(shí)施例中,如圖6中所示,OpenFlow控制器可以促進(jìn)網(wǎng)絡(luò)中每個(gè)VXLAN網(wǎng)關(guān)的這種配置。在這個(gè)例子中,(以流定義的形式存儲(chǔ)的)所有映射信息經(jīng)由安全(例如,SSL)隧道604從OpenFlow控制器602傳送到VXLAN網(wǎng)關(guān)124。由OpenFlow控制器602提供的配置信息可以被VXLAN網(wǎng)關(guān)124用來(lái)建立包含用于具體流的條目的轉(zhuǎn)發(fā)表。每個(gè)流利用12元組值{MAC DA,MAC SA,以太網(wǎng)類型,源IP,目的地IP,等…}來(lái)定義,具有在任何字段中使用通配符的可能性。關(guān)于OpenFlow的更多細(xì)節(jié)可以在

https://www.opennetworking.org/images/stories/downloads/specificati on/openflow-spec-v1.2.pdf中找到,該內(nèi)容通過(guò)引用被并入本文。

應(yīng)當(dāng)注意,本文所描述的VXLAN網(wǎng)關(guān)可以實(shí)現(xiàn)為獨(dú)立的裝置、實(shí)現(xiàn)為交換機(jī)或路由器的一部分或者實(shí)現(xiàn)為主機(jī)的一部分。此外,VXLAN網(wǎng)關(guān)可以以硬件或軟件或者這兩者的組合實(shí)現(xiàn)。圖7示出了促進(jìn)VXLAN網(wǎng)關(guān)的示例性計(jì)算機(jī)系統(tǒng)。在這個(gè)例子中,計(jì)算機(jī)系統(tǒng)702包括處理器704、存儲(chǔ)器706以及存儲(chǔ)設(shè)備708。計(jì)算機(jī)系統(tǒng)702還耦合到顯示器710、鍵盤712以及指點(diǎn)設(shè)備708。存儲(chǔ)設(shè)備708存儲(chǔ)數(shù)據(jù)730和指令,當(dāng)該指令被加載到存儲(chǔ)器706中并由處理器704執(zhí)行時(shí)實(shí)現(xiàn)操作系統(tǒng)716和VXLAN網(wǎng)關(guān)系統(tǒng)718。網(wǎng)關(guān)系統(tǒng)718包括通信模塊720、VXLAN映射模塊722、包封裝模塊724、IP隧道模塊726以及OpenFlow模塊728。當(dāng)由處理器執(zhí)行這些模塊時(shí),這些模塊聯(lián)合地或者單獨(dú)地執(zhí)行上述功能。

本具體實(shí)施方式中所描述的數(shù)據(jù)結(jié)構(gòu)和代碼通常存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上,其中計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是能夠存儲(chǔ)由計(jì)算機(jī)系統(tǒng)使用的代碼和/或數(shù)據(jù)的任何設(shè)備或介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)包括但不限于易失性存儲(chǔ)器、非易失性存儲(chǔ)器、磁性和光學(xué)存儲(chǔ)設(shè)備(諸如盤驅(qū)動(dòng)器、磁帶、CD(緊湊盤)、DVD(數(shù)字多樣化盤或數(shù)字視頻盤))或者現(xiàn)在已知的或以后開(kāi)發(fā)的能夠存儲(chǔ)計(jì)算機(jī)可讀介質(zhì)的其它介質(zhì)。

具體實(shí)施方式部分中所描述的方法和處理可以實(shí)施為代碼和/或數(shù)據(jù),這些代碼和/或數(shù)據(jù)可以存儲(chǔ)在如上所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中。當(dāng)計(jì)算機(jī)系統(tǒng)讀取并執(zhí)行存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上的代碼和/或數(shù)據(jù)時(shí),計(jì)算機(jī)系統(tǒng)執(zhí)行被實(shí)施為數(shù)據(jù)結(jié)構(gòu)和代碼并且存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中的方法和處理。

此外,以上所述的方法和處理可以包括在硬件模塊中。例如,硬件模塊可以包括但不限于專用集成電路(ASIC)芯片、現(xiàn)場(chǎng)可編程門陣列(FPGA)以及現(xiàn)在已知的或以后開(kāi)發(fā)的其它可編程邏輯設(shè)備。當(dāng)硬件模塊被激活時(shí),硬件模塊執(zhí)行包括在硬件模塊中的方法和處理。

本發(fā)明實(shí)施例的以上描述的給出僅僅是為了例示和描述的目的。它們不是意圖為窮舉的或者要將本發(fā)明限定到所公開(kāi)的形式。因而,許多修改和變化將對(duì)本領(lǐng)域技術(shù)人員是清楚的。此外,以上公開(kāi)內(nèi)容不意圖限制本發(fā)明。本發(fā)明的范圍由所附權(quán)利要求書(shū)限定。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
新乐市| 泗水县| 鸡东县| 尚义县| 阳新县| 阿克苏市| 会东县| 肥城市| 镇巴县| 兴隆县| 高淳县| 怀化市| 隆德县| 乐山市| 山阴县| 顺平县| 凭祥市| 定襄县| 蓬安县| 廉江市| 南漳县| 交口县| 离岛区| 双城市| 天门市| 隆化县| 温州市| 名山县| 芦山县| 城口县| 怀集县| 滦南县| 永新县| 理塘县| 新源县| 罗定市| 博湖县| 墨竹工卡县| 墨脱县| 筠连县| 梁平县|