本發(fā)明通常涉及通信故障的檢測(cè),更具體地,涉及虛擬可擴(kuò)展局域網(wǎng)上的用于檢測(cè)網(wǎng)絡(luò)通信故障的雙向轉(zhuǎn)發(fā)檢測(cè)。
背景技術(shù):
虛擬可擴(kuò)展局域網(wǎng)(vxlan)是一種適用于改善與大型云計(jì)算部署相關(guān)聯(lián)的可擴(kuò)展性問題的網(wǎng)絡(luò)虛擬化技術(shù)。vxlan使用與由虛擬局域網(wǎng)(vlan)用于在層3分組內(nèi)封裝基于媒體訪問控制(mac)的層2以太網(wǎng)幀的封裝技術(shù)類似的封裝技術(shù)。根據(jù)vxlan隧道機(jī)制,被稱為起始虛擬隧道端點(diǎn)的第一設(shè)備根據(jù)vxlan協(xié)議封裝數(shù)據(jù)分組,并將所封裝的數(shù)據(jù)分組傳輸?shù)奖环Q為終止虛擬隧道端點(diǎn)的第二設(shè)備。終止虛擬隧道端點(diǎn)解封裝數(shù)據(jù)分組,并將所解封裝的數(shù)據(jù)分組轉(zhuǎn)發(fā)到預(yù)期的目的地設(shè)備。
網(wǎng)絡(luò)管理的越來越重要的特征是快速檢測(cè)相鄰系統(tǒng)之間的通信故障以便更快地建立替代路徑。雙向轉(zhuǎn)發(fā)檢測(cè)(bfd)是用于快速故障檢測(cè)的網(wǎng)絡(luò)設(shè)備中的常用方法。然而,目前還沒有支持bfd檢測(cè)在vxlan隧道中的端點(diǎn)之間的故障的機(jī)制。
技術(shù)實(shí)現(xiàn)要素:
在一個(gè)實(shí)施例中,用于在起始虛擬隧道端點(diǎn)(vtep)處,檢測(cè)通信狀態(tài)的系統(tǒng)和方法包括:在起始vtep處根據(jù)vxlan協(xié)議生成虛擬可擴(kuò)展局域網(wǎng)(vxlan)數(shù)據(jù)分組。雙向轉(zhuǎn)發(fā)檢測(cè)(bfd)數(shù)據(jù)分組被封裝在vxlan數(shù)據(jù)分組中以生成vxlanbfd數(shù)據(jù)分組。vxlanbfd數(shù)據(jù)分組被傳輸?shù)浇K止vtep以在vxlan隧道上建立bfd會(huì)話?;诟鶕?jù)接收時(shí)間間隔從終止vtep接收的應(yīng)答bfd數(shù)據(jù)分組,確定bfd會(huì)話的vxlan隧道的通信狀態(tài)。
在一個(gè)實(shí)施例中,vxlanbfd數(shù)據(jù)分組可被配置為提供vxlanbfd數(shù)據(jù)分組包括bfd幀的指示??梢酝ㄟ^在vxlan數(shù)據(jù)分組的外部vxlan報(bào)頭中設(shè)置路由器告警選項(xiàng)并通過將vxlanbfd數(shù)據(jù)分組的內(nèi)部以太網(wǎng)報(bào)頭中的目的地媒體訪問控制(mac)地址設(shè)置為預(yù)定值來提供指示。
可以基于在接收時(shí)間間隔內(nèi)沒有從終止vtep接收到應(yīng)答bfd數(shù)據(jù)分組來確定vxlan隧道的通信狀態(tài)。當(dāng)在各個(gè)接收時(shí)間間隔內(nèi)沒有接收到特定數(shù)量的應(yīng)答bfd數(shù)據(jù)分組時(shí),vxlan隧道的通信狀態(tài)可被確定為關(guān)閉。起始vtep可以基于傳輸時(shí)間間隔向終止vtep發(fā)送初始bfd數(shù)據(jù)分組。
在vxlan隧道上建立bfd會(huì)話還可以包括從終止vtep接收響應(yīng)bfd數(shù)據(jù)分組。響應(yīng)bfd數(shù)據(jù)分組可將在bfd報(bào)頭中的對(duì)端標(biāo)識(shí)符字段設(shè)置為與vxlanbfd數(shù)據(jù)分組的bfd報(bào)頭中的本端標(biāo)識(shí)符字段相等的值??梢曰谠趘xlanbfd數(shù)據(jù)分組的所需最小接收間隔字段中設(shè)置的值和在響應(yīng)bfd數(shù)據(jù)分組的所需最小接收間隔字段中設(shè)置的值來協(xié)商接收時(shí)間間隔。
在另一實(shí)施例中,用于在終止vtep處檢測(cè)通信故障的系統(tǒng)和方法包括:接收來自起始vtep的vxlanbfd數(shù)據(jù)分組以在vxlan隧道上建立bfd會(huì)話。vxlanbfd數(shù)據(jù)分組包括根據(jù)封裝了bfd數(shù)據(jù)分組的根據(jù)vxlan協(xié)議的vxlan數(shù)據(jù)分組。基于根據(jù)接收時(shí)間間隔從起始vtep接收的初始bfd數(shù)據(jù)分組,確定vxlan隧道的通信狀態(tài)。
通過參考以下詳細(xì)描述和附圖,本發(fā)明的這些和其它優(yōu)點(diǎn)對(duì)于本領(lǐng)域普通技術(shù)人員將是顯而易見的。
附圖說明
圖1示出通信系統(tǒng)的高級(jí)概觀;
圖2示出用于在起始與終止虛擬隧道端點(diǎn)之間進(jìn)行通信的系統(tǒng);
圖3示出示例性vxlanbfd數(shù)據(jù)分組;
圖4示出vxlanbfd數(shù)據(jù)分組的示例性外部vxlan報(bào)頭;
圖5示出vxlanbfd數(shù)據(jù)分組的示例性內(nèi)部以太網(wǎng)報(bào)頭;
圖6示出vxlanbfd數(shù)據(jù)分組的示例性內(nèi)部ip報(bào)頭;
圖7示出vxlanbfd數(shù)據(jù)分組的示例性內(nèi)部bfd報(bào)頭;
圖8示出用于在起始vtep處檢測(cè)通信故障的方法的流程圖;
圖9示出用于在終止vtep處檢測(cè)通信故障的方法的流程圖;
圖10示出可用于檢測(cè)通信故障的示例性計(jì)算機(jī)的組件。
具體實(shí)施例
圖1示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的通信系統(tǒng)100的高級(jí)概觀。通信系統(tǒng)100包括通信耦合到網(wǎng)絡(luò)104的網(wǎng)絡(luò)元件102-a、102-b、102-c、102-d、102-e等(統(tǒng)稱為網(wǎng)絡(luò)元件102)。網(wǎng)絡(luò)元件102可以包括任何類型的能夠通過網(wǎng)絡(luò)104進(jìn)行通信的設(shè)備。例如,網(wǎng)絡(luò)元件102可以是服務(wù)器計(jì)算機(jī),例如,電子郵件服務(wù)器、數(shù)據(jù)庫服務(wù)器、虛擬機(jī)、軟件應(yīng)用等。在另一個(gè)示例中,網(wǎng)絡(luò)元件102可以是路由器。應(yīng)當(dāng)理解,通信系統(tǒng)100可以包括任何數(shù)量的網(wǎng)絡(luò)元件102,網(wǎng)絡(luò)元件102可以是指網(wǎng)絡(luò)元件中的任何一個(gè)。
網(wǎng)絡(luò)元件102通過網(wǎng)絡(luò)104進(jìn)行通信。網(wǎng)絡(luò)104可以包括任何類型的網(wǎng)絡(luò)或不同類型的網(wǎng)絡(luò)的組合。例如,網(wǎng)絡(luò)104可以包括因特網(wǎng)、內(nèi)聯(lián)網(wǎng)、局域網(wǎng)(lan)、廣域網(wǎng)(wan)、有線和/或無線網(wǎng)絡(luò)、光纖信道存儲(chǔ)區(qū)域網(wǎng)絡(luò)(san)、蜂窩通信網(wǎng)絡(luò)等。也考慮了其它類型的網(wǎng)絡(luò)。
在一個(gè)實(shí)施例中,在網(wǎng)絡(luò)104內(nèi)的兩個(gè)或多個(gè)網(wǎng)絡(luò)元件102使用虛擬可擴(kuò)展局域網(wǎng)(vxlan)進(jìn)行通信。vxlan采用封裝技術(shù)在層3分組內(nèi)封裝基于媒體訪問控制(mac)的層2以太網(wǎng)幀。根據(jù)vxlan隧道機(jī)制,起始虛擬隧道端點(diǎn)(vtep),例如網(wǎng)絡(luò)元件102-a,根據(jù)vxlan協(xié)議封裝數(shù)據(jù)分組并將所封裝的數(shù)據(jù)分組傳輸?shù)浇K止vtep,例如網(wǎng)絡(luò)元件102-b。終止vtep解封裝該數(shù)據(jù)分組并將所解封裝的數(shù)據(jù)分組轉(zhuǎn)發(fā)到預(yù)期的目的地設(shè)備。
圖2示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的用于實(shí)現(xiàn)vxlan的系統(tǒng)200。系統(tǒng)200包括源設(shè)備202、起始vtep204、終止vtep212和目的地設(shè)備218,其中的每一個(gè)可以由通信系統(tǒng)100中的網(wǎng)絡(luò)元件102表示。
起始vtep204包括封裝模塊206和起始應(yīng)用208。封裝模塊206被配置為根據(jù)vxlan協(xié)議封裝數(shù)據(jù)分組并經(jīng)由鏈路210將vxlan分組傳輸?shù)浇K止vtep212,以用于目的地設(shè)備218。鏈路210可以包括網(wǎng)絡(luò)連接、直接連接等。在一個(gè)實(shí)施例中,數(shù)據(jù)分組包括雙向轉(zhuǎn)發(fā)檢測(cè)(bfd)數(shù)據(jù)分組。然而,數(shù)據(jù)分組還可以包括任何其它類型的數(shù)據(jù)分組,例如因特網(wǎng)協(xié)議(ip)數(shù)據(jù)分組。在一個(gè)示例中,數(shù)據(jù)分組由源設(shè)備202生成。在另一個(gè)示例中,數(shù)據(jù)分組由起始應(yīng)用208生成。
起始應(yīng)用208可以包括任何類型的具有任何類型的功能的應(yīng)用。在一個(gè)實(shí)施例中,起始應(yīng)用208可以是用于網(wǎng)絡(luò)故障檢測(cè)的bfd任務(wù),其創(chuàng)建bfd數(shù)據(jù)分組并將其提供給封裝模塊206。也考慮了其它類型的起始應(yīng)用208,例如操作、管理和維護(hù)(oam)應(yīng)用。
數(shù)據(jù)分組可以由封裝模塊206根據(jù)vxlan協(xié)議封裝以提供vxlan數(shù)據(jù)分組。vxlan數(shù)據(jù)分組經(jīng)由鏈路210被傳輸?shù)浇K止vtep202。終止vtep212包括解封裝模塊214和終止應(yīng)用216。解封裝模塊214被配置為從vxlan數(shù)據(jù)分組中解封裝數(shù)據(jù)分組。在一個(gè)實(shí)施例中,解封裝模塊214將所解封裝的數(shù)據(jù)分組傳輸?shù)侥康牡卦O(shè)備218。在另一個(gè)實(shí)施例中,解封裝模塊214將所解封裝的數(shù)據(jù)分組傳輸?shù)浇K止應(yīng)用216。終止應(yīng)用216包括任何類型的具有任何類型的功能的應(yīng)用。例如,終止應(yīng)用216可以包括bfd任務(wù)、oam應(yīng)用等。
根據(jù)一個(gè)或多個(gè)實(shí)施例,系統(tǒng)200可被配置以用于實(shí)現(xiàn)vxlan上的bfd。有利地,vxlan上的bfd可以提供通信故障的快速檢測(cè),以便更快地建立替代路徑。為了實(shí)現(xiàn)vxlan上的bfd,bfd數(shù)據(jù)分組根據(jù)vxlan協(xié)議被封裝。bfd數(shù)據(jù)分組可以由源設(shè)備202或起始應(yīng)用208(例如,bfd任務(wù))生成。bfd數(shù)據(jù)分組由起始vtep204的封裝模塊206根據(jù)vxlan協(xié)議封裝以生成vxlanbfd數(shù)據(jù)分組。
圖3示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的示例性vxlanbfd數(shù)據(jù)分組300。vxlanbfd數(shù)據(jù)分組300包括根據(jù)vxlan協(xié)議封裝的bfd數(shù)據(jù)分組302。vxlanbfd數(shù)據(jù)分組300包括根據(jù)vxlan協(xié)議的外部報(bào)頭部和所封裝的bfd數(shù)據(jù)分組302的內(nèi)部報(bào)頭部。vxlanbfd數(shù)據(jù)分組300的外部報(bào)頭部包括外部以太網(wǎng)報(bào)頭304、外部ip(因特網(wǎng)協(xié)議)報(bào)頭306、外部udp報(bào)頭307和外部vxlan報(bào)頭308。vxlanbfd數(shù)據(jù)分組300的內(nèi)部報(bào)頭部包括內(nèi)部以太網(wǎng)報(bào)頭310、內(nèi)部ip報(bào)頭312、內(nèi)部bfd報(bào)頭314和可選的有效載荷316。通過配置或設(shè)置vxlanbfd數(shù)據(jù)分組300的參數(shù),vxlan上的bfd在系統(tǒng)200上實(shí)現(xiàn)。
圖4示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的vxlanbfd數(shù)據(jù)分組300的示例性外部vxlan報(bào)頭308。外部vxlan報(bào)頭308包括多個(gè)部分。例如,外部vxlan報(bào)頭308可以包括信息部分402、第一預(yù)留部分404、vxlan網(wǎng)絡(luò)標(biāo)識(shí)符(vni)部分406和第二預(yù)留部分408。外部vxlan報(bào)頭308還可以包括其它部分。
起始vtep204配置用于vxlan上的bfd的外部vxlan報(bào)頭308的參數(shù)。vni406被設(shè)置為與正被驗(yàn)證的vxlan段的vni相同。這確保vxlanbfd數(shù)據(jù)分組300在與任何其它在該vxlan段上傳播的終端系統(tǒng)數(shù)據(jù)相同的數(shù)據(jù)路徑上傳播。
vxlan路由器告警選項(xiàng),如圖4的外部vxlan報(bào)頭308中的ra所示,也設(shè)置在外部vxlan報(bào)頭308的預(yù)留部分404中。例如,路由器告警選項(xiàng)ra可以包括路由器告警位,其通過更新它的值來設(shè)置。在一個(gè)示例中,起始vtep204可以將i位例如設(shè)置為外部vxlan報(bào)頭308中的“0”。i位被設(shè)置為vxlanbfd幀的vxlan報(bào)頭308中的“0”的指示將使圖2的終止vtep212丟棄其中終止vtep212不理解vxlanbfd數(shù)據(jù)分組300的幀。此外,指示vxlanbfd數(shù)據(jù)分組300中的bfd幀的路由器告警選項(xiàng)ra將警告終止vtep212不將vxlan幀轉(zhuǎn)發(fā)到目的地設(shè)備218,而是相反,執(zhí)行本地處理(例如,bfd)。
起始vtep204還配置用于實(shí)現(xiàn)vxlan上的bfd的內(nèi)部以太網(wǎng)報(bào)頭310的參數(shù)。圖5示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的vxlanbfd數(shù)據(jù)分組300的示例性內(nèi)部以太網(wǎng)報(bào)頭310。內(nèi)部以太網(wǎng)報(bào)頭310包括多個(gè)部分。例如,內(nèi)部以太網(wǎng)報(bào)頭310可以包括目的地mac(媒體訪問控制)地址502、源mac地址504、可選部分506和vlan標(biāo)簽信息部分508。內(nèi)部以太網(wǎng)報(bào)頭310還可以包括其它部分。
內(nèi)部以太網(wǎng)報(bào)頭310的參數(shù)通過將目的地mac地址502設(shè)置為明確定義的預(yù)定值來配置,以指示vxlanbfd數(shù)據(jù)分組300的有效載荷是bfd數(shù)據(jù)分組。例如,目的地mac地址502可以被設(shè)置為00-00-5e-90-xx-xx,其中“x”是任何十六進(jìn)制數(shù)字,例如,由因特網(wǎng)號(hào)碼分配機(jī)構(gòu)(iana)分配的值。源mac地址504也被設(shè)置為起始vtep204的mac地址。在一個(gè)實(shí)施例中,源mac地址504不能在mac地址表中得知,因?yàn)檫@表示vxlanbfd。通常,vxlan承載層2/以太網(wǎng)數(shù)據(jù),接收數(shù)據(jù)的vtep從mac地址表中得知源mac地址。然而,由于vxlanbfd數(shù)據(jù)分組300在vxlan分組下封裝bfd控制分組,因此不需要從mac地址表中得知源mac地址504。
此外,內(nèi)部ip報(bào)頭312的參數(shù)由起始vtep204配置,以用于實(shí)現(xiàn)vxlan上的bfd。圖6示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的vxlanbfd數(shù)據(jù)分組300的示例性內(nèi)部ip報(bào)頭312。圖6中的內(nèi)部ip報(bào)頭312被示意性地示出為ipv4(因特網(wǎng)協(xié)議版本4)報(bào)頭,然而也考慮了其它格式,例如ipv6(因特網(wǎng)協(xié)議版本6)。內(nèi)部ip報(bào)頭312包括多個(gè)部分。例如,內(nèi)部ip報(bào)頭312可以包括版本602、ihl(因特網(wǎng)報(bào)頭長(zhǎng)度)604、服務(wù)類型606、總長(zhǎng)度608、標(biāo)識(shí)610、標(biāo)志612、段偏移614、生存時(shí)間616、協(xié)議618、報(bào)頭校驗(yàn)和620、源地址622、目的地地址624、可選項(xiàng)626、和填充628。內(nèi)部ip報(bào)頭312還可以包括其它部分。
內(nèi)部ip報(bào)頭312的參數(shù)通過將源地址622設(shè)置為例如起始vtep204的發(fā)送方的可路由地址來配置,以用于vxlan上的bfd。目的地地址624例如是從范圍127/8隨機(jī)選擇的ipv4地址,或者從范圍0:0:0:0:0:ffff:127/104隨機(jī)選擇的ipv6地址。生存時(shí)間616也被設(shè)置為255。
此外,內(nèi)部bfd報(bào)頭314的參數(shù)由起始vtep204配置,以用于vxlan上的bfd。圖7示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的vxlanbfd數(shù)據(jù)分組300的示例性內(nèi)部bfd報(bào)頭314。內(nèi)部bfd報(bào)頭314包括多個(gè)部分。例如,內(nèi)部bfd報(bào)頭314可以包括版本702、診斷(diag)704、狀態(tài)(sta)706、輪詢(p)708、最終(f)710、控制平面獨(dú)立(c)712、認(rèn)證存在(a)714、需求(d)716、多點(diǎn)(m)718、檢測(cè)時(shí)間乘數(shù)(dectmult)720、長(zhǎng)度722、本端標(biāo)識(shí)符724、對(duì)端標(biāo)識(shí)符726、期望的最小傳輸間隔728、所需最小接收間隔730、和所需最小回波接收間隔732。內(nèi)部bfd報(bào)頭314還可以包括其它部分,例如認(rèn)證部分。
內(nèi)部bfd報(bào)頭314的參數(shù)通過將本端標(biāo)識(shí)符724設(shè)置為例如某個(gè)隨機(jī)有效值(例如,10或20)并將對(duì)端標(biāo)識(shí)符726設(shè)置為“0”來配置。本端標(biāo)識(shí)符724是由起始vtep204產(chǎn)生的唯一非零標(biāo)識(shí)符,并用于解復(fù)用在同一對(duì)系統(tǒng)之間的多個(gè)bfd會(huì)話。對(duì)端標(biāo)識(shí)符726是從對(duì)應(yīng)的遠(yuǎn)程系統(tǒng)接收的標(biāo)識(shí)符并反映出本端標(biāo)識(shí)符的所接收的值(如果該值未知,則為零)。還設(shè)置了用于期望的最小傳輸間隔728和所需最小接收間隔730的定時(shí)器值。期望的最小傳輸間隔728是起始vtep204傳輸vxlanbfd數(shù)據(jù)分組的最小間隔。所需最小接收間隔730是接收bfd數(shù)據(jù)分組之間的最小間隔。
如上所配置的,vxlanbfd數(shù)據(jù)分組300用于在vxlan隧道上建立起始vtep204與終止vtep212之間的bfd會(huì)話。起始vtep204經(jīng)由鏈路210將vxlanbfd數(shù)據(jù)分組300傳輸?shù)浇K止vtep212。在接收到vxlanbfd數(shù)據(jù)分組300時(shí),終止vtep212的解封裝模塊214將vxlanbfd數(shù)據(jù)分組300標(biāo)識(shí)為包括vxlanbfd幀并從vxlanbfd數(shù)據(jù)分組300中解封裝bfd數(shù)據(jù)分組302。解封裝模塊214基于外部vxlan報(bào)頭308中的路由器告警和內(nèi)部以太網(wǎng)報(bào)頭310的目的地mac地址502的預(yù)定值,將vxlanbfd數(shù)據(jù)分組300標(biāo)識(shí)為包括vxlanbfd幀。終止vtep212通過將對(duì)端標(biāo)識(shí)符726設(shè)置為從vxlanbfd數(shù)據(jù)分組300接收的(如從起始vtep204接收的)本端標(biāo)識(shí)符724的值,配置解封裝的bfd數(shù)據(jù)分組302的參數(shù)。終止vtep212還設(shè)置用于期望的最小傳輸間隔728和所需最小接收間隔730的定時(shí)器值。然后,終止vtep212經(jīng)由鏈路210將所配置的bfd數(shù)據(jù)分組302傳輸?shù)狡鹗紇tep204。
在從終止vtep212接收到bfd數(shù)據(jù)分組302時(shí),起始vtep204將每個(gè)定時(shí)器(例如,期望的最小傳輸間隔728和所需最小接收間隔730)協(xié)商成來自起始vtep204的初始vxlanbfd數(shù)據(jù)分組300與來自終止vtep212的響應(yīng)bfd數(shù)據(jù)分組302之間較慢的值,以建立bfd會(huì)話。例如,期望的最小傳輸間隔728被協(xié)商為從初始vxlanbfd數(shù)據(jù)分組300(從起始vtep204向終止vtep212發(fā)送的)和響應(yīng)bfd數(shù)據(jù)分組302(從終止vtep212向起始vtep204發(fā)送的)接收的較慢的值。在另一個(gè)示例中,所需最小接收間隔730被協(xié)商為從初始vxlanbfd數(shù)據(jù)分組300和響應(yīng)bfd數(shù)據(jù)分組302接收的較慢的值。起始vtep204和終止vtep212還將vni406關(guān)聯(lián)到標(biāo)識(shí)符值(例如,本端標(biāo)識(shí)符724、對(duì)端標(biāo)識(shí)符726),以標(biāo)識(shí)特定的vxlan隧道。
一旦建立了bfd會(huì)話,起始vtep204將周期性地傳輸初始bfd分組,終止vtep212將根據(jù)定時(shí)器值用應(yīng)答bfd分組響應(yīng)。初始bfd分組和應(yīng)答bfd分組使用vxlan進(jìn)行封裝并通過vxlan隧道傳輸。初始bfd分組根據(jù)協(xié)商的期望的最小傳輸間隔728周期性地傳輸。當(dāng)起始vtep204或者終止vtep212在約定的時(shí)間間隔停止接收bfd分組時(shí),這可指示通信故障。例如,當(dāng)起始vtep204在期望的接收時(shí)間間隔(如在所需最小接收間隔730中所提供的)期間未從終止vtep212接收到應(yīng)答bfd分組時(shí),這可指示通信故障。在另一個(gè)示例中,當(dāng)終止vtep212在期望的時(shí)間段(如在期望的最小傳輸間隔728中所提供的)期間沒有從起始vtep204接收到初始bfd分組時(shí),這可指示通信故障。
在一個(gè)實(shí)施例中,vxlan隧道在丟失特定數(shù)量的(例如,連續(xù)的)bfd分組之后,將被宣布關(guān)閉。丟失的bfd分組的特定數(shù)量可以是在起始vtep204和終止vtep212處丟失的bfd分組的數(shù)量。丟失的bfd分組的特定數(shù)量基于bfd報(bào)頭314的檢測(cè)時(shí)間乘數(shù)720。一旦vxlan隧道被宣布關(guān)閉,任何關(guān)于通過vxlan隧道創(chuàng)建的起始vtep204或終止vtep212的狀態(tài)將被清除。
有利地,系統(tǒng)200被配置為使用通過vxlan隧道進(jìn)行的bfd實(shí)現(xiàn)快速故障檢測(cè)。這允許系統(tǒng)200更快地建立替代路徑。
圖8示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的用于在起始vtep處檢測(cè)通信故障的方法800的流程圖。在步驟802,在起始vtep處根據(jù)vxlan協(xié)議生成vxlan數(shù)據(jù)分組。在步驟804,在起始vtep處將bfd數(shù)據(jù)分組封裝在vxlan數(shù)據(jù)分組中以生成vxlanbfd數(shù)據(jù)分組。bfd數(shù)據(jù)分組可以由源設(shè)備或由例如在起始vtep處的bfd任務(wù)的起始應(yīng)用產(chǎn)生。在步驟806,vxlanbfd數(shù)據(jù)分組被配置為指示vxlanbfd數(shù)據(jù)分組包括bfd幀。例如,vxlanbfd數(shù)據(jù)分組可以通過在vxlanbfd數(shù)據(jù)分組的外部vxlan報(bào)頭中設(shè)置路由器告警選項(xiàng)并通過將vxlanbfd數(shù)據(jù)分組的內(nèi)部以太網(wǎng)報(bào)頭中的目的地mac地址設(shè)置為明確定義的預(yù)定值(例如,00-00-5e-90-xx-xx,其中“x”是任何十六進(jìn)制數(shù)字,例如,由iana分配的值),被配置為指示bfd幀。
在一個(gè)實(shí)施例中,vxlanbfd數(shù)據(jù)分組進(jìn)一步由起始vtep配置如下。vxlanbfd數(shù)據(jù)分組的外部vxlan報(bào)頭的vni被設(shè)置為與正被驗(yàn)證的vxlan段(或隧道)的相同。內(nèi)部以太網(wǎng)報(bào)頭中的源mac地址被設(shè)置為起始vtep的mac地址。vxlanbfd數(shù)據(jù)分組的內(nèi)部ip報(bào)頭的源地址被設(shè)置為起始vtep的可路由地址。內(nèi)部ip報(bào)頭的目的地地址被設(shè)置為從范圍127/8隨機(jī)選擇的ipv4地址或從范圍0:0:0:0:0:ffff:127/104隨機(jī)選擇的ipv6地址,生存時(shí)間被設(shè)置為255。vxlanbfd數(shù)據(jù)分組的內(nèi)部bfd報(bào)頭中的本端標(biāo)識(shí)符字段被設(shè)置為任何有效值,對(duì)端標(biāo)識(shí)符字段被設(shè)置為零。期望的最小傳輸間隔和所需最小接收間隔也被設(shè)置。
在步驟808,將vxlanbfd數(shù)據(jù)分組從起始vtep傳輸?shù)浇K止vtep以在vxlan隧道上建立bfd會(huì)話。終止vtep解封裝bfd數(shù)據(jù)分組并將bfd報(bào)頭中的對(duì)端標(biāo)識(shí)符字段設(shè)置為所接收的vxlanbfd數(shù)據(jù)分組中的本端標(biāo)識(shí)符值。終止vtep還設(shè)置期望的最小傳輸間隔和所需最小接收間隔。然后,終止vtep將bfd數(shù)據(jù)分組發(fā)送到起始vtep。用于期望的最小傳輸間隔和所需最小接收間隔的定時(shí)器值每一個(gè)均被協(xié)商為由起始vtep指示的值與由終止vtep指示的值之間較慢的值。起始vtep和終止vtep還將vni關(guān)聯(lián)到標(biāo)識(shí)符值以標(biāo)識(shí)特定的vxlan隧道。
在步驟810,基于根據(jù)所協(xié)商的接收時(shí)間間隔從終止vtep接收的應(yīng)答bfd分組,bfd會(huì)話的vxlan隧道的通信狀態(tài)由起始vtep確定。在一個(gè)實(shí)施例中,當(dāng)起始vtep在所協(xié)商的特定數(shù)量的間隔(如在內(nèi)部bfd報(bào)頭中的檢測(cè)時(shí)間乘數(shù)字段中設(shè)置的)的時(shí)間內(nèi)未接收到bfd分組時(shí),vxlan隧道被宣布關(guān)閉。例如,如果三個(gè)bfd分組每一個(gè)在各個(gè)接收時(shí)間間隔內(nèi)沒有被接收到,vxlan隧道被宣布關(guān)閉。一旦隧道被宣布關(guān)閉,任何關(guān)于通過vxlan隧道創(chuàng)建的vtep的狀態(tài)將被清除。
圖9示出了根據(jù)一個(gè)或多個(gè)實(shí)施例的用于通過終止vtep檢測(cè)通信故障的方法900的流程圖。在步驟902,由終止vtep接收來自起始vtep的vxlanbfd數(shù)據(jù)分組。vxlanbfd數(shù)據(jù)分組包括封裝了bfd數(shù)據(jù)分組的根據(jù)vxlan協(xié)議生成的vxlan數(shù)據(jù)分組。可以如上所述配置vxlanbfd數(shù)據(jù)分組。在步驟904,終止vtep將vxlanbfd數(shù)據(jù)分組標(biāo)識(shí)為包括bfd幀以在vxlan隧道上建立bfd會(huì)話。在一個(gè)實(shí)施例中,終止vtep基于在vxlanbfd數(shù)據(jù)分組的外部vxlan報(bào)頭中設(shè)置的路由器告警選項(xiàng)和在vxlanbfd數(shù)據(jù)分組的內(nèi)部以太網(wǎng)報(bào)頭中的目的地mac地址的明確定義的預(yù)定值,將vxlanbfd數(shù)據(jù)分組標(biāo)識(shí)為包括bfd幀。
在步驟906,基于根據(jù)接收時(shí)間間隔從起始vtep接收的初始bfd數(shù)據(jù)分組,bfd會(huì)話的vxlan隧道的通信狀態(tài)由終止vtep確定。在一個(gè)實(shí)施例中,當(dāng)終止vtep在所協(xié)商的特定數(shù)量的間隔的時(shí)間內(nèi)(如在內(nèi)部bfd報(bào)頭中的檢測(cè)時(shí)間乘數(shù)字段中設(shè)置的)未接收到bfd分組時(shí),vxlan隧道被宣布關(guān)閉。一旦隧道被宣布關(guān)閉,任何關(guān)于通過vxlan隧道創(chuàng)建的vtep的狀態(tài)將被清除。
可以使用數(shù)字電路,或者使用一個(gè)或多個(gè)使用公知的計(jì)算機(jī)處理器、存儲(chǔ)器單元、存儲(chǔ)設(shè)備、計(jì)算機(jī)軟件和其它組件的計(jì)算機(jī),來實(shí)現(xiàn)本文中描述的系統(tǒng)、裝置和方法。通常,計(jì)算機(jī)包括用于執(zhí)行指令的處理器和一個(gè)或多個(gè)用于存儲(chǔ)指令和數(shù)據(jù)的存儲(chǔ)器。計(jì)算機(jī)還可以包括或耦合到一個(gè)或多個(gè)大容量存儲(chǔ)設(shè)備,諸如一個(gè)或多個(gè)磁盤、內(nèi)部硬盤和可移動(dòng)磁盤、磁光盤、光盤等。
可以使用以客戶端—服務(wù)器關(guān)系操作的計(jì)算機(jī)來實(shí)現(xiàn)本文中描述的系統(tǒng)、裝置和方法。通常,在這樣的系統(tǒng)中,客戶端計(jì)算機(jī)遠(yuǎn)離服務(wù)器計(jì)算機(jī)并經(jīng)由網(wǎng)絡(luò)進(jìn)行交互??蛻舳恕?wù)器關(guān)系可以由在相應(yīng)的客戶端和服務(wù)器計(jì)算機(jī)上運(yùn)行的計(jì)算機(jī)程序來定義和控制。
可以在基于網(wǎng)絡(luò)的云計(jì)算系統(tǒng)內(nèi)實(shí)現(xiàn)本文中描述的系統(tǒng)、裝置和方法。在這種基于網(wǎng)絡(luò)的云計(jì)算系統(tǒng)中,連接到網(wǎng)絡(luò)的服務(wù)器或另一個(gè)處理器經(jīng)由網(wǎng)絡(luò)與一個(gè)或多個(gè)客戶端計(jì)算機(jī)進(jìn)行通信。例如,客戶端計(jì)算機(jī)可以經(jīng)由在客戶端計(jì)算機(jī)上駐留并運(yùn)行的網(wǎng)絡(luò)瀏覽器應(yīng)用與服務(wù)器進(jìn)行通信??蛻舳擞?jì)算機(jī)可以經(jīng)由網(wǎng)絡(luò)在服務(wù)器上存儲(chǔ)數(shù)據(jù)并訪問該數(shù)據(jù)??蛻舳擞?jì)算機(jī)可以經(jīng)由網(wǎng)絡(luò)向服務(wù)器傳輸對(duì)數(shù)據(jù)的請(qǐng)求或?qū)υ诰€服務(wù)的請(qǐng)求。服務(wù)器可以執(zhí)行所請(qǐng)求的服務(wù)并向客戶端計(jì)算機(jī)提供數(shù)據(jù)。服務(wù)器還可以傳輸適于使客戶端計(jì)算機(jī)執(zhí)行指定功能的數(shù)據(jù),例如,執(zhí)行計(jì)算、在屏幕上顯示指定數(shù)據(jù)等。例如,服務(wù)器可以傳輸適于使客戶端計(jì)算機(jī)執(zhí)行本文中描述的方法步驟中的一個(gè)或多個(gè)包括圖8和圖9中的步驟中的一個(gè)或多個(gè)的請(qǐng)求。本文中描述的方法的某些步驟,包括圖8和圖9中的步驟中的一個(gè)或多個(gè),可以由基于網(wǎng)絡(luò)的云計(jì)算系統(tǒng)中的服務(wù)器或另一個(gè)處理器執(zhí)行。本文中描述的方法的某些步驟,包括圖8和圖9中的步驟中的一個(gè)或多個(gè),可以由基于網(wǎng)絡(luò)的云計(jì)算系統(tǒng)中的客戶端計(jì)算機(jī)執(zhí)行。本文中描述的方法的步驟,包括圖8和圖9中的步驟中的一個(gè)或多個(gè),可以由基于網(wǎng)絡(luò)的云計(jì)算系統(tǒng)中的服務(wù)器和/或由客戶端計(jì)算機(jī)以任何組合來執(zhí)行。
可以使用在信息載體中有形具體化(例如,在非暫時(shí)性機(jī)器可讀存儲(chǔ)設(shè)備中,以用于由可編程處理器執(zhí)行)的計(jì)算機(jī)程序產(chǎn)品來實(shí)現(xiàn)本文中描述的系統(tǒng)、裝置和方法;本文中描述的方法步驟,包括圖8和圖9中的步驟中的一個(gè)或多個(gè),可以使用一個(gè)或多個(gè)可由這種處理器執(zhí)行的計(jì)算機(jī)程序來實(shí)現(xiàn)。計(jì)算機(jī)程序是一組可以直接或間接地用于計(jì)算機(jī)中以執(zhí)行某些活動(dòng)或產(chǎn)生某些結(jié)果的計(jì)算機(jī)程序指令。計(jì)算機(jī)程序可以以任何形式的編程語言編寫,包括編譯或解釋語言,并且其可以以任何形式部署,包括作為獨(dú)立程序或者作為模塊、組件、子程序或適合用于計(jì)算環(huán)境中的其它單元。
可以用于實(shí)現(xiàn)本文中描述的系統(tǒng)、裝置和方法的示例計(jì)算機(jī)的高級(jí)框圖1000在圖10中示出。計(jì)算機(jī)1002包括可操作耦合到數(shù)據(jù)存儲(chǔ)設(shè)備1012的處理器1004和存儲(chǔ)器1010。處理器1004通過執(zhí)行定義這種操作的計(jì)算機(jī)程序指令來控制計(jì)算機(jī)1002的整體操作。計(jì)算機(jī)程序指令可被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)設(shè)備1012或其它計(jì)算機(jī)可讀介質(zhì)中并當(dāng)期望執(zhí)行計(jì)算機(jī)程序指令時(shí)被加載到存儲(chǔ)器1010中。因此,圖8和圖9中的方法步驟可以由存儲(chǔ)在存儲(chǔ)器1010和/或數(shù)據(jù)存儲(chǔ)設(shè)備1012中的計(jì)算機(jī)程序指令定義并由執(zhí)行計(jì)算機(jī)程序指令的處理器1004控制。例如,計(jì)算機(jī)程序指令可被實(shí)現(xiàn)為由本領(lǐng)域技術(shù)人員編程的計(jì)算機(jī)可執(zhí)行代碼以執(zhí)行圖8和圖9中的方法步驟。相應(yīng)地,通過執(zhí)行計(jì)算機(jī)程序指令,處理器1004執(zhí)行圖8和圖9中的方法步驟。計(jì)算機(jī)1002還可以包括一個(gè)或多個(gè)用于經(jīng)由網(wǎng)絡(luò)與其它設(shè)備進(jìn)行通信的網(wǎng)絡(luò)接口1006。計(jì)算機(jī)1002還可以包括一個(gè)或多個(gè)使得用戶能夠與計(jì)算機(jī)1002進(jìn)行交互的輸入/輸出設(shè)備1008(例如,顯示器、鍵盤、鼠標(biāo)、揚(yáng)聲器、按鈕等)。
處理器1004可以包括通用和專用微處理器兩者,并且可以是計(jì)算機(jī)1002的唯一的處理器或多個(gè)處理器中的一個(gè)。例如,處理器1004可以包括一個(gè)或多個(gè)中央處理單元(cpu)。處理器1004、數(shù)據(jù)存儲(chǔ)設(shè)備1012和/或存儲(chǔ)器1010可以包括、可以補(bǔ)充有、或者可以被并入一個(gè)或多個(gè)專用集成電路(asic)和/或一個(gè)或多個(gè)現(xiàn)場(chǎng)可編程門陣列(fpga)。
數(shù)據(jù)存儲(chǔ)設(shè)備1012和存儲(chǔ)器1010每一個(gè)包括有形非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。數(shù)據(jù)存儲(chǔ)設(shè)備1012和存儲(chǔ)器1010每一個(gè)可以包括高速隨機(jī)存取存儲(chǔ)器,諸如動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、雙倍數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(ddrram)或其它隨機(jī)存取固態(tài)存儲(chǔ)設(shè)備,并且可以包括非易失性存儲(chǔ)器,諸一個(gè)或多個(gè)諸如內(nèi)部硬盤和可移動(dòng)磁盤的磁盤存儲(chǔ)設(shè)備、磁光盤存儲(chǔ)設(shè)備、光盤存儲(chǔ)設(shè)備、閃存設(shè)備、諸如可擦除可編程只讀存儲(chǔ)器(eprom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、緊湊型光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤只讀存儲(chǔ)器(dvd-rom)盤的半導(dǎo)體存儲(chǔ)器設(shè)備、或者其它非易失性固態(tài)存儲(chǔ)設(shè)備。
輸入/輸出設(shè)備1008可以包括諸如打印機(jī)、掃描儀、顯示屏等的外圍設(shè)備。例如,輸入/輸出設(shè)備1008可以包括諸如用于向用戶顯示信息的陰極射線管(crt)或液晶顯示器(lcd)監(jiān)視器的顯示設(shè)備、鍵盤、和諸如用戶可以通過其向計(jì)算機(jī)1002提供輸入的鼠標(biāo)或軌跡球的指示設(shè)備。
本文中討論的任何或全部的系統(tǒng)和裝置,包括圖1中的通信系統(tǒng)100和圖2中的系統(tǒng)200的元件,可以使用一個(gè)或多個(gè)諸如計(jì)算機(jī)1002的計(jì)算機(jī)來實(shí)現(xiàn)。
本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,實(shí)際的計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)的實(shí)現(xiàn)可以具有其它結(jié)構(gòu)并且還可以包含其它組件,圖10是這種計(jì)算機(jī)的組件中的一些的高級(jí)表示,以用于說明目的。
前面詳細(xì)的描述應(yīng)被理解為在各方面都是說明性和示例性的而不是限制性的,并且本文中公開的本發(fā)明的范圍不是根據(jù)詳細(xì)的描述確定的,而是根據(jù)由專利法允許的全部寬度解釋的權(quán)利要求確定的。應(yīng)當(dāng)理解,本文中示出和描述的實(shí)施例僅僅說明本發(fā)明的原理,本領(lǐng)域技術(shù)人員可以在不背離本發(fā)明的范圍和精神的情況下實(shí)現(xiàn)各種修改。本領(lǐng)域技術(shù)人員可以在不背離本發(fā)明的范圍和精神的情況下實(shí)現(xiàn)各種其它特征組合。