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

報文轉(zhuǎn)發(fā)方法和裝置與流程

文檔序號:11657307閱讀:297來源:國知局
報文轉(zhuǎn)發(fā)方法和裝置與流程

本申請涉及通信技術(shù)領(lǐng)域,尤其涉及一種報文轉(zhuǎn)發(fā)方法和裝置。



背景技術(shù):

在vxlan(virtualextensiblelocalareanetwork,虛擬擴展局域網(wǎng))系統(tǒng)中,vm(virtualmachine,虛擬機)可以通過vtep(vxlantunnelingendpoint,vxlan隧道終端)接入vxlan。具體地,vtep在接收到來自vm的原始報文后,可以為所述原始報文封裝vxlan報文頭以構(gòu)造vxlan報文,并通過對應(yīng)的vxlan隧道將所述vxlan報文發(fā)送給對端vtep,對端vtep可以解封裝所述vxlan報文以獲取所述原始報文,并將所述原始報文發(fā)送給對應(yīng)vm。

相關(guān)技術(shù)中,在實現(xiàn)同一vxlan中多個vm之間的互相通信時,通常需要在vtep之間兩兩建立vxlan隧道,后續(xù)vtep與其他vtep之間可以通過建立的vxlan隧道進行vxlan報文傳輸。然而,采用這種方式,任意兩個vtep之間均需要建立vxlan隧道,配置較為繁瑣。此外,當(dāng)vxlan系統(tǒng)中新增一個vm時,也需要該vm所連接的vtep與其他vtep之間建立vxlan隧道,不便于vxlan系統(tǒng)的擴展。



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

有鑒于此,本申請?zhí)峁┮环N報文轉(zhuǎn)發(fā)方法和裝置,以解決相關(guān)技術(shù)中vxlan的配置繁瑣且不便于擴展的問題。

具體地,本申請是通過如下技術(shù)方案實現(xiàn)的:

第一方面,本申請?zhí)峁┮环N報文轉(zhuǎn)發(fā)方法,應(yīng)用于vxlan系統(tǒng),所述vxlan系統(tǒng)中包括一個或多個匯集vxlan隧道終端vtep和多個非匯集vtep,所述非匯集vtep與至少一個匯集vtep之間建立vxlan隧道,所述方法應(yīng)用于所述vxlan系統(tǒng)中的vtep,包括:

在接收到來自虛擬機vm的原始廣播報文時,為所述原始廣播報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā);

通過vxlan隧道,在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文;

在接收到vxlan廣播報文時,判斷所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā);

當(dāng)所述轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā)時,將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā)后,在所述vxlan廣播報文所屬vxlan中,通過除接收隧道外的其他vxlan隧道廣播修改后的vxlan廣播報文,并對所述vxlan廣播報文進行解封裝得到原始廣播報文,以在本地vxlan中廣播所述原始廣播報文。

第二方面,本申請?zhí)峁┮环N報文轉(zhuǎn)發(fā)裝置,應(yīng)用于vxlan系統(tǒng),所述vxlan系統(tǒng)中包括一個或多個匯集vxlan隧道終端vtep和多個非匯集vtep,所述非匯集vtep與至少一個匯集vtep之間建立vxlan隧道,所述裝置應(yīng)用于所述vxlan系統(tǒng)中的vtep,包括:

構(gòu)造單元,用于在接收到來自虛擬機vm的原始廣播報文時,為所述原始廣播報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā);

第一廣播單元,用于通過vxlan隧道,在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文;

標(biāo)識判斷單元,用于在接收到vxlan廣播報文時,判斷所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā);

第二廣播單元,用于當(dāng)所述轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā)時,將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā)后,在所述vxlan廣播報文所屬vxlan中,通過除接收隧道外的其他vxlan隧道廣播修改后的vxlan廣播報文,并對所述vxlan廣播報文進行解封裝得到原始廣播報文,以在本地vxlan中廣播所述原始廣播報文。

