本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種流量保護(hù)方法及裝置。
背景技術(shù):
以太網(wǎng)虛擬專用網(wǎng)絡(luò)(Ethernet Virtual Private Network,EVPN),除了繼承了在可擴(kuò)展虛擬網(wǎng)絡(luò)的優(yōu)勢(shì)外,還具有網(wǎng)絡(luò)部署難度較低,以及易于管理的優(yōu)勢(shì),使得EVPN網(wǎng)絡(luò)被廣泛的應(yīng)用。
EVPN網(wǎng)絡(luò)中虛擬設(shè)備是通過隧道端點(diǎn)設(shè)備(VXLAN Tunnel End Point,VTEP)轉(zhuǎn)發(fā)流量的,來完成通信的。由于VETP上存在路由的下一跳地址不是與當(dāng)前VTEP直接相連的地址,因此為了能夠?qū)?bào)文正確轉(zhuǎn)發(fā)出去,可將這些路由進(jìn)行路由迭代;以將路由的下一跳迭代到正確的出接口上。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例所要解決的技術(shù)問題是提供一種流量保護(hù)方法,以解決由于路由迭代錯(cuò)誤,導(dǎo)致的流量浪費(fèi)的問題。
相應(yīng)的,本發(fā)明實(shí)施例還提供了一種流量保護(hù)裝置,用以保證上述方法的實(shí)現(xiàn)及應(yīng)用。
為了解決上述問題,本發(fā)明實(shí)施例公開了一種流量保護(hù)方法,應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中,所述的方法包括:隧道端點(diǎn)設(shè)備VTEP接收第一報(bào)文;依據(jù)所述第一報(bào)文,確定路由管理中被迭代路由對(duì)應(yīng)的依賴路由;依據(jù)所述依賴路由的預(yù)設(shè)迭代標(biāo)簽,將所述被迭代路由進(jìn)行迭代。
可選的,在所述路由管理中為指定路由添加所述預(yù)設(shè)迭代標(biāo)簽,其中,當(dāng)所述指定路由與所述被迭代路由對(duì)應(yīng)時(shí),所述指定路由為所述依賴路由。
可選的,當(dāng)?shù)诙?bào)文中攜帶所述預(yù)設(shè)迭代標(biāo)簽時(shí),將所述路由管理中所述第二報(bào)文對(duì)應(yīng)的路由確定為所述指定路由;執(zhí)行在所述路由管理中為指定路由添加所述預(yù)設(shè)迭代標(biāo)簽的步驟。
可選的,在所述VTEP接收或發(fā)送所述第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
可選的,所述EVPN網(wǎng)絡(luò)中存在NFV設(shè)備,則在所述VTEP接收所述NFV設(shè)備發(fā)送的第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中;或者,若所述EVPN網(wǎng)絡(luò)中建立邊界路由協(xié)議BGP鄰居,則在所述VTEP向其他VTEP發(fā)送所述第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
本發(fā)明實(shí)施例還公開了一種流量保護(hù)裝置,應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中的VTEP上,所述的裝置包括:報(bào)文接收模塊,用于接收第一報(bào)文;依賴路由確定模塊,用于依據(jù)所述第一報(bào)文,確定路由管理中被迭代路由對(duì)應(yīng)的依賴路由;路由迭代模塊,用于依據(jù)所述依賴路由的預(yù)設(shè)迭代標(biāo)簽,將所述被迭代路由進(jìn)行迭代。
可選的,所述裝置還包括:標(biāo)簽添加模塊,用于在所述路由管理中為指定路由添加所述預(yù)設(shè)迭代標(biāo)簽,其中,當(dāng)所述指定路由與所述被迭代路由對(duì)應(yīng)時(shí),所述指定路由為所述依賴路由。
可選的,所述裝置還包括:指定路由確定模塊,用于當(dāng)?shù)诙?bào)文中攜帶所述預(yù)設(shè)迭代標(biāo)簽時(shí),將所述路由管理中所述第二報(bào)文對(duì)應(yīng)的路由確定為所述指定路由;所述標(biāo)簽添加模塊,用于在所述路由管理中為指定路由添加所述預(yù)設(shè)迭代標(biāo)簽。
可選的,所述裝置還包括:報(bào)文封裝模塊,用于在接收或發(fā)送所述第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
可選的,所述報(bào)文封裝模塊,還用于若所述EVPN網(wǎng)絡(luò)中存在NFV設(shè)備,則在所述VTEP接收所述NFV設(shè)備發(fā)送的第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中;或者,若所述EVPN網(wǎng)絡(luò)中建立邊界路由協(xié)議BGP鄰居,則在所述VTEP向其他VTEP發(fā)送所述第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例包括以下優(yōu)點(diǎn):
本發(fā)明實(shí)施例應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中,隧道端點(diǎn)設(shè)備VTEP接收到第一報(bào)文后,根據(jù)所述第一報(bào)文,確定路由管理中與被迭代路由對(duì)應(yīng)的依賴路由;再依據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽,將被迭代路由進(jìn)行迭代;從而VTEP可以依據(jù)預(yù)設(shè)迭代標(biāo)簽將路由迭代到正確的出接口上;使得流量可以通過正確的出接口轉(zhuǎn)發(fā),減少了流量轉(zhuǎn)發(fā)過程中流量的浪費(fèi)。
附圖說明
圖1是本發(fā)明的一種流量保護(hù)方法實(shí)施例的步驟流程圖;
圖2是現(xiàn)有技術(shù)的一種EVPN組網(wǎng)示意圖;
圖3是本發(fā)明的另一種流量保護(hù)方法實(shí)施例的步驟流程圖;
圖4是現(xiàn)有技術(shù)的另一種EVPN組網(wǎng)示意圖;
圖5是本發(fā)明的另一種流量保護(hù)方法實(shí)施例的步驟流程圖;
圖6是本發(fā)明一種流量保護(hù)裝置實(shí)施例的結(jié)構(gòu)框圖;
圖7是本發(fā)明另一種流量保護(hù)裝置實(shí)施例的結(jié)構(gòu)框圖。
具體實(shí)施方式
為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。
在EVPN網(wǎng)絡(luò)中,往往會(huì)出現(xiàn)由于路由迭代錯(cuò)誤,產(chǎn)生流量回環(huán);或者流量被錯(cuò)誤轉(zhuǎn)發(fā),從而導(dǎo)致流量的浪費(fèi);例如,在存在主、備網(wǎng)絡(luò)功能虛擬化(Network Function Virtualization,NFV)設(shè)備EVPN網(wǎng)絡(luò)中,某個(gè)與備NFV設(shè)備連接的隧道端點(diǎn)設(shè)備(VXLAN Tunnel End Point,VTEP)的靜態(tài)路由,可能出現(xiàn)迭代錯(cuò)誤的情況,從而使得在其他隧道端點(diǎn)設(shè)備,通過該VTEP向主NFV設(shè)備發(fā)送流量時(shí),導(dǎo)致流量的回環(huán);還例如,在EVPN網(wǎng)絡(luò)建立邊界路由協(xié)議(Border Gateway Protocol,BGP)鄰居時(shí),當(dāng)IP核心網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)發(fā)生變化時(shí),例如VTEP發(fā)生故障,路由會(huì)出現(xiàn)迭代錯(cuò)誤的情況,導(dǎo)致流量被錯(cuò)誤轉(zhuǎn)發(fā)而被丟棄,以上兩種情況均是由于路由迭代錯(cuò)誤,導(dǎo)致了流量轉(zhuǎn)發(fā)過程中的流量浪費(fèi)。其中,在路由迭代的過程中,進(jìn)行迭代的路由為被迭代路由,被迭代路由進(jìn)行迭代時(shí)依賴的路由為依賴路由;在EVPN網(wǎng)絡(luò)中被迭代路由包括:靜態(tài)路由和BGP路由;依賴路由是VTEP的路由管理中存在的路由。因此,本發(fā)明實(shí)施例提出一種流量保護(hù)的方法,使得VTEP接收到報(bào)文后,可以根據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽,將被迭代路由迭代到正確的出接口。
本發(fā)明實(shí)施例的核心構(gòu)思之一在于,提出一種流量保護(hù)方法和裝置,應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中,其中,所述方法包括:隧道端點(diǎn)設(shè)備VTEP接收到第一報(bào)文后,依據(jù)第一報(bào)文,確定路由管理中與被迭代路由對(duì)應(yīng)的依賴路由;再依據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽,將被迭代路由進(jìn)行迭代,從而VTEP可以依據(jù)預(yù)設(shè)迭代標(biāo)簽進(jìn)行路由迭代,將路由迭代到正確的出接口上;從而流量可以通過正確的出接口轉(zhuǎn)發(fā),減少了流量轉(zhuǎn)發(fā)過程中的流量浪費(fèi)。
參照?qǐng)D1,示出了本發(fā)明的一種流量保護(hù)方法實(shí)施例的步驟流程圖,具體可以包括如下步驟:
步驟102、隧道端點(diǎn)設(shè)備VTEP接收第一報(bào)文。
本發(fā)明實(shí)施例的EVPN網(wǎng)絡(luò)包括:隧道端點(diǎn)設(shè)備VTEP和虛擬設(shè)備如虛擬機(jī)VM和NFV設(shè)備,VTEP與VTEP之間,VTEP與虛擬設(shè)備之間,均通過發(fā)送報(bào)文的方式進(jìn)行通信;如地址解析協(xié)議(Address Resolution Protocol,ARP)報(bào)文、BGP報(bào)文,以及內(nèi)部路由協(xié)議(Interior Gateway Protocol,IGP)報(bào)文等等,在此不一一舉例。VTEP在接收到其他設(shè)備發(fā)送的第一報(bào)文后,按照第一報(bào)文的類型對(duì)第一報(bào)文進(jìn)行解析,以獲取報(bào)文中的信息;從而可以進(jìn)行相應(yīng)的處理。其中,所述的第一報(bào)文可以是ARP報(bào)文,也可以是BGP報(bào)文;發(fā)送所述第一報(bào)文的設(shè)備可以是其他的VTEP,也可以是NFV設(shè)備;不同的應(yīng)用場(chǎng)景中,發(fā)送所述第一報(bào)文的設(shè)備可以不同。
步驟104、依據(jù)所述第一報(bào)文,確定路由管理中被迭代路由對(duì)應(yīng)的依賴路由。
步驟106、依據(jù)所述依賴路由的預(yù)設(shè)迭代標(biāo)簽,將所述被迭代路由進(jìn)行迭代。
本發(fā)明實(shí)施例VTEP在接收到第一報(bào)文并進(jìn)行解析后,可以在路由管理中建立第一報(bào)文對(duì)應(yīng)的路由,然后可以將第一報(bào)文對(duì)應(yīng)的路由,或,該VTEP上的靜態(tài)路由確定為被迭代路由,再判斷該VTEP的路由管理中,是否存在該第一報(bào)文對(duì)應(yīng)的路由對(duì)應(yīng)的依賴路由,或者,判斷該VTEP的路由管理中,是否存在該VTEP上的靜態(tài)路由對(duì)應(yīng)的依賴路由;當(dāng)VTEP的路由管理中存在對(duì)應(yīng)的依賴路由時(shí),再依據(jù)該依賴路由的預(yù)設(shè)迭代標(biāo)簽,將被迭代路由進(jìn)行迭代;其中,預(yù)設(shè)迭代標(biāo)簽用于標(biāo)識(shí)VTEP接收的路由,是被迭代路由是否可以進(jìn)行路由迭代的依據(jù),不同VTEP設(shè)置的預(yù)設(shè)迭代標(biāo)簽可以相同,也可以不同,可以根據(jù)實(shí)際情況設(shè)置。
具體的,確定依賴路由的步驟包括:確定被迭代路由下一跳的前綴;再在VTEP的路由管理中查詢是否存在路由的前綴,與被迭代路由下一跳的前綴相同,當(dāng)存在時(shí),則將VTEP的路由管理中前綴與被迭代路由的前綴相同的路由,確定為依賴路由;例如被迭代路由下一跳的地址為3.3.3.3/32,前綴為3.3.3.3;路由管理中存在一個(gè)的前綴為3.3.3.3的路由;則將路由管理中的該路由確定為依賴路由。不同情況下,依賴路由的數(shù)量不同,可以再根據(jù)最優(yōu)路由選擇的條件,將其中一條依賴路由,確定為被迭代路由對(duì)應(yīng)的依賴路由。確定VTEP的路由管理中的依賴路由后,可以依據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽進(jìn)行路由迭代,具體包括:查詢?cè)撘蕾嚶酚墒欠翊嬖陬A(yù)設(shè)迭代標(biāo)簽;當(dāng)該依賴路由存在所述預(yù)設(shè)迭代標(biāo)簽時(shí),則可以將所述被迭代路由進(jìn)行迭代,具體的,確定所述依賴路由的下一跳,從而確定該VTEP與下一跳連接的出接口;再將所述被迭代路由的下一跳,迭代到所述出接口。當(dāng)依賴路由不存在所述預(yù)設(shè)迭代標(biāo)簽時(shí),則無需將所述被迭代路由進(jìn)行迭代。
此外,當(dāng)確定該VTEP的路由管理中不存在所述依賴路由,則可以確定VTEP的被迭代路由無需進(jìn)行路由迭代,從而也無需執(zhí)行步驟106。
本發(fā)明實(shí)施例應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中,隧道端點(diǎn)設(shè)備VTEP接收到第一報(bào)文后,根據(jù)第一報(bào)文,確定路由管理中與被迭代路由對(duì)應(yīng)的依賴路由;再依據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽,將被迭代路由進(jìn)行迭代,從而VTEP可以依據(jù)預(yù)設(shè)迭代標(biāo)簽進(jìn)行路由迭代,將路由迭代到正確的出接口上;從而流量可以通過正確的出接口轉(zhuǎn)發(fā),減少了流量轉(zhuǎn)發(fā)過程中的流量浪費(fèi)。
在上述實(shí)施例的基礎(chǔ)上,進(jìn)一步針對(duì)不同的應(yīng)用場(chǎng)景中,流量保護(hù)方法進(jìn)行說明。
本發(fā)明實(shí)施例對(duì)其中一種EVPN網(wǎng)絡(luò)的應(yīng)用場(chǎng)景進(jìn)行說明,該應(yīng)用場(chǎng)景中EVPN網(wǎng)絡(luò)中存主NFV設(shè)備和備NFV設(shè)備,如圖2所示;所述EVPN網(wǎng)絡(luò)還包括隧道端點(diǎn)設(shè)備VTEP1、VTEP2和VTEP3和虛擬機(jī)VM,其中,存在一個(gè)VTEP與主NFV設(shè)備連接如VTEP2,存在另一個(gè)VTEP與備NFV連接如VTEP3;圖中NFV1為主NFV設(shè)備,NFV2為備用NFV設(shè)備,RR為反射器,NFV1與NFV2的地址相同;VTEP3和VTEP2上均配置了下一跳是NFV的靜態(tài)路由。在主NFV設(shè)備連接到EVPN網(wǎng)絡(luò)時(shí),NFV1會(huì)向VTEP2發(fā)送ARP報(bào)文,以告知EVPN網(wǎng)絡(luò)中其他VTEP主NFV設(shè)備的地址。具體的,VTEP2接收到ARP報(bào)文后,其靜態(tài)路由被激活,VTEP2通過RR將ARP路由發(fā)送給VTEP1和VTEP3;現(xiàn)有技術(shù)中,VTEP3接收到VTEP2的遠(yuǎn)端ARP路由后,VTEP3上的靜態(tài)路由的下一跳會(huì)迭代為VTEP3與RR連接的出接口;當(dāng)VTEP1向NFV設(shè)備發(fā)送流量時(shí),流量會(huì)通過RR轉(zhuǎn)發(fā)至VTEP2和VTEP3;通過VTPE2的流量直接到達(dá)NFV1,但通過VTEP3的流量,會(huì)被發(fā)送至VTEP3與RR連接的出接口,造成了流量的回環(huán)。因此,本發(fā)明實(shí)施例提出一種應(yīng)用于EVPN中存在主、備NFV設(shè)備中的流量保護(hù)方法,使得VTEP上的靜態(tài)路由可以被迭代到正常的出接口上,從而在流量轉(zhuǎn)發(fā)過程中不造成流量的回環(huán),減少流量的浪費(fèi)。具體的,可參照?qǐng)D2和圖3,針對(duì)應(yīng)用于所述應(yīng)用場(chǎng)景的流量保護(hù)方法進(jìn)行詳細(xì)的說明,具體可以包括如下步驟:
步驟302、隧道端點(diǎn)設(shè)備VTEP接收第一報(bào)文。
步驟304、判斷所述第二報(bào)文是否為所述NFV設(shè)備發(fā)送的,若是,則執(zhí)行步驟306,若否,則執(zhí)行步驟312。
步驟306、將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
步驟308、在路由管理中建立第二報(bào)文對(duì)應(yīng)的路由時(shí),將所述第二報(bào)文對(duì)應(yīng)的路由確定為指定路由。
步驟310、在所述路由管理中為指定路由添加所述預(yù)設(shè)迭代標(biāo)簽。
在上述應(yīng)用場(chǎng)景中,VTEP3上的靜態(tài)路由迭代的出接口錯(cuò)誤的原因是,VTEP3接收到遠(yuǎn)端即VTEP2發(fā)送的ARP報(bào)文時(shí),進(jìn)行了路由迭代;為了上述問題,本發(fā)明實(shí)施例提出一種路由迭代的策略,即VTEP3接收到遠(yuǎn)端發(fā)送的ARP報(bào)文時(shí)不進(jìn)行路由迭代;而在接收到NFV2發(fā)送的ARP報(bào)文時(shí),才進(jìn)行路由迭代;同樣,針對(duì)VTEP2也執(zhí)行相同的策略。所述路由迭代策略具體實(shí)施方式是,預(yù)先將VTEP與NFV設(shè)備連接的虛擬服務(wù)實(shí)例的接口上,配置預(yù)設(shè)迭代標(biāo)簽;其中,所述虛擬服務(wù)實(shí)例的接口是VTEP與NFV設(shè)備連接的接口,使得VTEP在接收到NFV設(shè)備發(fā)送的ARP報(bào)文時(shí),可以為該ARP報(bào)文添加預(yù)設(shè)迭代標(biāo)簽,其中,所述VTEP可以是與主NFV設(shè)備連接的設(shè)備如圖2的VTEP2,也可以是與備NFV設(shè)備連接的設(shè)備如圖2的VTEP3。
本發(fā)明實(shí)施例中的第二報(bào)文與上述第一報(bào)文是同一報(bào)文。由于VTEP在對(duì)其他VTEP發(fā)送的報(bào)文,和對(duì)NFV發(fā)送的報(bào)文,處理方式不同;因此,VTEP在接收到第二報(bào)文后,可以根據(jù)接收到該第二報(bào)文的接口,判斷所述第二報(bào)文是否是由NFV設(shè)備發(fā)送的;當(dāng)接收VTEP通過虛擬服務(wù)實(shí)例的接口接收到第二報(bào)文時(shí),可以確定所述第二報(bào)文為NFV發(fā)送的報(bào)文,則所述第二報(bào)文為ARP報(bào)文,則該虛擬服務(wù)實(shí)例的接口可以將預(yù)先配置的預(yù)設(shè)迭代標(biāo)簽封裝在所述第二報(bào)文中,以使第二報(bào)文中攜帶預(yù)設(shè)迭代標(biāo)簽;即執(zhí)行步驟306;而當(dāng)VTEP的其他接口接收到所述所述第二報(bào)文時(shí),則無需為該第二報(bào)文添加所述預(yù)設(shè)迭代標(biāo)簽,即可直接執(zhí)行步驟312。例如,圖2中,VTEP3通過IF11接收到ARP報(bào)文時(shí),則不為該ARP報(bào)文添加所述預(yù)設(shè)迭代標(biāo)簽;而當(dāng)VTEP3通過IF12接收到ARP報(bào)文時(shí),則為該ARP報(bào)文添加所述預(yù)設(shè)迭代標(biāo)簽。在VTEP為接收到第二報(bào)文添加預(yù)設(shè)迭代標(biāo)簽后,對(duì)該第二報(bào)文進(jìn)行解析;然后在VTEP的路由管理中創(chuàng)建第二報(bào)文對(duì)應(yīng)的路由時(shí);將該路由確定為指定路由,并為所述指定路由添加將所述第二報(bào)文攜帶的預(yù)設(shè)迭代標(biāo)簽;后續(xù)可執(zhí)行步驟314。
步驟312、在路由管理中建立第二報(bào)文對(duì)應(yīng)的路由。
當(dāng)VTEP接收到其他VTEP發(fā)送的第二報(bào)文時(shí),可以直接在路由管理中建立所述第二報(bào)文對(duì)應(yīng)的路由。
步驟314、依據(jù)所述第二報(bào)文,確定路由管理中被迭代路由對(duì)應(yīng)的依賴路由。
步驟316、判斷所述依賴路由是否存在預(yù)設(shè)迭代標(biāo)簽,若存在,則執(zhí)行步驟318,;若不存在,則執(zhí)行結(jié)束的步驟。
步驟318、將所述被迭代路由進(jìn)行迭代。
在上述應(yīng)用場(chǎng)景中,可以將所述VTEP中下一跳為NFV設(shè)備的靜態(tài)路由,確定為被迭代路由。在路由管理中建立第二報(bào)文對(duì)應(yīng)的路由后;可以判斷所述第二報(bào)文對(duì)應(yīng)的路由是否是被迭代路由的依賴路由;即判斷所述第二報(bào)文對(duì)應(yīng)的路由的前綴,是否與所述被迭代路由的下一跳的前綴相同;當(dāng)相同時(shí),則將該路由確定為依賴路由;當(dāng)不相同時(shí),則該第二報(bào)文對(duì)應(yīng)的路由不是依賴路由。在確定依賴路由后,不是將被迭代路由直接進(jìn)行路由迭代,而需要根據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽進(jìn)行路由迭代;具體的,可以判斷所述依賴路由是否存在預(yù)設(shè)迭代標(biāo)簽;當(dāng)所述依賴路由存在所述預(yù)設(shè)迭代標(biāo)簽,即確定所述指定路由是所述依賴路由,可以將該被迭代路由進(jìn)行迭代;當(dāng)所述依賴路由不存在所述預(yù)設(shè)迭代標(biāo)簽,即確定所述指定路由不是依賴路由,因此,無需將該靜態(tài)路由進(jìn)行迭代,直接執(zhí)行結(jié)束的步驟即可。
例如,預(yù)先為VTEP2的虛擬服務(wù)實(shí)例的接口配置預(yù)設(shè)迭代標(biāo)簽65532,為VTEP3的虛擬服務(wù)實(shí)例的接口IF12配置預(yù)設(shè)迭代標(biāo)簽65532,當(dāng)NFV1連接到EVPN網(wǎng)絡(luò)時(shí),向VTEP2發(fā)送ARP報(bào)文,VTEP2在路由管理中建立對(duì)應(yīng)指定路由,并添加預(yù)設(shè)迭代標(biāo)簽為65532;則VTEP2上的靜態(tài)路由可以進(jìn)行迭代,從而VTEP2上的靜態(tài)路由被激活;當(dāng)VTEP2將所述ARP發(fā)送至VTEP3上時(shí),VTEP3在路由管理中建立對(duì)應(yīng)的路由,但不為該路由添加預(yù)設(shè)迭代標(biāo)簽65532,因此,VTEP3上的靜態(tài)路由不進(jìn)行路由迭代;從而VTEP3上的靜態(tài)路由沒有被激活。使得VTEP1上只有一條通向主NFV設(shè)備的路由,即只有經(jīng)過VTEP2到達(dá)NFV1設(shè)備的路由,從而VTEP1在向NFV1設(shè)備發(fā)送流量時(shí),不會(huì)造成流量的回環(huán)。而當(dāng)NFV1出現(xiàn)故障時(shí),則NFV2向VTEP3發(fā)送ARP報(bào)文,以通知EVPN網(wǎng)絡(luò)中的其他VTEP,此時(shí),VTEP3的路由管理中建立了帶有預(yù)設(shè)迭代標(biāo)簽65532的指定路由,VTEP3上的靜態(tài)路由可以進(jìn)行迭代,進(jìn)而被激活。
本發(fā)明實(shí)施例應(yīng)用于存在主、備NFV設(shè)備的EVPN中,當(dāng)VTEP接收到NFV設(shè)備發(fā)送的第二報(bào)文時(shí),為該第二報(bào)文封裝所述預(yù)設(shè)迭代標(biāo)簽,并在路由管理建立所述第二報(bào)文對(duì)應(yīng)的路由時(shí),并為所述路由添加預(yù)設(shè)迭代標(biāo)簽;而當(dāng)VTEP的其他接口接收到其他VTEP發(fā)送的第二報(bào)文時(shí),在路由管理建立所述ARP報(bào)文對(duì)應(yīng)的路由時(shí)無需添加所述預(yù)設(shè)迭代標(biāo)簽;從而,VTEP可以根據(jù)預(yù)設(shè)迭代標(biāo)簽對(duì)靜態(tài)路由進(jìn)行迭代,使得VTEP上靜態(tài)路由可以正被迭代到正確的出接口上,因此,在VTEP向NFV設(shè)備發(fā)送流量時(shí),不會(huì)產(chǎn)生流量環(huán)回,減少了流量的浪費(fèi)。
本發(fā)明實(shí)施例對(duì)其中另一種EVPN網(wǎng)絡(luò)的應(yīng)用場(chǎng)景進(jìn)行說明,該應(yīng)用場(chǎng)景是,存在IP核心網(wǎng)絡(luò)和EVPN兩種混合網(wǎng)絡(luò),EVPN網(wǎng)絡(luò)建立BGP鄰居的過程,如圖4所示,圖中VM1、VM2、VM3是分別與VTEP1、VTEP2、VTEP3連接的虛擬機(jī),RR1與RR2均為反射器;VTEP2可以通過出接口IF1,學(xué)習(xí)到目的為VTEP3的路由,也可以通過出接口IF2,通過VTEP1學(xué)習(xí)到與VTEP3的路由屬于同一網(wǎng)段的路由;現(xiàn)有技術(shù)中,當(dāng)VTEP3與VTEP2建立BGP鄰居時(shí),若VTEP3處于正常狀態(tài),則VTEP2將接收的BGP路由的下一跳迭代為IF1,VTEP2可以將流量從IF1發(fā)送至VTEP3上;當(dāng)VTEP3出現(xiàn)故障時(shí),VTEP2將BGP路由的下一跳迭代為IF2,VTEP2將流量從IF2發(fā)送至VTEP1上,即被迭代路由的出接口發(fā)生了改變,由于VTEP3發(fā)生故障,VTEP1無法將流量轉(zhuǎn)發(fā)至VTEP3上,導(dǎo)致了流量的錯(cuò)誤轉(zhuǎn)發(fā)而丟失。因此,本發(fā)明實(shí)施例提出一種應(yīng)用于存在IP核心網(wǎng)絡(luò)和EVPN兩種混合網(wǎng)絡(luò)中,建立BGP鄰居時(shí)的流量保護(hù)方法,以解決上述應(yīng)用場(chǎng)景中流量浪費(fèi)的問題。具體的,參照?qǐng)D4和圖5,針對(duì)應(yīng)用于所述應(yīng)用場(chǎng)景的流量保護(hù)方法進(jìn)行詳細(xì)的說明,具體可以包括如下步驟:
步驟502、VTEP接收第二報(bào)文。
本發(fā)明實(shí)施例為了在依賴路由出接口發(fā)送變化時(shí),不將被迭代路由進(jìn)行迭代,需要VTEP區(qū)分路由管理中的依賴路由,是從目的VTEP學(xué)習(xí)得到的,還是其他VTEP學(xué)習(xí)得到的;因此,本發(fā)明實(shí)施例可以預(yù)先為EVPN網(wǎng)絡(luò)中各VTEP的預(yù)設(shè)環(huán)回口配置預(yù)設(shè)迭代標(biāo)簽,其中,一個(gè)VTEP可以包含多個(gè)環(huán)回接口,可以根據(jù)需求,將其中的一個(gè)或者幾個(gè)環(huán)回接口設(shè)置為預(yù)設(shè)環(huán)回接口,然后為各預(yù)設(shè)環(huán)回接口設(shè)置對(duì)應(yīng)的預(yù)設(shè)迭代標(biāo)簽,每個(gè)預(yù)設(shè)環(huán)回接口設(shè)置的預(yù)設(shè)迭代標(biāo)簽可以相同,也可以不同。具體的配置預(yù)設(shè)迭代標(biāo)簽的方法有多種,例如通過靜態(tài)配置。當(dāng)所述VTEP通過所述的預(yù)設(shè)環(huán)回接口向其他VTEP發(fā)送第二報(bào)文時(shí),將對(duì)應(yīng)的預(yù)設(shè)迭代標(biāo)簽封裝至所述的第二報(bào)文中;而當(dāng)其他VTEP向所述VTEP發(fā)送所述第二報(bào)文時(shí),也將對(duì)應(yīng)的預(yù)設(shè)迭代標(biāo)簽封裝至所述的第二報(bào)文中;因此,當(dāng)所述VTEP接收到其他VTEP發(fā)送的第二報(bào)文中可能攜帶所述預(yù)設(shè)迭代標(biāo)簽,也可能不攜帶預(yù)設(shè)迭代標(biāo)簽。其中,所述第二報(bào)文是協(xié)議報(bào)文,例如IGP報(bào)文。
步驟504、在所述路由管理中建立所述第二報(bào)文對(duì)應(yīng)的路由。
步驟506、判斷所述第二報(bào)文是否攜帶所述預(yù)設(shè)迭代標(biāo)簽,若是,則執(zhí)行步驟508,若否,則執(zhí)行步驟510。
步驟508、將路由管理中所述第二報(bào)文對(duì)應(yīng)的路由確定為指定路由,并為所述指定路由添加所述預(yù)設(shè)迭代標(biāo)簽。
當(dāng)VTEP接收到其他VTEP發(fā)送的所述第二報(bào)文后,對(duì)所述第二報(bào)文進(jìn)行解析;然后在其路由管理中建立所述第二報(bào)文對(duì)應(yīng)的路由;在路由管理中建立所述第二報(bào)文對(duì)應(yīng)的路由后,需要根據(jù)解析后的第二報(bào)文,判斷所述第二報(bào)文中是否攜帶所述預(yù)設(shè)迭代標(biāo)簽;當(dāng)所述第二報(bào)文中攜帶所述預(yù)設(shè)迭代標(biāo)簽,則將路由管理中所述第二報(bào)文對(duì)應(yīng)的路由確定為指定路由,以及為所指定路由添加對(duì)應(yīng)的預(yù)設(shè)迭代標(biāo)簽,即執(zhí)行步驟508;而確定所述第二報(bào)文不攜帶所述預(yù)設(shè)迭代標(biāo)簽,則無需為路由管理中對(duì)應(yīng)的路由添加對(duì)應(yīng)的預(yù)設(shè)迭代標(biāo)簽。例如,如圖4所示,分別為VTEP2預(yù)設(shè)環(huán)回接口地址2.2.2.2/32,配置預(yù)設(shè)迭代標(biāo)簽為65535;VTEP3預(yù)設(shè)環(huán)回接口地址3.3.3.3/32,配置預(yù)設(shè)迭代標(biāo)簽為65535;VTEP3通過3.3.3.3/32向VTEP2發(fā)送第二報(bào)文時(shí),將預(yù)設(shè)迭代標(biāo)簽65535封裝到所述第二報(bào)文中。VTEP2接收到VTEP3發(fā)送的第二報(bào)文后,在路由管理中建立目的為3.3.3.3/32的路由,并添加對(duì)應(yīng)的預(yù)設(shè)迭代標(biāo)簽65535;而VTEP2接收到VTEP1發(fā)送的目的地址為3.3.3.3/24的路由的第二報(bào)文,則在路由管理中建立目的為3.3.3.3/24的路由。
步驟510、隧道端點(diǎn)設(shè)備VTEP接收第一報(bào)文。
本發(fā)明實(shí)施例在路由管理中建立第二報(bào)文對(duì)應(yīng)的路由后,還會(huì)接收到其他VTEP發(fā)送的第一報(bào)文,所述第一報(bào)文是用于建立所述VTEP與其他VTEP之間建立BGP鄰居的報(bào)文,所述第一報(bào)文與上述第二報(bào)文不是同一報(bào)文。
步驟512、依據(jù)所述第一報(bào)文,確定路由管理中被迭代路由對(duì)應(yīng)的依賴路由。
本發(fā)明實(shí)施例在接收到所述第一報(bào)文后,在路由管理中建立所述第一報(bào)文對(duì)應(yīng)的路由,并將所述第一報(bào)文對(duì)應(yīng)的路由確定為被迭代路由;然后在路由管理中查找與所述被迭代路由對(duì)應(yīng)的依賴路由。具體確定依賴路由的步驟可參考上述步驟314,在此不再贅述。
步驟514、判斷所述依賴路由是否存在預(yù)設(shè)迭代標(biāo)簽,若存在,則執(zhí)行步驟516,;若不存在,則執(zhí)行結(jié)束的步驟。
步驟516、將所述被迭代路由進(jìn)行迭代。
步驟514-步驟516具體可參考上述步驟316-步驟318,在此不再贅述。
例如,如圖4所示,首先為VTEP3的預(yù)設(shè)環(huán)回接口3.3.3.3/32配置預(yù)設(shè)迭代標(biāo)簽為65535,并通過該預(yù)設(shè)環(huán)回接口將第二報(bào)文發(fā)送至VTEP2上,VTEP2通過IF1接收到發(fā)送的第二報(bào)文后,在其路由管理中建立一條3.3.3.3/32路由,以及為該路由添加標(biāo)簽65532;VTEP2還可以通過IF1從VTEP1上獲取第二報(bào)文,該第二報(bào)文對(duì)應(yīng)的條路由為3.3.3.3/24,但該路由沒有預(yù)設(shè)迭代標(biāo)簽。VTEP2和VTEP3建立BGP鄰居時(shí),VTEP2接收到VTEP3的第一報(bào)文后,確定與被迭代路由對(duì)應(yīng)的依賴路由為3.3.3.3/32和3.3.3.3/24;當(dāng)VTEP3沒有出現(xiàn)故障時(shí),VTEP2的路由管理中3.3.3.3/32的路由是有效的,由于3.3.3.3/32的路由攜帶預(yù)設(shè)迭代標(biāo)簽65535,此時(shí),VTEP2將被迭代路由的下一跳迭代為出接口IF1;VTEP2可以通過出接口IF1將流量發(fā)送至VTEP3中;當(dāng)VTEP3出現(xiàn)故障時(shí),VTEP2的路由管理中3.3.3.3/32的路由是無效的,而3.3.3.3/24的路由是有效的;由于3.3.3.3/24的路由不攜帶預(yù)設(shè)迭代標(biāo)簽,則VTEP2上的被迭代路由不進(jìn)行迭代,VTEP2不會(huì)將被迭代路由的下一跳迭代成出接口IF2;從而,VTEP2由于沒有去往VTEP3的可達(dá)的下一跳,因此,VTEP2不會(huì)將流量發(fā)送給VTEP3;從而不會(huì)出現(xiàn)由于流量錯(cuò)誤轉(zhuǎn)發(fā)而導(dǎo)致的流量的浪費(fèi)。
本發(fā)明實(shí)施例應(yīng)用于在存在IP核心網(wǎng)絡(luò)和EVPN兩種混合網(wǎng)絡(luò)中,在所述VTEP與其他VTEP在建立BGP鄰居之前,所述VTEP接收到其他VTEP發(fā)送的第二報(bào)文時(shí),在其路由管理中建立第二報(bào)文對(duì)應(yīng)的路由;當(dāng)確定所述第二報(bào)文中是否攜帶所述預(yù)設(shè)迭代標(biāo)簽,則確定所述第二報(bào)文對(duì)應(yīng)的路由為指定路由,并在為路由管理中為所述指定路由添加所述預(yù)設(shè)迭代標(biāo)簽;從而,在所述VTEP與其他VTEP在建立BGP鄰居時(shí),接收到其他VTEP的第一報(bào)文后,當(dāng)確定所述第一報(bào)文對(duì)應(yīng)的路由的依賴路由是所述指定路由時(shí),將所述第一報(bào)文對(duì)應(yīng)的路由進(jìn)行迭代;當(dāng)確定所述第一報(bào)文對(duì)應(yīng)的路由的依賴路由不是所述指定路由時(shí),則不將所述第一報(bào)文對(duì)應(yīng)的路由進(jìn)行迭代。從而,VTEP可以將被迭代路由迭代到正確的出接口上;當(dāng)目的設(shè)備VTEP出現(xiàn)故障時(shí),所述VTEP不向其發(fā)送流量,從而不會(huì)導(dǎo)致流量的錯(cuò)誤轉(zhuǎn)發(fā),減少了流量的浪費(fèi)。
在上述實(shí)施例的基礎(chǔ)上,本實(shí)施還提供了一種流量保護(hù)裝置,以保證流量保護(hù)方法的實(shí)施。
參照?qǐng)D6,示出了本發(fā)明一種流量保護(hù)裝置實(shí)施例的結(jié)構(gòu)框圖,所述的裝置應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中的VTEP上,具體可以包括如下模塊:報(bào)文接收模塊602、依賴路由確定模塊604和路由迭代模塊606,其中,
報(bào)文接收模塊602,用于接收第一報(bào)文。
報(bào)文解析模塊604,用于依據(jù)所述第一報(bào)文,確定路由管理中被迭代路由對(duì)應(yīng)的依賴路由。
路由迭代模塊606,用于依據(jù)所述依賴路由的預(yù)設(shè)迭代標(biāo)簽,將所述被迭代路由進(jìn)行迭代。
參照?qǐng)D7,在圖6的基礎(chǔ)上,對(duì)上述裝置的模塊所包含的子模塊,以及上述裝置還包括的模塊進(jìn)行說明。
本發(fā)明實(shí)施例所述的裝置包括:報(bào)文接收模塊702、依賴路由確定模塊704和路由迭代模塊706,上述已經(jīng)論述,在此不再贅述,所述的裝置還包括:標(biāo)簽添加模塊708、指定路由確定模塊710和報(bào)文封裝模塊712,其中,
標(biāo)簽添加模塊708,用于在所述路由管理中為指定路由添加所述預(yù)設(shè)迭代標(biāo)簽,其中,當(dāng)所述指定路由與所述被迭代路由對(duì)應(yīng)時(shí),所述指定路由為所述依賴路由。
指定路由確定模塊710,用于當(dāng)?shù)诙?bào)文中攜帶所述預(yù)設(shè)迭代標(biāo)簽時(shí),將所述路由管理中所述第二報(bào)文對(duì)應(yīng)的路由確定為所述指定路由。
報(bào)文封裝模塊712,用于在接收或發(fā)送所述第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
本發(fā)明實(shí)施例中所述報(bào)文封裝模塊712,還用于若所述EVPN網(wǎng)絡(luò)中存在NFV設(shè)備,則在所述VTEP接收所述NFV設(shè)備發(fā)送的第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中;或者,若所述EVPN網(wǎng)絡(luò)中建立邊界路由協(xié)議BGP鄰居,則在所述VTEP向其他VTEP發(fā)送所述第二報(bào)文時(shí),將所述預(yù)設(shè)迭代標(biāo)簽封裝至所述第二報(bào)文中。
本發(fā)明實(shí)施例應(yīng)用于以太網(wǎng)虛擬專用網(wǎng)絡(luò)EVPN中,隧道端點(diǎn)設(shè)備VTEP接收到第一報(bào)文后,根據(jù)所述第一報(bào)文,確定路由管理中與被迭代路由對(duì)應(yīng)的依賴路由;再依據(jù)依賴路由的預(yù)設(shè)迭代標(biāo)簽,將被迭代路由進(jìn)行迭代;從而VTEP可以依據(jù)預(yù)設(shè)迭代標(biāo)簽進(jìn)行路由迭代到正確的出接口上;從而流量可以通過正確的出接口轉(zhuǎn)發(fā),減少了流量轉(zhuǎn)發(fā)過程中流量的浪費(fèi)。
對(duì)于裝置實(shí)施例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。
本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。
本領(lǐng)域內(nèi)的技術(shù)人員應(yīng)明白,本發(fā)明實(shí)施例的實(shí)施例可提供為方法、裝置、或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明實(shí)施例可采用完全硬件實(shí)施例、完全軟件實(shí)施例、或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本發(fā)明實(shí)施例可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、CD-ROM、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本發(fā)明實(shí)施例是參照根據(jù)本發(fā)明實(shí)施例的方法、終端設(shè)備(系統(tǒng))、和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或方框圖來描述的。應(yīng)理解可由計(jì)算機(jī)程序指令實(shí)現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結(jié)合。可提供這些計(jì)算機(jī)程序指令到通用計(jì)算機(jī)、專用計(jì)算機(jī)、嵌入式處理機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器以產(chǎn)生一個(gè)機(jī)器,使得通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備的處理器執(zhí)行的指令產(chǎn)生用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的裝置。
這些計(jì)算機(jī)程序指令也可存儲(chǔ)在能引導(dǎo)計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備以特定方式工作的計(jì)算機(jī)可讀存儲(chǔ)器中,使得存儲(chǔ)在該計(jì)算機(jī)可讀存儲(chǔ)器中的指令產(chǎn)生包括指令裝置的制造品,該指令裝置實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能。
這些計(jì)算機(jī)程序指令也可裝載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理終端設(shè)備上,使得在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,從而在計(jì)算機(jī)或其他可編程終端設(shè)備上執(zhí)行的指令提供用于實(shí)現(xiàn)在流程圖一個(gè)流程或多個(gè)流程和/或方框圖一個(gè)方框或多個(gè)方框中指定的功能的步驟。
盡管已描述了本發(fā)明實(shí)施例的優(yōu)選實(shí)施例,但本領(lǐng)域內(nèi)的技術(shù)人員一旦得知了基本創(chuàng)造性概念,則可對(duì)這些實(shí)施例做出另外的變更和修改。所以,所附權(quán)利要求意欲解釋為包括優(yōu)選實(shí)施例以及落入本發(fā)明實(shí)施例范圍的所有變更和修改。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者終端設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者終端設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者終端設(shè)備中還存在另外的相同要素。
以上對(duì)本發(fā)明所提供的一種流量保護(hù)方法和一種流量保護(hù)裝置,進(jìn)行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。