作出轉(zhuǎn)發(fā)決策。跟一個(gè)特定的VPLS服務(wù)關(guān)聯(lián)的每個(gè)PE都為該VPLS建立一個(gè)VSI,每個(gè)VSI維護(hù)一張MAC地址表,并具有泛洪和轉(zhuǎn)發(fā)、MAC地址學(xué)習(xí)和老化的功能,以便實(shí)現(xiàn)報(bào)文的轉(zhuǎn)發(fā)。
[0032]下面以圖1所示的系統(tǒng)架構(gòu)為例,詳細(xì)說明通過該系統(tǒng)轉(zhuǎn)發(fā)數(shù)據(jù)業(yè)務(wù)的過程。
[0033]在本發(fā)明實(shí)施例中,VPLS的報(bào)文轉(zhuǎn)發(fā)是通過查找VSI的MAC地址來完成的。如果PE從MTU接收到UE-1 (為方便說明,將該UE-1的MAC地址記作MAC-1)發(fā)送到UE-3(為方便說明,將該UE-3的MAC地址記作MAC-3)的報(bào)文,該P(yáng)E首先從接收該報(bào)文的偽線學(xué)習(xí)到發(fā)端口號(hào)所對(duì)應(yīng)的UE-1的MAC地址(S卩,MAC-1),并記錄到自己的MAC地址表中。然后,該P(yáng)E根據(jù)UE-3的MAC地址(S卩,MAC-3),在MAC地址表中查找是否有保存。若該MAC地址表中保存有該MAC-3,則根據(jù)MAC-3所對(duì)應(yīng)的端口轉(zhuǎn)發(fā)報(bào)文;若該MAC地址表中未保存MAC-3,則通過偽線向該P(yáng)E所連接的其他PE轉(zhuǎn)發(fā)該報(bào)文,8卩,向所有端口廣播出去,直到接收到UE-3的回應(yīng),再從轉(zhuǎn)發(fā)該回應(yīng)的偽線上學(xué)習(xí)該端口號(hào),將該端口號(hào)與該目的MAC地址進(jìn)行關(guān)聯(lián),并保存在MAC地址表中。
[0034]在本發(fā)明實(shí)施例中,UE(包括UE-l、UE-2和UE-3)為處于不同區(qū)域的設(shè)備,UE-1和UE-2處于同一區(qū)域,共用同一局域網(wǎng),UE-3處于另一區(qū)域,UE-l、UE-2和UE-3處于同一虛擬局域網(wǎng)中,通過VPLS進(jìn)行通信。
[0035]當(dāng)UE-1需要向UE-3傳輸數(shù)據(jù)時(shí),首先需要接入MTU,然后通過MTU向PE轉(zhuǎn)發(fā)。MTU可以通過鏈路#1 131與PE-1連接,通過鏈路#2 132與PE-2連接。作為示例而非限定,將該鏈路#2 132確定為主用鏈路,鏈路#1 131確定為備用鏈路,也就是說,當(dāng)MTU接收到需要轉(zhuǎn)發(fā)的業(yè)務(wù)時(shí),優(yōu)先選擇鏈路#2 132來將該業(yè)務(wù)轉(zhuǎn)發(fā)給對(duì)端的PE-2。具體來說,當(dāng)MTU接收到業(yè)務(wù)時(shí),可以根據(jù)該業(yè)務(wù)的類型選擇相應(yīng)的業(yè)務(wù)路徑,例如,虛擬租用線路(Virtual LeasedLine,簡稱“VLL” ),再通過相應(yīng)業(yè)務(wù)路徑的偽線將業(yè)務(wù)轉(zhuǎn)發(fā)到PE_2,更具體地,通過相應(yīng)偽線將業(yè)務(wù)轉(zhuǎn)發(fā)到PE-2中對(duì)應(yīng)業(yè)務(wù)的VSI。
[0036]需要說明的是,配置于MTU和PE(包括PE-1和PE-2)之間的每一條物理鏈路都可以包括多條偽線,而核心側(cè)的每兩臺(tái)PE之間分別通過一條偽線連接。MTU中的VLL對(duì)應(yīng)不同的業(yè)務(wù),也就是說,在同一臺(tái)MTU的同一個(gè)物理端口下,可以對(duì)應(yīng)有多個(gè)VLL,多個(gè)VLL通過對(duì)應(yīng)業(yè)務(wù)的偽線接入一個(gè)VSI,由VSI將VLL所承載的業(yè)務(wù)通過偽線轉(zhuǎn)發(fā)到對(duì)端。當(dāng)MTU和接入MTU的端口號(hào)確定,或者,PE和接入PE的端口號(hào)確定時(shí),便可以確定配置于MTU和PE之間的鏈路,以及對(duì)端的PE和MTU。換句話說,每一個(gè)設(shè)備的物理端口和對(duì)端設(shè)備的物理端口具有——對(duì)應(yīng)關(guān)系。作為示例而非限定,MTU通過端口 #1與PE-1的端口 #2連接,通過端口 3#與PE-2的端口 4#連接,端口 #1與#2及其之間的鏈路為鏈路#1,端口 3#與4#及其之間的鏈路為鏈路#2。
[0037]應(yīng)理解,以上列舉的鏈路#1、鏈路#2以及主用鏈路和備用鏈路均為示例性說明,不應(yīng)對(duì)本發(fā)明構(gòu)成任何限定,本發(fā)明也可以不限定主用和備用的鏈路,在接收到數(shù)據(jù)業(yè)務(wù)時(shí),通過當(dāng)前的網(wǎng)絡(luò)配置選擇一條鏈路轉(zhuǎn)發(fā)數(shù)據(jù)業(yè)務(wù),本發(fā)明對(duì)此并未特別限定。
[0038]在本發(fā)明實(shí)施例中,當(dāng)MTU接收到業(yè)務(wù)時(shí),首先需要對(duì)用于轉(zhuǎn)發(fā)該業(yè)務(wù)的主用鏈路(例如,第一鏈路)進(jìn)行檢測,以確定該鏈路通暢,可以用于轉(zhuǎn)發(fā)該業(yè)務(wù)。該鏈路檢測可以通過配置在MTU中的裝置或檢測模塊通過鏈路檢測機(jī)制(例如,雙向轉(zhuǎn)發(fā)檢測,(Bidirect1nal Forwarding Detect1n,簡稱“BFD”)協(xié)議)來執(zhí)行。應(yīng)理解,鏈路檢測機(jī)制為現(xiàn)有技術(shù)中的通用手段,本發(fā)明對(duì)此并未特別限定,所有用于檢測兩個(gè)轉(zhuǎn)發(fā)點(diǎn)之間故障的網(wǎng)絡(luò)協(xié)議或者機(jī)制,都適用本發(fā)明的用于傳輸報(bào)文的方法。
[0039]當(dāng)MTU通過鏈路檢測機(jī)制確定用于轉(zhuǎn)發(fā)業(yè)務(wù)的主用鏈路(例如,鏈路#2)發(fā)生故障,無法正常傳輸?shù)臅r(shí)候,就會(huì)通過備用鏈路(例如,鏈路#1)來傳輸業(yè)務(wù)。為了避免從對(duì)端的用戶設(shè)備(例如,UE-3)發(fā)送給UE-1或UE-2的業(yè)務(wù)被轉(zhuǎn)發(fā)至PE-2,而導(dǎo)致UE-1或UE-2無法正常接收,或者接收延遲,MTU會(huì)根據(jù)檢測到的鏈路故障向PE-1發(fā)送MAC地址回收?qǐng)?bào)文,以通知PE-2清除其所保存的與PE-2相關(guān)的MAC地址表項(xiàng),并通過PE-1將該MAC地址回收?qǐng)?bào)文廣播發(fā)送給與PE-1連接著的其他PE,例如,圖1中所示的PE-2、PE-3和PE-4。從而避免了該網(wǎng)絡(luò)內(nèi)的每一臺(tái)可以正常通信的PE將接收到的業(yè)務(wù)轉(zhuǎn)發(fā)至PE-2而可能造成的業(yè)務(wù)丟失或者延遲。
[0040]在本發(fā)明實(shí)施例中,由于MTU并不限于針對(duì)這一條業(yè)務(wù)進(jìn)行業(yè)務(wù)轉(zhuǎn)發(fā),同時(shí)還為其他多臺(tái)用戶設(shè)備服務(wù),而每收到一次用戶設(shè)備發(fā)來的業(yè)務(wù)時(shí),都需要通過鏈路檢測機(jī)制去檢測主用鏈路是否故障,并通過MTU發(fā)送MAC地址回收?qǐng)?bào)文,再通過PE-1廣播出去。假設(shè)該備用鏈路中包含了 10條偽線,如果每一條偽線都被發(fā)起一次業(yè)務(wù)轉(zhuǎn)發(fā),則該MTU就會(huì)基于每一次業(yè)務(wù)轉(zhuǎn)發(fā)作一次鏈路檢測,并生成一條MAC地址回收?qǐng)?bào)文,將每一條MAC地址回收?qǐng)?bào)文發(fā)送至PE-1。也就是說,同一條MAC地址回收?qǐng)?bào)文在短時(shí)間內(nèi)可能會(huì)被轉(zhuǎn)發(fā)至PE-1 10次。然后該P(yáng)E-1在每接收到一次該MAC地址回收?qǐng)?bào)文都會(huì)向PE-2、PE-3和PE-4廣播一次該MAC地址回收?qǐng)?bào)文,接收到1次也就會(huì)廣播1次,以此類推。
[0041 ]在本發(fā)明實(shí)施例中,由于一臺(tái)PE連接至少一臺(tái)MTU,該P(yáng)E-1除了接收到上述MTU(為方便理解和區(qū)分,記作第一 MTU)所發(fā)送的MAC地址回收?qǐng)?bào)文之外,還有可能接收到其他MTU(為方便理解和區(qū)分,記作第二 MTU)發(fā)送的MAC地址回收?qǐng)?bào)文(為方便理解和區(qū)分,記作第三MAC地址回收?qǐng)?bào)文),以通知PE-1配置在第二MTU和該第二MTU連接的另一臺(tái)PE(為方便理解和區(qū)分,記作PE-5)之間的鏈路發(fā)生故障,需要清除關(guān)于第二MTU和PE-5間的偽線所對(duì)應(yīng)的MAC地址表項(xiàng)。該P(yáng)E-1在接收到第三MAC地址回收?qǐng)?bào)文后,也會(huì)向與第三PE (包括上述PE-2、PE-3、PE-4、PE-5)廣播該第三MAC地址回收?qǐng)?bào)文。
[0042]由此可以看出,PE在每一次接收到MTU(包括第一MTU和第二MTU)發(fā)送的MAC地址回收?qǐng)?bào)文(包括第一 MAC地址回收?qǐng)?bào)文、第二 MAC地址回收?qǐng)?bào)文和第三MAC地址回收?qǐng)?bào)文)后,都會(huì)廣播一次。因此,就會(huì)造成很多不必要的廣播,引起泛洪。
[0043]應(yīng)注意,每一臺(tái)PE基于接收到的MAC地址回收?qǐng)?bào)文,清除其相應(yīng)的MAC地址表項(xiàng)時(shí),可以只清除與故障鏈路相關(guān)的MAC地址表項(xiàng),也可以清除MAC地址表中的所有MAC地址表項(xiàng),除了從接收該MAC地址回收?qǐng)?bào)文的偽線所學(xué)習(xí)到的MAC地址表項(xiàng),以便于在下次接收到轉(zhuǎn)發(fā)業(yè)務(wù)時(shí),能夠通過該MAC地址表查找到相應(yīng)的下一跳設(shè)備。應(yīng)理解,MAC地址回收與現(xiàn)有技術(shù)中的方法相同,本發(fā)明對(duì)此并未特別限定。
[0044]還應(yīng)理解,以上列舉的MTU(包括MTU-1和MTU-2)、PE (包括PE-1、PE-2、PE-3、PE-^PPE-5)、UE(包括UE-UUE-2和UE-3)及其連接關(guān)系僅為示例性說明,本發(fā)明對(duì)此并未特別限定。
[0045]以下仍以圖1所示的系統(tǒng)架構(gòu)為例,結(jié)合圖2,詳細(xì)說明本發(fā)明實(shí)施例的用于傳輸報(bào)文的方法。
[0046]圖2示出了從PE的角度描述的根據(jù)本發(fā)明實(shí)施例的用于傳輸報(bào)文的方法200的示意性流程圖。如圖2所示,該方法200包括:
[0047]S210,第一運(yùn)營商邊緣設(shè)備PE在第一時(shí)段接收匯聚設(shè)備MTU發(fā)送的第一故障指示報(bào)文,該第一故障指示報(bào)文的鏈路標(biāo)識(shí)字段攜帶第一鏈路的鏈路標(biāo)識(shí),該第一故障指示報(bào)文用于指示該第一鏈路發(fā)生故障,該第一鏈路配置在該MTU與第二PE之間;
[0048]S220,該第一 PE向第三PE發(fā)送該第一故障指示報(bào)文,以使該第三PE在接收到需要發(fā)送至該第二 PE的數(shù)據(jù)報(bào)文時(shí),根據(jù)該第一故障指示報(bào)文,將該數(shù)據(jù)報(bào)文傳輸至該第一 PE;
[0049]S230,該第一 PE在第二時(shí)段接收該MTU發(fā)送的第二故障指示報(bào)文,并在確定該第二故障指示報(bào)文的鏈路標(biāo)識(shí)字段攜帶該第一鏈路的鏈路標(biāo)識(shí)時(shí),禁止發(fā)送該第二故障指示報(bào)文,該第二時(shí)段處于該第一時(shí)段之后。
[0050]應(yīng)理解,該第一 PE可以對(duì)應(yīng)于圖1中所示的PE-1 121,該第二 PE可以對(duì)應(yīng)于圖1中所示的PE-2 122,該MTU可以對(duì)應(yīng)于圖1中的MTU 110,該第一鏈路可以對(duì)應(yīng)于圖1中的鏈路#2 132ο
[0051]在本發(fā)明實(shí)施例中,作為示例而非限定,第一故障指示報(bào)文可以為第一MAC地址回收?qǐng)?bào)文,第二故障指示報(bào)文可以為第二 MAC地址回收?qǐng)?bào)文。具體而言,MTU在接收到用戶設(shè)備(例如,圖1中的UE-1)發(fā)送的業(yè)務(wù)時(shí),會(huì)將該業(yè)務(wù)轉(zhuǎn)發(fā)到核心側(cè)設(shè)備PE JTU在轉(zhuǎn)發(fā)之前會(huì)通過鏈路檢測機(jī)制檢測主用鏈路(或者說,第一鏈路,例如,圖1中的鏈路#2 132)是否正常通信,若檢測到該鏈路#2( S卩,第一鏈路的一例)中斷,則該MTU會(huì)將原本要發(fā)送到鏈路#2對(duì)端的PE-2的數(shù)據(jù)報(bào)文轉(zhuǎn)發(fā)給備用鏈路(或者說,第二鏈路,例如,圖1中的鏈路#1)對(duì)端的PE-1(即,第一PE的一例)。同時(shí),MTU通過承載在鏈路#I (即,第二鏈路的一例)中的與該業(yè)務(wù)相對(duì)應(yīng)的偽線向PE-1發(fā)送MAC地址回收?qǐng)?bào)文。
[0052]在S210中,該MTU在第一時(shí)段接收到用戶發(fā)起的業(yè)務(wù)請(qǐng)求后,可以根據(jù)該業(yè)務(wù)請(qǐng)求的業(yè)務(wù)類型,通過鏈路檢測機(jī)制檢測用于傳輸該業(yè)務(wù)的鏈路(例如,第一鏈路)是否正常通信。若檢測到該鏈路故障,則該MTU可以根據(jù)該鏈路檢測機(jī)制所生成的故障源信息,生成MAC地址回收?qǐng)?bào)文(為方便區(qū)分和理解,記作第一 MAC地址回收?qǐng)?bào)文),該第一 MAC地址回收?qǐng)?bào)文中具有鏈路標(biāo)識(shí)字段,該鏈路標(biāo)識(shí)字段用于標(biāo)識(shí)發(fā)生故障的鏈路,例如,配置在MTU與第二PE (例如,圖1中所示的PE-2)之間的第一鏈路(例如,上述鏈路#2)發(fā)生故障。
[0053]具體