分析上述技術(shù)方案可知,在實現(xiàn)同一vxlan中多個vm之間的互相通信時,僅需匯集vtpe與非匯集vtep之間建立vxlan隧道,而任意兩個非匯集vtep之間均無需建立vxlan隧道,從而有效減少了建立的vxlan隧道的數(shù)量,簡化了vxlan系統(tǒng)的配置。此外,當(dāng)vxlan系統(tǒng)中新增一個vm時,也僅需該vm所連接的vtep與匯集vtep之間建立vxlan隧道,有利于vxlan系統(tǒng)的擴展。

附圖說明

圖1是相關(guān)技術(shù)中的vxlan系統(tǒng)架構(gòu)圖;

圖2是本申請一示例性實施例示出的一種vxlan系統(tǒng)架構(gòu)圖;

圖3是本申請一示例性實施例示出的一種報文轉(zhuǎn)發(fā)方法的流程圖;

圖4是本申請一示例性實施例示出的另一種vxlan系統(tǒng)架構(gòu)圖;

圖5是本申請一示例性實施例示出的一種報文轉(zhuǎn)發(fā)裝置所在設(shè)備的硬件結(jié)構(gòu)圖;

圖6是本申請一示例性實施例示出的一種報文轉(zhuǎn)發(fā)裝置的框圖。

具體實施方式

這里將詳細(xì)地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本申請相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請的一些方面相一致的裝置和方法的例子。

在本申請使用的術(shù)語是僅僅出于描述特定實施例的目的,而非旨在限制本申請。在本申請和所附權(quán)利要求書中所使用的單數(shù)形式的“一種”、“所述”和“該”也旨在包括多數(shù)形式,除非上下文清楚地表示其他含義。還應(yīng)當(dāng)理解,本文中使用的術(shù)語“和/或”是指并包含一個或多個相關(guān)聯(lián)的列出項目的任何或所有可能組合。

應(yīng)當(dāng)理解,盡管在本申請可能采用術(shù)語第一、第二、第三等來描述各種信息,但這些信息不應(yīng)限于這些術(shù)語。這些術(shù)語僅用來將同一類型的信息彼此區(qū)分開。例如,在不脫離本申請范圍的情況下,第一信息也可以被稱為第二信息,類似地,第二信息也可以被稱為第一信息。取決于語境,如在此所使用的詞語“如果”可以被解釋成為“在……時”或“當(dāng)……時”或“響應(yīng)于確定”。

請參考圖1,為相關(guān)技術(shù)中的vxlan系統(tǒng)架構(gòu)圖。如圖1所示,vm1至vm5均屬于同一個vxlan,vm1至vm5分別通過vtep1至vtep5接入所述vxlan。在該vxlan系統(tǒng)中,任意兩個vtep之間均建立有vxlan隧道,各vtep均可以通過vxlan隧道向?qū)Χ藇tep發(fā)送vxlan報文。

請繼續(xù)參考圖1,假設(shè)vm1發(fā)送arp請求報文,以請求vm3的mac地址,所述arp請求報文的源mac地址為vm1的mac地址,目的mac地址為廣播mac地址。

vtep1在接收到來自vm1的所述arp請求報文時,可以根據(jù)所述arp請求報文的源mac地址,以及所述arp請求報文的入接口和vm1所屬vxlan的vni(vxlannetworkidentifier,vxlan網(wǎng)絡(luò)標(biāo)識符),進行轉(zhuǎn)發(fā)表項的學(xué)習(xí)。假設(shè)vm1的mac地址為mac1,所述入接口為接口1,所述vni為vni1000,則vtep1可以學(xué)習(xí)vni1000、mac1、接口1三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。

此外,vtep1還可以為所述arp請求報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并根據(jù)所述vxlan廣播報文的vni在所述vxlan廣播報文所屬vxlan(即vm1所屬vxlan)中廣播所述vxlan廣播報文,即vtep1可以通過vxlan隧道12、13、14和15分別向vtep2至vtep5發(fā)送所述vxlan廣播報文。

vtep2至vtep5在接收到所述vxlan廣播報文時,均可以解封裝所述vxlan廣播報文以獲取vm1發(fā)送的arp請求報文,從而可以根據(jù)所述vxlan廣播報文攜帶的vni、所述arp請求報文的源mac地址,以及所述vxlan廣播報文的接收隧道接口,進行轉(zhuǎn)發(fā)表項的學(xué)習(xí)。此外,vtep2至vtep5還可以在本地vxlan中廣播所述arp請求報文。

