多協(xié)議標(biāo)簽交換網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法和裝置制造方法
【專利摘要】本發(fā)明實施方式提出多協(xié)議標(biāo)簽交換(MPLS)網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法和裝置。該方法應(yīng)用于提供商邊緣設(shè)備(PE),包括:針對虛擬專用網(wǎng)絡(luò)(VPN)的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié)果確定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表;接收該VPN中的用戶邊緣設(shè)備(CE)發(fā)送的報文,從所述報文中提取前綴,檢索所述轉(zhuǎn)發(fā)表以確定對應(yīng)于所提取的前綴的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)所述報文。
【專利說明】多協(xié)議標(biāo)簽交換網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法和裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明實施方式屬于網(wǎng)絡(luò)通信【技術(shù)領(lǐng)域】,特別是多協(xié)議標(biāo)簽交換(Multiprotocol Label Switching,MPLS)網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法和裝置。
【背景技術(shù)】
[0002] MPLS是目前廣泛應(yīng)用的一種骨干網(wǎng)技術(shù)。MPLS在無連接的IP網(wǎng)絡(luò)上引入面向 連接的標(biāo)簽交換概念,將第三層路由技術(shù)和第二層交換技術(shù)相結(jié)合,充分發(fā)揮了 IP路由 的靈活性和二層交換的簡潔性。在MPLS網(wǎng)絡(luò)中,設(shè)備根據(jù)短而定長的標(biāo)簽轉(zhuǎn)發(fā)報文,省去 了查找IP路由表的繁瑣過程,為數(shù)據(jù)在骨干網(wǎng)絡(luò)中的傳送提供了一種高速高效的方式, 同時MPLS支持多層標(biāo)簽和面向連接的特點,使能其在虛擬專用網(wǎng)絡(luò)(Virtual Private Network, VPN)、服務(wù)質(zhì)量(Quality of Service, QoS)等方面得到廣泛的應(yīng)用,并且因為 其良好的的擴(kuò)展性,使得在統(tǒng)一的MPLS/IP基礎(chǔ)網(wǎng)絡(luò)架構(gòu)中上為客戶提供各類服務(wù)成為可 能,從而使得MPLS日益成為大規(guī)模網(wǎng)絡(luò)應(yīng)用的基礎(chǔ)。
[0003] MPLS三層虛擬專用網(wǎng)絡(luò)(L3VPN)和虛擬專用局域網(wǎng)服務(wù)(Virtual Private LAN Service,VPLS)是MPLS網(wǎng)絡(luò)中典型的應(yīng)用,由于組網(wǎng)方式靈活,能夠?qū)崿F(xiàn)通過服務(wù)提供商 的骨干網(wǎng)連接屬于同一個VPN、位于不同地理位置的用戶站點,并且可擴(kuò)展性好,并能夠方 便地支持MPLS QoS和MPLS流量工程(TE),因此得到了廣泛應(yīng)用。
[0004] 在現(xiàn)有技術(shù)中,只能在轉(zhuǎn)發(fā)芯片支持等價負(fù)載分擔(dān)的設(shè)備上實現(xiàn)VPN內(nèi)等價負(fù)載 分擔(dān)功能。如果設(shè)備的轉(zhuǎn)發(fā)芯片不支持等價負(fù)載分擔(dān)功能或轉(zhuǎn)發(fā)芯片的等價資源不足,就 不能實現(xiàn)VPN內(nèi)的等價負(fù)載分擔(dān)的功能,從而在有等價組網(wǎng)中不能充分利用等價轉(zhuǎn)發(fā)路徑 的帶寬(即各條等價轉(zhuǎn)發(fā)路徑帶寬的總和),這就顯著浪費了帶寬資源。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明實施方式提出一種MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法和裝置,從而充 分利用組網(wǎng)中的鏈路帶寬。
[0006] 本發(fā)明實施方式的技術(shù)方案如下:
[0007] 本發(fā)明實施方式的一方面,提供了一種MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法,所 述方法應(yīng)用于提供商邊緣設(shè)備(PE),該方法包括:
[0008] 針對VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié)果確定與該前 綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表;
[0009] 接收該VPN中的用戶邊緣設(shè)備(CE)發(fā)送的報文,從所述報文中提取前綴,檢索所 述轉(zhuǎn)發(fā)表以確定對應(yīng)于所述前綴的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)所述 報文。
[0010] 優(yōu)選地,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載。
[0011] 優(yōu)選地,所述針對VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié) 果確定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑包括:
[0012] 將每條前綴作為Key,分別計算哈希運算結(jié)果HashKey,其中
[0013] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&0XFF);其中》為右移符號;
[0014] 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其 中:
[0015] Index = HashKey% η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符。
[0016] 優(yōu)選地,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑非均衡分擔(dān)負(fù)載。
[0017] 優(yōu)選地,所述針對VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié) 果確定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑包括:
[0018] 將每條前綴作為鍵(Key),分別計算哈希運算結(jié)果(HashKey),其中:
[0019] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&0XFF);其中》為右移符號;
[0020] 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其 中:
[0021] Index = (Table (HashKey% m)) % η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符; 所述m為各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比例之和;所述Table為映射函數(shù),其中該映射函數(shù) 的輸入為HashKey% m,該映射函數(shù)的輸出結(jié)果呈現(xiàn)比例符合所述各條等價轉(zhuǎn)發(fā)路徑的負(fù) 載分擔(dān)比例。
[0022] 優(yōu)選地,所述VPN為三層L3VPN,所述從報文中提取前綴包括:從報文中提取目的 IP地址。
[0023] 優(yōu)選地,所述VPN為虛擬專用局域網(wǎng)服務(wù)VPLS網(wǎng)絡(luò),所述從報文中提取前綴包括: 從報文中提取目的媒體訪問控制MAC地址。
[0024] 本發(fā)明實施方式的另一方面,提供了一種MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的裝置, 所述裝置應(yīng)用于PE,該裝置包括:
[0025] 轉(zhuǎn)發(fā)表建立模塊,用于針對虛擬專用網(wǎng)絡(luò)VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希 運算,基于哈希運算結(jié)果確定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng) 的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表;
[0026] 報文轉(zhuǎn)發(fā)模塊,用于接收該VPN中的用戶邊緣設(shè)備CE發(fā)送的報文,從所述報文中 提取前綴,檢索所述轉(zhuǎn)發(fā)表以確定對應(yīng)于所述前綴的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價 轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)所述報文。
[0027] 優(yōu)選地,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載。
[0028] 優(yōu)選地,轉(zhuǎn)發(fā)表建立模塊,用于將每條前綴作為鍵(Key),分別計算哈希運算結(jié)果 (HashKey),其中:
[0029] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&0XFF);其中》為右移符號;
[0030] 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其 中:
[0031] Index = HashKey% η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符。
[0032] 優(yōu)選地,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑非均衡分擔(dān)負(fù)載。
[0033] 優(yōu)選地,轉(zhuǎn)發(fā)表建立模塊,用于將每條前綴作為Key,分別計算哈希運算結(jié)果 HashKey,其中
[0034] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&0XFF);其中》為右移符號;
[0035] 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其 中:
[0036] Index = (Table (HashKey% m)) % η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符; 所述m為各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比例之和;所述Table為映射函數(shù),其中該映射函數(shù) 的輸入為HashKey% m ;該映射函數(shù)的輸出結(jié)果呈現(xiàn)比例符合所述各條等價轉(zhuǎn)發(fā)路徑的負(fù) 載分擔(dān)比例。
[0037] 由此可見,應(yīng)用本發(fā)明實施方式之后,通過對轉(zhuǎn)發(fā)表項的前綴進(jìn)行哈希運算,可以 根據(jù)哈希結(jié)果值選擇不同的等價轉(zhuǎn)發(fā)路徑,實現(xiàn)了 VPN內(nèi)均衡負(fù)載分擔(dān)和非均衡負(fù)載分擔(dān) 的功能,從而充分利用了組網(wǎng)中的鏈路帶寬,并節(jié)約了系統(tǒng)資源。
【專利附圖】
【附圖說明】
[0038] 圖1為MPLS VPN組網(wǎng)的示范性結(jié)構(gòu)圖;
[0039] 圖2為根據(jù)本發(fā)明一實施方式的MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法流程圖;
[0040] 圖3為根據(jù)本發(fā)明一實施方式的MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的裝置結(jié)構(gòu)圖。
【具體實施方式】
[0041] 為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面結(jié)合附圖對本發(fā)明作進(jìn)一步 的詳細(xì)描述。
[0042] 在基于MPLS的VPN(稱為MPLS VPN)中,通過標(biāo)簽交換路徑(Label Swiching Path,LSP)將私有網(wǎng)絡(luò)的不同分支聯(lián)結(jié)起來,形成一個統(tǒng)一的網(wǎng)絡(luò)。
[0043] MPLS VPN組網(wǎng)通常包括如下實體:
[0044] (1)、用戶邊緣設(shè)備(Customer Edge, CE),既可以是路由器,也可以是交換機(jī)或主 機(jī)。
[0045] (2)、服務(wù)提供商邊緣設(shè)備(Provider Edge,PE),是服務(wù)商提供的邊緣路由器,位 于骨干網(wǎng)絡(luò)。
[0046] (3)、服務(wù)提供商設(shè)備(Provider,P),是服務(wù)提供商網(wǎng)絡(luò)中的骨干路由器。P設(shè)備 不與CE直接相連,而且只具備基本MPLS轉(zhuǎn)發(fā)能力??梢詫⑵渑渲脼镸-BGP的路由反射器, 不維護(hù)VPN信息。
[0047] 圖1為MPLS VPN組網(wǎng)的示范性結(jié)構(gòu)圖。
[0048] 如圖1所示,該組網(wǎng)包括PE1、PE2設(shè)備和P設(shè)備。在PE1和PE2上均配置有VPN A, 用戶邊緣設(shè)備(CE)1和CE2分別通過VPN A連接到PE1和PE2。從CE1發(fā)送到CE2的報文需 要經(jīng)過VPN A進(jìn)行轉(zhuǎn)發(fā),從CE1到CE2的等價轉(zhuǎn)發(fā)路徑集包括等價轉(zhuǎn)發(fā)路徑一(PE1-P-PE2) 和等價轉(zhuǎn)發(fā)路徑二(PE1-PE2)
[0049] 在現(xiàn)有技術(shù)中,如果PE1的報文轉(zhuǎn)發(fā)芯片不支持等價負(fù)載分擔(dān)功能,即使從CE1到 CE2的等價轉(zhuǎn)發(fā)路徑實際上有多條,PE設(shè)備也只會從中選擇固定的一條作為報文的等價轉(zhuǎn) 發(fā)路徑,而不能基于報文的內(nèi)容選擇不同的等價轉(zhuǎn)發(fā)路徑。比如,對于從CE1發(fā)送來的報 文,PE1基于預(yù)定規(guī)則從等價轉(zhuǎn)發(fā)路徑一或者等價轉(zhuǎn)發(fā)路徑二中選擇出一條固定的等價轉(zhuǎn) 發(fā)路徑,并通過該固定的等價轉(zhuǎn)發(fā)路徑將報文轉(zhuǎn)發(fā)到PE2。如果從CE1發(fā)送來的報文流量較 大(比如超過等價轉(zhuǎn)發(fā)路徑一和等價轉(zhuǎn)發(fā)路徑二中的帶寬較大者),該選中的固定等價轉(zhuǎn) 發(fā)路徑的帶寬不夠,從而導(dǎo)致報文擁塞和掉包。
[0050] 在本發(fā)明中,可以充分利用多條等價轉(zhuǎn)發(fā)路徑的帶寬,根據(jù)報文本身的負(fù)載不同 選擇相應(yīng)的等價轉(zhuǎn)發(fā)路徑進(jìn)行轉(zhuǎn)發(fā),從而充分利用組網(wǎng)的鏈路帶寬,節(jié)約系統(tǒng)資源,并且避 免報文擁塞和掉包。
[0051] 圖2為根據(jù)本發(fā)明一實施方式的MPLS網(wǎng)絡(luò)中確定報文等價轉(zhuǎn)發(fā)路徑的方法流程 圖。該方法應(yīng)用于PE。
[0052] 如圖2所示,該方法包括:
[0053] 步驟201 :針對VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié)果確 定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表。
[0054] 在這里,PE學(xué)習(xí) VPN的轉(zhuǎn)發(fā)表項,轉(zhuǎn)發(fā)表項包括前綴以及等價轉(zhuǎn)發(fā)路徑集,其中等 價轉(zhuǎn)發(fā)路徑集中包括有多條等價轉(zhuǎn)發(fā)路徑。當(dāng)VPN為VPLS網(wǎng)絡(luò)時,轉(zhuǎn)發(fā)表項中的前綴為目 的MAC(DMAC)地址;當(dāng)VPN為三層L3VPN時,轉(zhuǎn)發(fā)表項中的前綴具體為目的IP(DIP)地址。
[0055] PE學(xué)習(xí) VPN的轉(zhuǎn)發(fā)表項以及轉(zhuǎn)發(fā)表項的具體內(nèi)容屬于本領(lǐng)域現(xiàn)有技術(shù),對此不再 贅述。
[0056] 而且,PE針對轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,并基于哈希運算結(jié)果確定與 該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表。
[0057] 比如:當(dāng)VPN為VPLS網(wǎng)絡(luò)時,PE針對轉(zhuǎn)發(fā)表項中的每條DMAC地址執(zhí)行哈希運算, 基于哈希運算結(jié)果確定與該DMAC地址相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含DMAC地址與相 對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表。
[0058] 再比如,當(dāng)VPN為三層L3VPN時,PE針對轉(zhuǎn)發(fā)表項中的每條DIP地址執(zhí)行哈希運 算,基于哈希運算結(jié)果確定與該DIP地址相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含DIP地址與相 對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表。
[0059] 在一個實施方式中:轉(zhuǎn)發(fā)表中的各條等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載。也就是說,轉(zhuǎn)發(fā) 表中每條等價轉(zhuǎn)發(fā)路徑所負(fù)責(zé)分擔(dān)的負(fù)載都是相同的。
[0060] 可以基于各種哈希算法實現(xiàn)等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載。比如,可以將轉(zhuǎn)發(fā)表中 的每條前綴作為鍵(Key),分別計算哈希運算結(jié)果HashKey,其中:
[0061] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&0XFF);其中》為右移符號;
[0062] 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號(Index),其 中:
[0063] Index = HashKey% η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符。
[0064] 以上給出了等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載的具體實例,本領(lǐng)域技術(shù)人員可以意識 至IJ,這種描述僅是示范性的,并不用于限定本發(fā)明的保護(hù)范圍。實際上,基于具體組網(wǎng)和流 量模型的不同,上述等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)算法可以予以相應(yīng)調(diào)整,而這種調(diào)整都應(yīng)該涵 蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
[0065] 在一個實施方式中,轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑非均衡分擔(dān)負(fù)載。也就是說,轉(zhuǎn)發(fā)表 中各條等價轉(zhuǎn)發(fā)路徑所負(fù)責(zé)分擔(dān)的負(fù)載不一定是相同的。
[0066] 可以基于各種哈希算法實現(xiàn)等價轉(zhuǎn)發(fā)路徑非均衡分擔(dān)負(fù)載。比如,可以將轉(zhuǎn)發(fā)表 中的每條前綴作為Key,分別計算哈希運算結(jié)果HashKey,其中:
[0067] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&0XFF);其中》為右移符號;
[0068] 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號(Index),其 中:
[0069] Index = (Table (HashKey% m)) % η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符; m為各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比例之和;Table為映射函數(shù),其中該映射函數(shù)的輸入為 HashKey% m,該映射函數(shù)的輸出結(jié)果呈現(xiàn)比例符合各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比例。
[0070] 以上給出了等價轉(zhuǎn)發(fā)路徑非均衡分擔(dān)負(fù)載的具體實例,本領(lǐng)域技術(shù)人員可以意識 至IJ,這種描述僅是示范性的,并不用于限定本發(fā)明的保護(hù)范圍。實際上,基于具體組網(wǎng)和流 量模型的不同,上述等價轉(zhuǎn)發(fā)路徑非均衡分擔(dān)算法可以予以相應(yīng)調(diào)整,而這種調(diào)整都應(yīng)該 涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。
[0071] 步驟202 :接收該VPN中的CE發(fā)送的報文,從報文中提取前綴,檢索轉(zhuǎn)發(fā)表以確定 對應(yīng)于前綴的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)報文。
[0072] 在這里,當(dāng)VPN為三層L3VPN時,PE從報文中提取的前綴為DIP地址。而且,PE檢 索轉(zhuǎn)發(fā)表以確定對應(yīng)于該DIP地址的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)報 文。
[0073] 當(dāng)VPN為VPLS網(wǎng)絡(luò)時,PE從報文中提取的前綴為DMAC地址。而且,PE檢索轉(zhuǎn)發(fā) 表以確定對應(yīng)于該DMAC地址的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)報文。
[0074] 下面基于圖1所示MPLS VPN組網(wǎng),對本發(fā)明進(jìn)行更詳細(xì)的示范性說明。
[0075] 在圖1所示組網(wǎng)中:在PE1和PE2上均配置有VPN A,CE1和CE2分別通過VPN A 連接到PE1和PE2。從CE1發(fā)送到CE2的報文需要經(jīng)過VPNA進(jìn)行轉(zhuǎn)發(fā),而且從CE1發(fā)送到 CE2的等價轉(zhuǎn)發(fā)路徑包括路徑一(PE1-P-PE2)和等價轉(zhuǎn)發(fā)路徑二(PE1-PE2)。
[0076] 下面以PE1的處理過程為例進(jìn)行說明。
[0077] 首先,PE1學(xué)習(xí) VPN A的轉(zhuǎn)發(fā)表項,轉(zhuǎn)發(fā)表項包括前綴以及由等價轉(zhuǎn)發(fā)路徑一和等 價轉(zhuǎn)發(fā)路徑二組成的等價轉(zhuǎn)發(fā)路徑集。
[0078] 當(dāng)VPN A為VPLS網(wǎng)絡(luò)時,PE1學(xué)習(xí)到的轉(zhuǎn)發(fā)表項中的前綴為DMAC地址。PE1針對 轉(zhuǎn)發(fā)表項中的每條DMAC地址執(zhí)行哈希運算,并基于哈希運算結(jié)果確定與該DMAC地址相對 應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含DMAC地址與相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表。該轉(zhuǎn)發(fā)表的 鍵(Key)即為DMAC地址,與Key相對應(yīng)的結(jié)果(RESULT)即為對應(yīng)于DMAC地址的等價轉(zhuǎn)發(fā) 路徑。然后,PE1將轉(zhuǎn)發(fā)表下發(fā)到自身的硬件轉(zhuǎn)發(fā)層。
[0079] 當(dāng)VPN A為三層L3VPN時,轉(zhuǎn)發(fā)表項中的前綴具體為DIP地址。PE1學(xué)習(xí)到的轉(zhuǎn)發(fā) 表項中的前綴為DIP地址。PE1針對轉(zhuǎn)發(fā)表項中的每條DIP地址執(zhí)行哈希運算,并基于哈希 運算結(jié)果確定與該DIP地址相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含DIP地址與相對應(yīng)的等價 轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表。該轉(zhuǎn)發(fā)表的鍵(Key)即為DIP地址,與Key相對應(yīng)的結(jié)果(RESULT)即 為對應(yīng)于DIP地址的等價轉(zhuǎn)發(fā)路徑。然后,PE1將轉(zhuǎn)發(fā)表下發(fā)到自身的硬件轉(zhuǎn)發(fā)層。
[0080] 在一個實施方式中:轉(zhuǎn)發(fā)表中的各條等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載。舉例:均衡分 擔(dān)負(fù)載的哈希算法示范性如下:
[0081] 將轉(zhuǎn)發(fā)表項中的每條前綴作為Key,分別計算哈希運算結(jié)果HashKey,其中:
[0082] HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Key?8&0XFF) + (Key&OXFF);
[0083] Index = HashKey% n ;
[0084] Index表示選擇等價路徑中的等價轉(zhuǎn)發(fā)路徑的編號(從0開始),n表示等價轉(zhuǎn)發(fā) 路徑的總條數(shù),Key為轉(zhuǎn)發(fā)表項中的前綴。當(dāng)在PE1上配置有多個VPN時,可以在轉(zhuǎn)發(fā)表中 進(jìn)一步增加 VPN ID。
[0085] 下面以Key為DIP地址為例,詳細(xì)描述等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載的哈希運算過 程。
[0086] 假定轉(zhuǎn)發(fā)路由表中的前綴為194.0.0.0/24,而且該VPN ID為A;則Key為: 194. 0. 0. 0/24。
[0087] 194. 0· 0· 0/24>>40&0XFF 的結(jié)果為 0 ;194· 0· 0· 0/24>>32&0XFF 的結(jié)果 為 0 ;194·0·0· 0/24>>24&0XFF 的結(jié)果為 194 ;194·0·0· 0/24>>16&0XFF 的結(jié)果為 0 ; 194. 0· 0· 0/24>>8&0XFF 的結(jié)果為 0 ;194· 0· 0· 0/24>>0XFF 的結(jié)果為 0,則:
[0088] 194. 0. 0. 0/24?40&0XFF+194. 0. 0. 0/24?32&0XFF+194. 0. 0. 0/24?24&0XFF+194 .0. 0. 0/24?16&0XFF+194. 0. 0. 0/24?8&0XFF+194. 0. 0. 0/24?0XFF = 0+0+194+0+0+0 = 194, 即 HashKey = 194。
[0089] 而且,Index = HashKey% n = 194% 2 = 0,因此與前綴 194. 0·0· 0/24 相對應(yīng)的 等價轉(zhuǎn)發(fā)路徑為:等價轉(zhuǎn)發(fā)路徑一。
[0090] 因此,當(dāng)DIP為194. 0. 0. 0/24的報文通過VPN A轉(zhuǎn)發(fā)時,PE1通過查詢硬件轉(zhuǎn)發(fā) 層中的轉(zhuǎn)發(fā)表,選擇等價轉(zhuǎn)發(fā)路徑一進(jìn)行轉(zhuǎn)發(fā)。
[0091] 再比如,假定轉(zhuǎn)發(fā)路由表中的前綴為195.0.0.0/24,而且該VPN ID為A;則Key 為:195. 0·0· 0/24。
[0092] 195. 0· 0· 0/24>>40&0XFF 的結(jié)果為 0 ;195· 0· 0· 0/24>>32&0XFF 的結(jié)果 為 0 ;195·0·0·0/24>>24&0XFF 的結(jié)果為 195 ;195·0·0·0/24>>16&0XFF 的結(jié)果為 0 ; 195. 0· 0· 0/24>>8&0XFF 的結(jié)果為 0 ;195· 0· 0· 0/24>>0XFF 的結(jié)果為 0,則:
[0093] 195. 0. 0. 0/24?40&0XFF+195. 0. 0. 0/24?32&0XFF+195. 0. 0. 0/24?24&0XFF+195 .0. 0. 0/24?16&0XFF+195. 0. 0. 0/24?8&0XFF+195. 0. 0. 0/24?0XFF = 0+0+195+0+0+0 = 195,即 HashKey = 195。
[0094] Index = HashKey% n = 195% 2 = 1,因此與前綴 195. 0·0· 0/24 相對應(yīng)的等價轉(zhuǎn) 發(fā)路徑為:等價轉(zhuǎn)發(fā)路徑二。因此,當(dāng)DIP為195. 0. 0. 0/24的報文通過VPN A轉(zhuǎn)發(fā)時,PE1 通過查詢硬件轉(zhuǎn)發(fā)層中的轉(zhuǎn)發(fā)表,選擇等價轉(zhuǎn)發(fā)路徑一進(jìn)行轉(zhuǎn)發(fā)。
[0095] 類似地,當(dāng)Key為:196. 0. 0. 0/24時,相對應(yīng)的等價轉(zhuǎn)發(fā)路徑為:等價轉(zhuǎn)發(fā)路徑一; 當(dāng)Key為:197. 0. 0. 0/24時,相對應(yīng)的等價轉(zhuǎn)發(fā)路徑為:等價轉(zhuǎn)發(fā)路徑二,等等。
[0096] 表1為等價轉(zhuǎn)發(fā)路徑均衡分擔(dān)負(fù)載時的轉(zhuǎn)發(fā)表的實例。
[0097]
【權(quán)利要求】
1. 一種多協(xié)議標(biāo)簽交換MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的方法,所述方法應(yīng)用于提供 商邊緣設(shè)備PE,其特征在于,該方法包括 : 針對虛擬專用網(wǎng)絡(luò)VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié)果確 定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表; 接收該VPN中的用戶邊緣設(shè)備CE發(fā)送的報文,從所述報文中提取前綴,檢索所述轉(zhuǎn)發(fā) 表以確定對應(yīng)于所提取的前綴的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)所述報 文。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑均衡分擔(dān) 負(fù)載。
3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述針對VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí) 行哈希運算,基于哈希運算結(jié)果確定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑包括: 將所述轉(zhuǎn)發(fā)表項中的每條前綴作為鍵Key,分別計算哈希運算結(jié)果HashKey,其中: HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Ke y?8&0XFF) + (Key&0XFF);其中》為右移符號; 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其中: Index = HashKey% η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符。
4. 根據(jù)權(quán)利要求1所述的方法,其特征在于,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑非均衡分 擔(dān)負(fù)載。
5. 根據(jù)權(quán)利要求4所述的方法,其特征在于, 所述針對VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運算,基于哈希運算結(jié)果確定與該前 綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑包括: 將所述轉(zhuǎn)發(fā)表項中的每條前綴作為Key,分別計算哈希運算結(jié)果HashKey,其中: HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Ke y?8&0XFF) + (Key&0XFF);其中》為右移符號; 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其中: Index = (Table (HashKey% m)) % η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符;m 為各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比例之和;Table為映射函數(shù),其中該映射函數(shù)的輸入為 HashKey%m,該映射函數(shù)的輸出結(jié)果呈現(xiàn)比例符合所述各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比 例。
6. 根據(jù)權(quán)利要求1-5中任一項所述的方法,其特征在于,所述VPN為三層L3VPN,所述 從報文中提取前綴包括:從報文中提取目的IP地址。
7. 根據(jù)權(quán)利要求1-5中任一項所述的方法,其特征在于,所述VPN為虛擬專用局域網(wǎng)服 務(wù)VPLS網(wǎng)絡(luò),所述從報文中提取前綴包括:從報文中提取目的媒體訪問控制MAC地址。
8. -種多協(xié)議標(biāo)簽交換MPLS網(wǎng)絡(luò)中確定報文轉(zhuǎn)發(fā)路徑的裝置,所述裝置應(yīng)用于提供 商邊緣設(shè)備PE,其特征在于,該裝置包括: 轉(zhuǎn)發(fā)表建立模塊,用于針對虛擬專用網(wǎng)絡(luò)VPN的轉(zhuǎn)發(fā)表項中的每條前綴執(zhí)行哈希運 算,基于哈希運算結(jié)果確定與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑,并建立包含前綴與相對應(yīng)的 等價轉(zhuǎn)發(fā)路徑的轉(zhuǎn)發(fā)表; 報文轉(zhuǎn)發(fā)模塊,用于接收該VPN中的用戶邊緣設(shè)備CE發(fā)送的報文,從所述報文中提取 前綴,檢索所述轉(zhuǎn)發(fā)表以確定對應(yīng)于所提取的前綴的等價轉(zhuǎn)發(fā)路徑,并通過所確定的等價 轉(zhuǎn)發(fā)路徑轉(zhuǎn)發(fā)所述報文。
9. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑均衡分擔(dān) 負(fù)載。
10. 根據(jù)權(quán)利要求9所述的裝置,其特征在于, 轉(zhuǎn)發(fā)表建立模塊,用于將每條前綴作為鍵Key,分別計算哈希運算結(jié)果HashKey,其中: HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Ke y?8&0XFF) + (Key&0XFF);其中》為右移符號; 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其中: Index = HashKey% η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符。
11. 根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述轉(zhuǎn)發(fā)表中的等價轉(zhuǎn)發(fā)路徑非均衡分 擔(dān)負(fù)載。
12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于, 轉(zhuǎn)發(fā)表建立模塊,用于將每條前綴作為Key,分別計算哈希運算結(jié)果HashKey,其中: HashKey = (Key?40&0XFF) + (Key?32&0XFF) + (Key?24&0XFF) + (Key?16&0XFF) + (Ke y?8&0XFF) + (Key&0XFF);其中》為右移符號; 針對每個HashKey,分別計算與該前綴相對應(yīng)的等價轉(zhuǎn)發(fā)路徑的編號Index,其中: Index = (Table (HashKey% m)) % η ;n為等價轉(zhuǎn)發(fā)路徑總條數(shù);%為取余運算符;m 為各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比例之和;Table為映射函數(shù),其中該映射函數(shù)的輸入為 HashKey% m ;該映射函數(shù)的輸出結(jié)果呈現(xiàn)比例符合所述各條等價轉(zhuǎn)發(fā)路徑的負(fù)載分擔(dān)比 例。
【文檔編號】H04L12/723GK104283782SQ201410541398
【公開日】2015年1月14日 申請日期:2014年10月14日 優(yōu)先權(quán)日:2014年10月14日
【發(fā)明者】肖湘光, 王超群, 汪小勇 申請人:杭州華三通信技術(shù)有限公司