以vtep3為例,vtep3在通過vxlan隧道13接收到所述vxlan廣播報文時,可以對所述vxlan廣播報文進行解封裝,得到vm1發(fā)送的arp請求報文,從而可以學(xué)習(xí)vni1000、mac1、vxlan隧道13接口三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。此外,vtep3還可以根據(jù)本地預(yù)先配置的vxlan,向包括vm3在內(nèi)的本地vxlan中的vm(圖中未全部示出)發(fā)送所述arp請求報文。

vm3在接收到vtep3發(fā)送的所述arp請求報文時,可以針對所述arp請求報文進行響應(yīng),即構(gòu)造源mac地址為本機mac地址(假設(shè)為mac3),目的mac地址為mac1的arp響應(yīng)報文,并向vtep3發(fā)送所述arp響應(yīng)報文。

另一方面,vm2、vm4和vm5在分別接收到vtep2、vtep4和vtep5發(fā)送的所述arp請求報文時,由于所述arp請求報文的目的ip地址為vm3的ip地址,而不為本機ip地址,因此vm2、vm4和vm5不會針對所述arp請求報文進行響應(yīng),而可以將所述arp請求報文丟棄。

vtep3在接收到來自vm3的所述arp響應(yīng)報文時,可以根據(jù)所述arp響應(yīng)報文的源mac地址,以及所述arp響應(yīng)報文的入接口和vm3所屬vxlan的vni,進行轉(zhuǎn)發(fā)表項的學(xué)習(xí)。假設(shè)所述arp響應(yīng)報文的入接口為接口2,則vtep3可以學(xué)習(xí)vni1000、mac3、接口2三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項。此外,vtep3還可以為所述arp響應(yīng)報文封裝vxlan報文頭以構(gòu)造vxlan單播報文,并根據(jù)本地保存的vni1000、mac1、vxlan隧道13接口三者之間的映射關(guān)系,通過vxlan隧道13將所述vxlan單播報文發(fā)送給vtep1。

vtep1在通過vxlan隧道13接收到所述vxlan單播報文時,可以對所述vxlan單播報文進行解封裝,得到vm3發(fā)送的arp響應(yīng)報文,還可以學(xué)習(xí)vni1000、mac3、vxlan隧道13接口三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。此外,vtep1還可以根據(jù)本地保存的vni1000、mac1、接口1三者之間的映射關(guān)系,通過接口1將所述arp響應(yīng)報文發(fā)送給vm1。

結(jié)合圖1可見,相關(guān)技術(shù)中,在實現(xiàn)同一vxlan中的vm1至vm5之間的互相通信時,vtep1至vtep5之間總共需要建立10條vxlan隧道,建立的vxlan隧道的數(shù)量較多,配置較為繁瑣。此外,假設(shè)在該vxlan系統(tǒng)中新增一個vm6,則vm6所連接的vtep6與vtep1至vetp5之間需要建立5條vxlan隧道,不便于vxlan系統(tǒng)的擴展。

請參考圖2,為本申請一示例性實施例示出的一種vxlan系統(tǒng)架構(gòu)圖。與圖1類似,vm1至vm5均屬于同一個vxlan,vm1至vm5分別通過vtep1至vtep5接入所述vxlan。

為了減少vtep之間建立的xvlan隧道的數(shù)量,可以將vxlan系統(tǒng)中的vtep分為匯集vtep和非匯集vtep。其中,非匯集vtep至少與一個匯集vetp之間建立vxlan隧道,而任意兩個非匯集vtep之間則均無需建立vxlan隧道。匯集vtep與非匯集vtep之間可以通過建立的vxlan隧道進行vxlan報文傳輸,而兩個非匯集vtep之間則可以通過匯集vtep進行vxlan報文傳輸。

如圖2所示,在該vxlan系統(tǒng)中,vtep5為匯集vtep,vtep1至4均為非匯集vtep。其中,vtep5與vtep1至vtep4之間分別建立有vxlan隧道15、25、35和45。在該vxlan系統(tǒng)中建立4條vxlan隧道,相較于圖1所示的vxlan系統(tǒng),有效減少了建立的vxlan隧道的數(shù)量,簡化了vxlan系統(tǒng)的配置。此外,假設(shè)在該vxlan系統(tǒng)中新增一個vm6,則vm6所連接的vtep6僅需與vetp5之間建立1條vxlan隧道,有利于vxlan系統(tǒng)的擴展。

基于圖2所示的vxlan系統(tǒng)架構(gòu)圖,請參考圖3,為本申請一示例性實施例示出的一種報文轉(zhuǎn)發(fā)方法的流程圖。所述報文轉(zhuǎn)發(fā)方法可以應(yīng)用于圖2所示的vtep中,包括以下步驟:

步驟301:在接收到來自vm的原始廣播報文時,為所述原始廣播報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā)。

步驟302:通過vxlan隧道,在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文。

步驟303:在接收到vxlan廣播報文時,判斷所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā)。

步驟304:當(dāng)所述轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā)時,將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā)后,在所述vxlan廣播報文所屬vxlan中,通過除接收隧道外的其他vxlan隧道廣播修改后的vxlan廣播報文,并對所述vxlan廣播報文進行解封裝得到原始廣播報文,以在本地vxlan中廣播所述原始廣播報文。

在本實施例中,vtep在接收到來自vm的原始廣播報文時,首先可以基于所述原始廣播報文確定所述vm所屬vxlan。舉例來說,假設(shè)vm1接入vlan101,則來自vm1的原始廣播報文中攜帶有vlanid,且所述vlanid為vlan101。vtep1中保存有預(yù)先配置的vlan101與vxlan1000的對應(yīng)關(guān)系,vtep1在接收到來自vm1的原始廣播報文時,可以確定所述原始廣播報文對應(yīng)的vni為vxlan1000,即vm1屬于vxlan1000。

在確定所述vm所屬vxlan后,vtep可以為所述原始廣播報文封裝vxlan報文頭,以構(gòu)造vxlan廣播報文。其中,所述vxlan報文頭中包括vni字段,用于攜帶所述vxlan報文所屬vxlan的vni。后續(xù)vtep可以通過vxlan隧道,在構(gòu)造的所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文。

需要說明的是,vtep在構(gòu)造vxlan廣播報文時,還可以將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā)。其中,所述轉(zhuǎn)發(fā)標(biāo)識可以是所述vxlan報文頭的某個預(yù)留字段。

如下表1所示,為vxlan報文頭的一種示例:

表1

在vxlan報文頭中,vni字段可以攜帶本vxlan報文所屬vxlan的vni,reserved1字段為24位的預(yù)留字段,reserved2字段為8位的預(yù)留字段。為了便于處理,可以選擇位數(shù)較少的reserved2字段作為所述轉(zhuǎn)發(fā)標(biāo)識。技術(shù)人員可以規(guī)定reserved2字段攜帶的數(shù)值0表示未轉(zhuǎn)發(fā),reserved2字段攜帶的數(shù)值1表示已轉(zhuǎn)發(fā),則vtep在檢測到vxlan報文的reserved2字段攜帶的數(shù)值為0時,確定所述vxlan報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā),在檢測到vxlan報文的reserved2字段攜帶的數(shù)值為1時,確定所述vxlan報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為已轉(zhuǎn)發(fā)。

vtep在通過vxlan隧道接收到vxlan廣播報文時,除了可以在本地vxlan中,廣播解封裝所述vxlan廣播報文得到的原始廣播報文之外,還可以根據(jù)所述vxlan廣播報文中的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā),判斷是否需要繼續(xù)在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文。

繼續(xù)以圖2所示的vxlan系統(tǒng)為例,假設(shè)vm1向vtep1發(fā)送arp請求報文(即原始廣播報文),以請求vm3的mac地址,則所述arp請求報文的源mac地址為vm1的mac地址,目的mac地址為廣播mac地址。

vtep1在接收到來自vm1的所述arp請求報文時,與相關(guān)技術(shù)類似,也可以根據(jù)所述arp請求報文的源mac地址,以及所述arp請求報文的入接口和vm1所屬vxlan的vni,進行轉(zhuǎn)發(fā)表項的學(xué)習(xí)。假設(shè)vm1的mac地址為mac1,所述入接口為接口1,所述vni為vni1000,則vtep1可以學(xué)習(xí)vni1000、mac1、接口1三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。

此外,vtep1還可以為所述arp請求報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并將所述vxlan廣播報文的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā)。后續(xù)vtep1可以根據(jù)構(gòu)造的所述vxlan廣播報文攜帶的vni,在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文。由于vtep1僅與vtep5之間建立有vxlan隧道15,因此vtep1可以通過vxlan隧道15向vtep5發(fā)送所述vxlan廣播報文。

vtep5在通過vxlan隧道15接收到所述vxlan廣播報文時,可以判斷所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā)。由于所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā),因此vtep5可以將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā),并在所述vxlan廣播報文所屬vxlan中,通過除接收隧道外的其他vxlan隧道廣播修改后的vxlan廣播報文,即通過vxlan隧道25、35和45,分別向vtep2、vtep3和vtep4發(fā)送修改后的vxlan廣播報文。

此外,vtep5還可以對所述vxlan廣播報文進行解封裝,得到vm1發(fā)送的arp請求報文,從而可以學(xué)習(xí)vni1000、mac1、vxlan隧道15接口三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。vtep5在得到所述arp請求報文后,可以根據(jù)本地預(yù)先配置的vxlan,向包括vm5在內(nèi)的本地vxlan中的vm發(fā)送所述arp請求報文。

vtep2、vtep3和vtep4在接收到所述修改后的vxlan廣播報文時,均可以根據(jù)所述修改后的vxlan廣播報文中的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā),判斷是否需要繼續(xù)在其所屬vxlan中廣播所述vxlan廣播報文。此外,vtep2、vtep3和vtep4還可以解封裝所述vxlan廣播報文以獲取vm1發(fā)送的arp請求報文,從而可以根據(jù)所述vxlan廣播報文攜帶的vni、所述arp請求報文的源mac地址,以及所述vxlan廣播報文的接收隧道接口,進行轉(zhuǎn)發(fā)表項的學(xué)習(xí),并在本地vxlan中廣播所述arp請求報文。

以vtep3為例,vtep3在通過vxlan隧道35接收到所述修改后的vxlan廣播報文時,也可以判斷所述修改后的vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā),由于所述修改后的vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為已轉(zhuǎn)發(fā),因此vtep3可以不再在其所屬vxlan中廣播所述vxlan廣播報文。

此外,vtep3還可以對所述vxlan廣播報文進行解封裝,得到vm1發(fā)送的arp請求報文,從而可以學(xué)習(xí)vni1000、mac1、vxlan隧道35接口三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。vtep3在得到vm1發(fā)送的arp請求報文后,可以根據(jù)本地預(yù)先配置的vxlan,向包括vm3在內(nèi)的本地vxlan中的vm發(fā)送所述arp請求報文。

vm3在接收到vtep3發(fā)送的所述arp請求報文時,可以針對所述arp請求報文進行響應(yīng),即構(gòu)造源mac地址為本機mac地址(假設(shè)為mac3),目的mac地址為mac1的arp響應(yīng)報文(即原始單播報文),并向vtep3發(fā)送所述arp響應(yīng)報文。

另一方面,vm2、vm4和vm5在分別接收到vtep2、vtep4和vtep5發(fā)送的所述arp請求報文時,由于所述arp請求報文的目的ip地址為vm3的ip地址,而不為本機ip地址,因此vm2、vm4和vm5不會針對所述arp請求報文進行響應(yīng),而可以將所述arp請求報文丟棄。

vtep3在接收到來自vm3的所述arp響應(yīng)報文時,與相關(guān)技術(shù)類似,也可以根據(jù)所述arp響應(yīng)報文的源mac地址,以及所述arp響應(yīng)報文的入接口和vm3所屬vxlan的vni,進行轉(zhuǎn)發(fā)表項的學(xué)習(xí)。假設(shè)所述arp響應(yīng)報文的入接口為接口2,則vtep3可以學(xué)習(xí)vni1000、mac3、接口2三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項。

此外,vtep3還可以為所述arp響應(yīng)報文封裝vxlan報文頭以構(gòu)造vxlan單播報文,并將所述vxlan廣播報文的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā)。后續(xù)vtep3可以根據(jù)本地保存的vni1000、mac1、vxlan隧道35接口三者之間的映射關(guān)系,通過vxlan隧道35將所述vxlan單播報文發(fā)送給vtep5。

vtep5在通過vxlan隧道35接收到所述vxlan單播報文時,可以對所述vxlan單播報文進行解封裝,得到vm3發(fā)送的arp響應(yīng)報文,從而可以學(xué)習(xí)vni1000、mac3、vxlan隧道35接口三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。

此外,vtep5還可以基于本地保存的轉(zhuǎn)發(fā)表項判斷所述vxlan單播報文的出接口是否為vxlan隧道接口。由于本地保存的轉(zhuǎn)發(fā)表項為vni1000、mac1、vxlan隧道15,因此所述vxlan單播報文的出接口為隧道接口,vtep5可以再判斷所述vxlan單播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā)。由于所述vxlan單播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā),因此vtep5可以將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā),并通過vxlan隧道15將修改后的vxlan單播報文發(fā)送給vtep1。

vtep1在通過vxlan隧道15接收到所述修改后的vxlan單播報文時,也可以對所述vxlan單播報文進行解封裝,得到vm3發(fā)送的arp響應(yīng)報文,從而可以學(xué)習(xí)vni1000、mac3、vxlan隧道15接口三者之間的映射關(guān)系,并將所述映射關(guān)系更新至轉(zhuǎn)發(fā)表項中。

此外,vtep1還可以基于本地保存的轉(zhuǎn)發(fā)表項判斷所述vxlan單播報文的出接口是否為vxlan隧道接口。由于本地保存的轉(zhuǎn)發(fā)表項為vni1000、mac1、接口1,因此所述vxlan單播報文的出接口不為隧道接口,vtep1可以通過接口1將所述arp響應(yīng)報文發(fā)送給vm1。

將圖2與圖1對比可見,采用本申請技術(shù)方案,在實現(xiàn)同一vxlan中的vm1至vm5這5個vm之間的互相通信時,僅需匯集vtpe與非匯集vtep之間建立vxlan隧道,而任意兩個非匯集vtep之間均無需建立vxlan隧道,即vtep1至vtep5之間總共僅需建立4條vxlan隧道,從而有效減少了建立的vxlan隧道的數(shù)量,簡化了vxlan系統(tǒng)的配置。此外,當(dāng)vxlan系統(tǒng)中新增一個vm時,也僅需該vm所連接的vtep與匯集vtep之間建立vxlan隧道,即假設(shè)在該vxlan系統(tǒng)中新增一個vm6,則vm6所連接的vtep6僅需與vetp5之間建立1條vxlan隧道,有利于vxlan系統(tǒng)的擴展。

請參考圖4,為本申請一示例性實施例示出的另一種vxlan系統(tǒng)架構(gòu)圖。與圖2類似,vm1至vm5均屬于同一個vxlan,vm1至vm5分別通過vtep1至vtep5接入所述vxlan。在該vxlan系統(tǒng)中,vtep1和vtep5均為匯集vtep,vtep2至4均為非匯集vtep。其中,vtep1與vtep2至vtep5之間分別建立有vxlan隧道12、13、14和15,vtep5和vtep1至vtep4之間分別建立有vxlan隧道15、25、35和45。

假設(shè)vtep1接收到來自vm1的原始廣播報文,則vtep1可以為所述原始廣播報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā)。由于vtep1與vtep2至vtep5之間分別建立有vxlan隧道12、13、14和15,因此后續(xù)vtep1可以通過vxlan隧道12、13、14和15分別向vtep2、vtep3、vtep4和vtep5發(fā)送構(gòu)造的所述vxlan廣播報文。

vtep2在通過vxlan隧道12接收到vtep1發(fā)送的vxlan廣播報文時,可以解析得到所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā)。由于vtep2還與vtep5之間建立有vxlan隧道25,因此vtep2可以在將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為已轉(zhuǎn)發(fā)后,通過vxlan隧道25向vtep5發(fā)送修改后的vxlan廣播報文。

vtep5在通過vxlan隧道25接收到vtep2發(fā)送的vxlan廣播報文時,可以解析得到所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識為已轉(zhuǎn)發(fā),因此vtep5可以不再通過vxlan隧道15、35和45分別向vtep1、vtep3和vtep4發(fā)送所述vxlan廣播報文。

然而,如果不存在轉(zhuǎn)發(fā)標(biāo)識,則vtep1可以通過vxlan隧道12向vtep2發(fā)送vxlan廣播報文,vtep2可以將所述vxlan廣播報文通過vxlan隧道25發(fā)送給vtep5,而vtep5又可以將所述vxlan廣播報文通過vxlan隧道15發(fā)送回vtep1,出現(xiàn)環(huán)路現(xiàn)象,造成廣播風(fēng)暴。

由此可見,在包括多個匯集vtep的vxlan系統(tǒng)中,或者在非匯集vtep之間也建立有vxlan隧道的vxlan系統(tǒng)中,極有可能出現(xiàn)環(huán)路現(xiàn)象,造成廣播風(fēng)暴。但通過在vxlan廣播報文中添加轉(zhuǎn)發(fā)標(biāo)識,使各vtep可以根據(jù)所述轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā),判斷是否需要繼續(xù)在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文,從而可以有效抑制廣播風(fēng)暴。

vtep在進行vxlan單播報文的傳輸時,可以在vxlan單播報文中添加所述轉(zhuǎn)發(fā)標(biāo)識,也可以不添加所述轉(zhuǎn)發(fā)標(biāo)識。但為了便于處理,vtep通常也會在vxlan單播報文中添加所述轉(zhuǎn)發(fā)標(biāo)識。在這種情況下,vtep在接收到vxlan單播報文時,如果基于本地保存的轉(zhuǎn)發(fā)表項確定所述vxlan單播報文的出接口為vxlan隧道接口,則所述vxlan單播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識應(yīng)當(dāng)為未轉(zhuǎn)發(fā)。如果所述轉(zhuǎn)發(fā)標(biāo)識為已轉(zhuǎn)發(fā),則說明所述轉(zhuǎn)發(fā)表項可能存在錯誤,因此vtep可以將所述vxlan單播報文丟棄,而不再基于所述轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)所述vxlan單播報文,以避免報文傳輸出錯。

與前述報文轉(zhuǎn)發(fā)方法的實施例相對應(yīng),本申請還提供了報文轉(zhuǎn)發(fā)裝置的實施例。

本申請報文轉(zhuǎn)發(fā)裝置的實施例可以應(yīng)用在vtep上。裝置實施例可以通過軟件實現(xiàn),也可以通過硬件或者軟硬件結(jié)合的方式實現(xiàn)。以軟件實現(xiàn)為例,作為一個邏輯意義上的裝置,是通過其所在vtep的處理器將非易失性存儲器中對應(yīng)的計算機程序指令讀取到內(nèi)存中運行形成的。從硬件層面而言,如圖5所示,為本申請報文轉(zhuǎn)發(fā)裝置所在vtep的一種硬件結(jié)構(gòu)圖,除了圖5所示的處理器、內(nèi)存、網(wǎng)絡(luò)接口、以及非易失性存儲器之外,實施例中裝置所在的vtep通常根據(jù)該報文轉(zhuǎn)發(fā)的實際功能,還可以包括其他硬件,對此不再贅述。

請參考圖6,為本申請一示例性實施例示出的一種報文轉(zhuǎn)發(fā)裝置的框圖。所述報文轉(zhuǎn)發(fā)裝置可以應(yīng)用于vxlan系統(tǒng),所述vxlan系統(tǒng)中包括一個或多個匯集vxlan隧道終端vtep和多個非匯集vtep,所述非匯集vtep與至少一個匯集vtep之間建立vxlan隧道,所述裝置600可以應(yīng)用于圖5所示的vtep中,包括:

構(gòu)造單元601,用于在接收到來自虛擬機vm的原始廣播報文時,為所述原始廣播報文封裝vxlan報文頭以構(gòu)造vxlan廣播報文,并將所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā);

第一廣播單元602,用于通過vxlan隧道,在所述vxlan廣播報文所屬vxlan中廣播所述vxlan廣播報文;

標(biāo)識判斷單元603,用于在接收到vxlan廣播報文時,判斷所述vxlan廣播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā);

第二廣播單元604,用于當(dāng)所述轉(zhuǎn)發(fā)標(biāo)識為未轉(zhuǎn)發(fā)時,將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā)后,在所述vxlan廣播報文所屬vxlan中,通過除接收隧道外的其他vxlan隧道廣播修改后的vxlan廣播報文,并對所述vxlan廣播報文進行解封裝得到原始廣播報文,以在本地vxlan中廣播所述原始廣播報文。

在一個可選的實施例中,所述第二廣播單元604還可以用于當(dāng)所述轉(zhuǎn)發(fā)標(biāo)識為已轉(zhuǎn)發(fā)時,對所述vxlan廣播報文進行解封裝得到原始廣播報文,以在本地vxlan中廣播所述原始廣播報文。

在另一個可選的實施例中,所述構(gòu)造單元601還可以用于在接收到來自vm的原始單播報文時,為所述原始單播報文封裝vxlan報文頭以構(gòu)造vxlan單播報文,并將所述vxlan單播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識設(shè)置為未轉(zhuǎn)發(fā);

所述裝置600還可以包括:

第一單播單元605,用于基于本地保存的轉(zhuǎn)發(fā)表項轉(zhuǎn)發(fā)所述vxlan單播報文;

接口判斷單元606,用于在接收到vxlan單播報文時,基于本地保存的轉(zhuǎn)發(fā)表項判斷所述vxlan單播報文的出接口是否為vxlan隧道接口;

第二單播單元607,用于當(dāng)所述出接口不為vxlan隧道接口時,解封裝所述vxlan單播報文以獲取原始單播報文,并轉(zhuǎn)發(fā)所述原始單播報文;

所述第二單播單元607還用于當(dāng)所述出接口為vxlan隧道接口時,判斷所述vxlan單播報文攜帶的轉(zhuǎn)發(fā)標(biāo)識是否為未轉(zhuǎn)發(fā);若為未轉(zhuǎn)發(fā),則將所述轉(zhuǎn)發(fā)標(biāo)識修改為已轉(zhuǎn)發(fā),并轉(zhuǎn)發(fā)修改后的vxlan單播報文;若為已轉(zhuǎn)發(fā),則丟棄所述vxlan單播報文。

在另一個可選的實施例中,所述裝置600還可以包括:

第一更新單元608,用于在接收到來自vm的原始廣播報文時,根據(jù)所述原始廣播報文的源mac地址,以及所述原始廣播報文的入接口和所述vm所屬vxlan的vxlan網(wǎng)絡(luò)標(biāo)識符vni,更新本地保存的轉(zhuǎn)發(fā)表項。

在另一個可選的實施例中,所述裝置600還可以包括:

第二更新單元609,用于在接收到vxlan廣播報文時,根據(jù)所述vxlan廣播報文攜帶的vni、原始廣播報文的源mac地址,以及所述vxlan廣播報文的接收隧道接口,更新本地保存的轉(zhuǎn)發(fā)表項。

上述裝置中各個單元的功能和作用的實現(xiàn)過程具體詳見上述方法中對應(yīng)步驟的實現(xiàn)過程,在此不再贅述。

對于裝置實施例而言,由于其基本對應(yīng)于方法實施例,所以相關(guān)之處參見方法實施例的部分說明即可。以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本申請方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實施。

以上所述僅為本申請的較佳實施例而已,并不用以限制本申請,凡在本申請的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本申請保護的范圍之內(nèi)。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
勐海县| 汨罗市| 沅江市| 息烽县| 盐亭县| 巴东县| 苗栗市| 陆丰市| 甘德县| 弥渡县| 怀仁县| 山东省| 敖汉旗| 龙川县| 洛阳市| 海南省| 宣武区| 新竹县| 襄汾县| 松原市| 涞源县| 威海市| 囊谦县| 永和县| 营山县| 专栏| 长葛市| 兴业县| 松潘县| 临潭县| 普兰县| 永丰县| 白银市| 南和县| 陇西县| 义乌市| 太仓市| 定兴县| 呼和浩特市| 英吉沙县| 错那县|