一種為vpn路由分配標(biāo)簽的方法及裝置的制造方法
【專利摘要】本發(fā)明公開了一種為VPN路由分配標(biāo)簽的方法及裝置,涉及網(wǎng)絡(luò)通信技術(shù),所述方法包括:上層骨干網(wǎng)邊緣SPE設(shè)備檢測(cè)來自下層骨干網(wǎng)邊緣UPE設(shè)備的VPN路由;當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),SPE設(shè)備判斷是否存在能夠?qū)胨鯲PN路由的虛擬私有網(wǎng)路由轉(zhuǎn)發(fā)實(shí)例VRF;若判斷存在能夠?qū)胨鯲PN路由的VRF,則將所述VPN路由導(dǎo)入到相應(yīng)的VRF,并將所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。本發(fā)明能夠節(jié)省大量標(biāo)簽資源。
【專利說明】
一種為VPN路由分配標(biāo)簽的方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種為VPN路由分配標(biāo)簽的方法及相關(guān)的裝 置。
【背景技術(shù)】
[0002] 虛擬私有網(wǎng)(Virtual Private Network,VPN)是利用公用網(wǎng)絡(luò)構(gòu)建的私人專用網(wǎng) 絡(luò),它以其獨(dú)具特色的優(yōu)勢(shì)贏得了越來越廣泛的應(yīng)用,對(duì)于用戶使用VPN可以縮減費(fèi)用,方 便管理。對(duì)于運(yùn)營(yíng)商可以利用現(xiàn)有的基礎(chǔ)設(shè)施提供增值服務(wù),可以擴(kuò)大運(yùn)營(yíng)業(yè)務(wù)量同時(shí)也 創(chuàng)造了新的商業(yè)機(jī)會(huì)。
[0003] 多協(xié)議標(biāo)簽交換協(xié)議(Multi-Protocol Label Switching,MPLS)是一種將具有相 同轉(zhuǎn)發(fā)處理方式的分組歸為一類,即轉(zhuǎn)發(fā)等價(jià)類(Forwarding Equivalent Class,F(xiàn)EC)的 分類轉(zhuǎn)發(fā)技術(shù)。MPLS最初是用來提高路由器的轉(zhuǎn)發(fā)速度而提出的一個(gè)協(xié)議,但是由于MPLS 在流量工程和VPN這兩個(gè)在目前IP網(wǎng)絡(luò)中非常關(guān)鍵的技術(shù)中的優(yōu)越表現(xiàn)使得MPLS已日益 成為擴(kuò)大IP網(wǎng)絡(luò)規(guī)模的重要標(biāo)準(zhǔn)。MPLS協(xié)議的關(guān)鍵是引入了標(biāo)簽(Label)交換概念,在 MPLS網(wǎng)絡(luò)中,IP包在進(jìn)入第一個(gè)MPLS設(shè)備時(shí)MPLS邊緣路由器分析IP包的內(nèi)容并為這些 IP包選擇合適的標(biāo)簽。以后就是依據(jù)這個(gè)標(biāo)簽作為轉(zhuǎn)發(fā)依據(jù)在MPLS網(wǎng)絡(luò)中傳輸,當(dāng)IP包 離開MPLS網(wǎng)絡(luò)時(shí)標(biāo)簽被邊緣路由器分離。在MPLS網(wǎng)絡(luò)中將網(wǎng)絡(luò)設(shè)備分為邊緣網(wǎng)絡(luò)設(shè)備和 核心網(wǎng)絡(luò)設(shè)備,邊緣網(wǎng)絡(luò)設(shè)備提供流量分類和標(biāo)簽映射,標(biāo)簽移除的功能。核心網(wǎng)絡(luò)設(shè)備提 供標(biāo)簽交換和標(biāo)簽分發(fā)功能。
[0004] MPLS VPN網(wǎng)絡(luò),MPLS作為一種高效的IP骨干網(wǎng)技術(shù)平臺(tái),為實(shí)現(xiàn)VPN提供了一種 靈活的并且具有可擴(kuò)展性的技術(shù)基礎(chǔ)。MPLS VPN網(wǎng)絡(luò)中,VPN路由轉(zhuǎn)發(fā)的時(shí)候,如果下一跳 需要變成自己,就需要為VPN路由分配標(biāo)簽。
[0005] 圖1是現(xiàn)有技術(shù)提供的一個(gè)MPLS VPN網(wǎng)絡(luò)架構(gòu)模型圖,如圖1所示,顯示了一個(gè) 典型的MPLS VPN網(wǎng)絡(luò)的組網(wǎng),其中,用戶網(wǎng)邊緣(Custom Edge,CE)設(shè)備是用戶網(wǎng)絡(luò)中直接 與服務(wù)提供商相連的邊緣設(shè)備,骨干網(wǎng)邊緣(Provider Edge,PE)設(shè)備直接與用戶的CE設(shè) 備連接,骨干網(wǎng)核心(Provider,P)設(shè)備是骨干網(wǎng)中不與CE直接連接的設(shè)備。
[0006] 圖2是現(xiàn)有技術(shù)提供的在PE路由器中VPN路由轉(zhuǎn)發(fā)實(shí)例(VPN Routing&Forwarding Instance,VRF)與各個(gè)VPN之間的關(guān)系圖,在PE路由器上為每一個(gè) VPN創(chuàng)建對(duì)應(yīng)的VRF,每個(gè)VRF都包括一個(gè)路由表、一個(gè)轉(zhuǎn)發(fā)表、接口。
[0007] 圖3是現(xiàn)有技術(shù)提供的VPN路由發(fā)布示意圖,如圖3所示,在PEl設(shè)備上形成BGP 的VPNv4路由的過程如下:PEl上形成邊界網(wǎng)關(guān)協(xié)議(Border Gateway Protocol,BGP) 的VPNv4路由過程如下:1、把路由前綴和所在VRF的路由區(qū)分符(Route-Distinguisher, RD)形成VPNv4路由;2、為VPNv4路由分配入標(biāo)簽LI ;3、根據(jù)路由所在的VRF的路由目標(biāo) (Route-TargetRT)配置,組織路由的RT屬性;4、設(shè)置路由的下一跳為自己,并組織路由的 其他屬性,VPNv4路由形成。PE2上接收到BGP的VPNv4路由的處理過程如下:1、從VPNv4 路由中解出相應(yīng)的路由,并根據(jù)路由的RT屬性,確定路由都要到哪些VRF中;2、攜帶的標(biāo)簽 LI就是數(shù)據(jù)報(bào)文的內(nèi)層標(biāo)簽;3、根據(jù)路由的下一跳信息,在標(biāo)簽交換通道中查詢需要使用 的標(biāo)簽,就是標(biāo)簽交換中的外層標(biāo)簽;4、將以上得到的信息下發(fā)到轉(zhuǎn)發(fā)表,在轉(zhuǎn)發(fā)中進(jìn)行使 用。
[0008] 圖4是現(xiàn)有技術(shù)提供的VPN報(bào)文在MPLS VPN網(wǎng)絡(luò)中進(jìn)行轉(zhuǎn)發(fā)的示意圖,如圖4所 示,當(dāng)CE2向CEl發(fā)送數(shù)據(jù)報(bào)文時(shí),在PE2、P、PEl上的處理過程如下:
[0009] 在PE2上的處理過程:1、根據(jù)報(bào)文入接口的VRF屬性獲得VPN ID號(hào);2、使用VPN ID號(hào)和目的IP地址查找VRF表,得到出接口、內(nèi)層出標(biāo)簽(即VPN標(biāo)簽)和外層出標(biāo)簽(即 P分配給PEl的標(biāo)簽);3、將內(nèi)外兩層標(biāo)簽封裝到報(bào)文中;4、將報(bào)文從出接口中轉(zhuǎn)發(fā)出去。 假設(shè)此時(shí)查到的內(nèi)層標(biāo)簽和外層標(biāo)簽分別是17和23,那么封裝后報(bào)文結(jié)構(gòu)如下:
[0010]
[0011] 在P上的處理過程:1、判斷該數(shù)據(jù)包是一個(gè)標(biāo)簽包;2、取出第一層MPLS轉(zhuǎn)發(fā)標(biāo) 簽,例如23 ;3、根據(jù)此標(biāo)簽查找標(biāo)簽轉(zhuǎn)發(fā)表,得到出接口及下一跳及出標(biāo)簽;4、如果出標(biāo)簽 不是3,那么說明下一跳不是LSP的末節(jié)點(diǎn),那么就需要去除該數(shù)據(jù)報(bào)文的外層標(biāo)簽,再封 裝新的外層標(biāo)簽;如果出標(biāo)簽是3標(biāo)簽,那么說明下一跳是LSP中的末節(jié)點(diǎn),那么根據(jù)次末 跳彈出規(guī)則需要將該報(bào)文的外層標(biāo)簽去除后直接轉(zhuǎn)發(fā),以第二種情況為例,去除23這個(gè)外 層標(biāo)簽,從出接口轉(zhuǎn)發(fā)出去。轉(zhuǎn)發(fā)的報(bào)文結(jié)構(gòu)如下所示:
[0012]
[0013] 在PEl上的處理過程:1、判斷該數(shù)據(jù)包是一個(gè)標(biāo)簽包;2、取出第一層MPLS轉(zhuǎn)發(fā)標(biāo) 簽,例如17 ;3、先判斷是否有二次查找標(biāo)記,如果有二次查找標(biāo)記,那就需要根據(jù)該標(biāo)簽獲 取VPN ID號(hào),再根據(jù)報(bào)文中的目的地址進(jìn)行路由匹配查找轉(zhuǎn)發(fā),如果沒有二次路由查找標(biāo) 記,那就可以根據(jù)標(biāo)簽直接查找到出接口進(jìn)行報(bào)文轉(zhuǎn)發(fā);4、根據(jù)查找到的出接口,將報(bào)文從 出接接口轉(zhuǎn)發(fā)出去。這里將標(biāo)簽17剝離后將報(bào)文轉(zhuǎn)發(fā)給CE1。轉(zhuǎn)發(fā)的報(bào)文結(jié)構(gòu)如下所示:
[0014]
[0015] 為解決可擴(kuò)展性問題,MPLS L3VPN必然要從平面模型轉(zhuǎn)變?yōu)榉謱幽P?。分?VPN(Hierarchy of VPN,HoVPN)在MPLS L3VPN領(lǐng)域,解決方案的提出,實(shí)現(xiàn)了將PE的功能 分布到多個(gè)PE設(shè)備上,多個(gè)PE承擔(dān)不同的角色,并形成層次結(jié)構(gòu),共同完成一個(gè)PE的功 能。
[0016] 圖5是現(xiàn)有技術(shù)提供的HoVPN路由發(fā)布示意圖,如圖5所示,HoPE體系結(jié)構(gòu)中,將 傳統(tǒng)的MPLS L3VPN的PE設(shè)備從一臺(tái)設(shè)備演化為多臺(tái)設(shè)備。與用戶的CE設(shè)備直接相連的 PE設(shè)備稱為下層PE (Under-Layer PE或User-end PE,用戶側(cè)PE,UPE),連接UPE并位于網(wǎng) 絡(luò)內(nèi)部的設(shè)備稱為上層PE(Super-Stratum PE或Service Provider-end PE,服務(wù)提供商側(cè) PE,SPE)。多個(gè)UPE和一個(gè)SPE構(gòu)成分層式PE,共同完成傳統(tǒng)上一個(gè)PE的功能。在如圖5 所示的路由傳送方向,SPE設(shè)備上處理過程如下:SPE將VPN導(dǎo)入到自己的對(duì)應(yīng)VRF中,SPE 上轉(zhuǎn)發(fā)UPE的VPN路由給PE,并修改下一跳是自己,重新分配VPN路由標(biāo)簽L2。
[0017] 圖6是現(xiàn)有技術(shù)提供的HoVPN數(shù)據(jù)轉(zhuǎn)發(fā)示意圖,如圖6所示,當(dāng)CE2向CEl發(fā)送數(shù) 據(jù)報(bào)文時(shí),在PE、SPE、UPE上的處理過程如下:
[0018] 在PE上的處理過程:1、根據(jù)報(bào)文入接口的VRF屬性獲得VPN ID號(hào);2、使用VPN ID 號(hào)和目的IP地址查找VRF表,得到出接口、內(nèi)層出標(biāo)簽(即VPN標(biāo)簽)和外層出標(biāo)簽(即 SPE分配給PE的標(biāo)簽。如果是3標(biāo)簽不封裝);3、將內(nèi)外兩層標(biāo)簽封裝到報(bào)文中;4、將報(bào)文 從出接口中轉(zhuǎn)發(fā)出去。假設(shè)此時(shí)查到的內(nèi)層標(biāo)簽和外層標(biāo)簽分別是17和23,那么封裝后報(bào) 文結(jié)構(gòu)如下:
[0019]
[0020] 在SPE上的處理過程:1、找到內(nèi)層VPN標(biāo)簽。外層標(biāo)簽有可能還存在;2、根據(jù)VPN 標(biāo)簽找到VPN對(duì)應(yīng)的路由;3、查找對(duì)應(yīng)的內(nèi)層標(biāo)簽和下一跳,并根據(jù)下一跳查找對(duì)應(yīng)的外 層標(biāo)簽;4、將報(bào)文從出接口中轉(zhuǎn)發(fā)出去。假設(shè)此時(shí)查到的內(nèi)層標(biāo)簽和外層標(biāo)簽分別是30, 26,那么封裝后報(bào)文結(jié)構(gòu)如下:
[0021]
[0022] 在UPE上的處理過程:1、判斷該數(shù)據(jù)包是一個(gè)標(biāo)簽包;2、取出VPN標(biāo)簽.外層標(biāo)簽 有可能還存在;3、先判斷是否有二次查找標(biāo)記,如果有二次查找標(biāo)記,那就需要根據(jù)該標(biāo)簽 獲取vpn ID號(hào),再根據(jù)報(bào)文中的目的地址進(jìn)行路由匹配查找轉(zhuǎn)發(fā),如果沒有二次路由查找 標(biāo)記,那就可以根據(jù)標(biāo)簽直接查找到出接口進(jìn)行報(bào)文轉(zhuǎn)發(fā);4、根據(jù)查找到的出接口,將報(bào)文 從出接接口轉(zhuǎn)發(fā)出去。轉(zhuǎn)發(fā)的時(shí)候剝離標(biāo)簽。轉(zhuǎn)發(fā)的報(bào)文結(jié)構(gòu)如下所示:
[0023]
[0024] 由于各個(gè)不同的VPN都有獨(dú)?的地址
2丨日」,那么在MPLS VPN網(wǎng)絡(luò)中PE處理接收到 的數(shù)據(jù)報(bào)文時(shí)為了區(qū)分該報(bào)文屬于哪個(gè)VPN需要利用MPLS支持多層標(biāo)簽嵌套的功能,也就 是為VPN內(nèi)的路由通過MP-BGP來分配一個(gè)內(nèi)層標(biāo)簽,這個(gè)標(biāo)簽與VPN路由一同發(fā)布出去。
[0025] 標(biāo)簽分配是MPLS網(wǎng)絡(luò)中路由器設(shè)備的一個(gè)核心部分,尤其是對(duì)于PE設(shè)備,既要通 過標(biāo)簽分發(fā)協(xié)議(Label Distribution Protocol,LDP)等協(xié)議為公網(wǎng)路由分配標(biāo)簽,還需 要通過多協(xié)議邊界網(wǎng)關(guān)協(xié)議(MP-BGP)為私網(wǎng)路由分配標(biāo)簽,當(dāng)然還要包括其他靜態(tài)分配 的標(biāo)簽。而標(biāo)簽資源是有限,在現(xiàn)有的HoVPN實(shí)現(xiàn)上轉(zhuǎn)發(fā)路由時(shí)按照每路由每標(biāo)簽進(jìn)行分 配,當(dāng)路由數(shù)目較多時(shí),容易導(dǎo)致標(biāo)簽資源緊張。
【發(fā)明內(nèi)容】
[0026] 本發(fā)明的目的在于提供一種為VPN路由分配標(biāo)簽的方法及裝置,能更好地解決標(biāo) 簽資源緊張的問題。
[0027] 根據(jù)本發(fā)明的一個(gè)方面,提供了一種為VPN路由分配標(biāo)簽的方法,包括:
[0028] SPE設(shè)備檢測(cè)來自UPE設(shè)備的VPN路由;
[0029] 當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),SPE設(shè)備判斷是否存在能夠?qū)胨鯲PN路 由的VRF ;
[0030] 若判斷存在能夠?qū)胨鯲PN路由的VRF,則將所述VPN路由導(dǎo)入到相應(yīng)的VRF, 并將所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。
[0031] 優(yōu)選地,在SPE設(shè)備檢測(cè)來自UPE設(shè)備的VPN路由之前,還包括:
[0032] 在SPE設(shè)備上,創(chuàng)建VRF ;
[0033] 通過設(shè)定路由區(qū)分符RD,使所創(chuàng)建的VRF有效;
[0034] 從標(biāo)簽池中取出一個(gè)標(biāo)簽,并分配給所述有效的VRF。
[0035] 優(yōu)選地,所述SPE設(shè)備判斷是否存在能夠?qū)胨鯲PN路由的VRF的步驟包括:
[0036] SPE設(shè)備判斷是否存在已創(chuàng)建的VRF ;
[0037] 當(dāng)存在已創(chuàng)建的VRF時(shí),將所述VPN路由攜帶的路由目標(biāo)屬性RT與所述已創(chuàng)建 VRF中的RT進(jìn)行匹配;
[0038] 若所述VPN路由攜帶的RT與所述已創(chuàng)建VRF中的RT匹配,則判斷存在能夠?qū)?所述VPN路由的VRF。
[0039] 優(yōu)選地,當(dāng)存在多個(gè)能夠?qū)胨鯲PN路由的VRF時(shí),SPE設(shè)備將所述VPN路由分 別導(dǎo)入到所述多個(gè)VRF中,并選取任意一個(gè)VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。
[0040] 優(yōu)選地,還包括:
[0041] 當(dāng)不存在能夠?qū)胨鯲PN路由的VRF或存在的能夠?qū)胨鯲PN路由的VRF沒 有分配到標(biāo)簽時(shí),則SPE設(shè)備通過默認(rèn)方式為所述VPN路由申請(qǐng)內(nèi)層標(biāo)簽。
[0042] 根據(jù)本發(fā)明的另一方面,提供了一種為VPN路由分配標(biāo)簽的裝置,包括:
[0043] 檢測(cè)模塊,用于檢測(cè)來自下層骨干網(wǎng)邊緣UPE設(shè)備的VPN路由;
[0044] 判斷模塊,用于當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),判斷是否存在能夠?qū)胨?VPN路由的虛擬私有網(wǎng)路由轉(zhuǎn)發(fā)實(shí)例VRF ;
[0045] 分配模塊,用于在判斷存在能夠?qū)胨鯲PN路由的VRF時(shí),將所述VPN路由導(dǎo)入 到相應(yīng)的VRF,并將所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。
[0046] 優(yōu)選地,還包括:
[0047] VRF創(chuàng)建模塊,用于在檢測(cè)來自UPE設(shè)備的VPN路由之前創(chuàng)建VRF,通過設(shè)定路由 區(qū)分符RD,使所創(chuàng)建的VRF有效,并從標(biāo)簽池中取出一個(gè)標(biāo)簽,分配給所述有效的VRF。
[0048] 優(yōu)選地,所述判斷模塊判斷是否存在已創(chuàng)建的VRF,當(dāng)存在已創(chuàng)建的VRF時(shí),將所 述VPN路由攜帶的路由目標(biāo)屬性RT與所述已創(chuàng)建VRF中的RT進(jìn)行匹配,若所述VPN路由 攜帶的RT與所述已創(chuàng)建VRF中的RT匹配,則判斷存在能夠?qū)胨鯲PN路由的VRF。
[0049] 優(yōu)選地,當(dāng)存在多個(gè)能夠?qū)胨鯲PN路由的VRF時(shí),所述分配模塊將所述VPN路 由分別導(dǎo)入到所述多個(gè)VRF中,并選取任意一個(gè)VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。
[0050] 優(yōu)選地,當(dāng)不存在能夠?qū)胨鯲PN路由的VRF或存在的能夠?qū)胨鯲PN路由 的VRF沒有分配到標(biāo)簽時(shí),所述分配模塊通過默認(rèn)方式為所述VPN路由申請(qǐng)內(nèi)層標(biāo)簽。
[0051] 與現(xiàn)有技術(shù)相比較,本發(fā)明的有益效果在于:
[0052] 1、本發(fā)明通過在MPLS網(wǎng)絡(luò)中的SPE設(shè)備上轉(zhuǎn)發(fā)VPN路由時(shí)采用復(fù)用導(dǎo)入的VRF 的標(biāo)簽作為VPN路由的標(biāo)簽的方式,節(jié)省了標(biāo)簽申請(qǐng),使得標(biāo)簽資源得以充分地利用,尤其 對(duì)于那些硬件資源有限,標(biāo)簽轉(zhuǎn)發(fā)表空間較小的路由器或交換機(jī)等設(shè)備更為適用,使得原 先由于資源限制而不能實(shí)現(xiàn)MPLS VPN功能的設(shè)備能夠啟用MPLS VPN功能,這樣又可以大 量地節(jié)約資源,使得有限的資源得到充分地利用;
[0053] 2、本發(fā)明可以節(jié)省標(biāo)簽申請(qǐng)的時(shí)間,提高了效率。
【附圖說明】
[0054] 圖1是現(xiàn)有技術(shù)提供的MPLS VPN網(wǎng)絡(luò)架構(gòu)模型圖;
[0055] 圖2是現(xiàn)有技術(shù)提供的在骨干網(wǎng)邊緣路由器中VPN路由轉(zhuǎn)發(fā)實(shí)例與各個(gè)VPN之間 的關(guān)系圖;
[0056] 圖3是現(xiàn)有技術(shù)提供的VPN路由發(fā)布不意圖;
[0057] 圖4是現(xiàn)有技術(shù)提供的VPN報(bào)文在MPLS VPN網(wǎng)絡(luò)中進(jìn)行轉(zhuǎn)發(fā)的示意圖;
[0058] 圖5是現(xiàn)有技術(shù)提供的HoVPN路由發(fā)布不意圖;
[0059] 圖6是現(xiàn)有技術(shù)提供的HoVPN數(shù)據(jù)轉(zhuǎn)發(fā)示意圖;
[0060] 圖7是本發(fā)明提供的為VPN路由分配標(biāo)簽的方法原理框圖;
[0061] 圖8是本發(fā)明提供的為VPN路由分配標(biāo)簽的裝置結(jié)構(gòu)框圖;
[0062] 圖9是采用本發(fā)明所描述的使用VRF標(biāo)簽做內(nèi)層標(biāo)簽方式后的HoVPN路由發(fā)布示 意圖;
[0063] 圖10是采用本發(fā)明所描述的使用VRF標(biāo)簽做內(nèi)層標(biāo)簽方式后的HoVPN數(shù)據(jù)轉(zhuǎn)發(fā) 示意圖。
【具體實(shí)施方式】
[0064] 以下結(jié)合附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行詳細(xì)說明,應(yīng)當(dāng)理解,以下所說明的優(yōu) 選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。
[0065] 圖7是本發(fā)明提供的為VPN路由分配標(biāo)簽的方法原理框圖,如圖1所示,步驟包 括:
[0066] 步驟SlOl :在分層虛擬私有網(wǎng)HoVPN中,上層骨干網(wǎng)邊緣SPE設(shè)備檢測(cè)來自下層 骨干網(wǎng)邊緣UPE設(shè)備的VPN路由。
[0067] 在執(zhí)行所述步驟SlOl之前,需要在SPE設(shè)備上,創(chuàng)建VRF ;通過設(shè)定路由區(qū)分符 RD,使所創(chuàng)建的VRF有效;從標(biāo)簽池中取出一個(gè)標(biāo)簽,并分配給所述有效的VRF。
[0068] 步驟S102 :當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),SPE設(shè)備判斷是否存在能夠?qū)?所述VPN路由的虛擬私有網(wǎng)路由轉(zhuǎn)發(fā)實(shí)例VRF。
[0069] 所述步驟S102包括:SPE設(shè)備判斷是否存在已創(chuàng)建的VRF ;當(dāng)存在已創(chuàng)建的VRF 時(shí),將所述VPN路由攜帶的路由目標(biāo)屬性RT與所述已創(chuàng)建VRF中的RT進(jìn)行匹配;若所述 VPN路由攜帶的RT與所述已創(chuàng)建VRF中的RT匹配,則判斷存在能夠?qū)胨鯲PN路由的 VRF0
[0070] 步驟S103 :若判斷存在能夠?qū)胨鯲PN路由的VRF,則將所述VPN路由導(dǎo)入到相 應(yīng)的VRF,并將所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。
[0071] 進(jìn)一步地,當(dāng)存在多個(gè)能夠?qū)胨鯲PN路由的VRF時(shí),SPE設(shè)備將所述VPN路由 分別導(dǎo)入到所述多個(gè)VRF中,并選取任意一個(gè)VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。
[0072] 當(dāng)判斷不存在能夠?qū)胨鯲PN路由的VRF或存在的能夠?qū)胨鯲PN路由的 VRF沒有分配到標(biāo)簽時(shí),則SPE設(shè)備通過默認(rèn)方式為所述VPN路由申請(qǐng)內(nèi)層標(biāo)簽。
[0073] 圖8是本發(fā)明提供的為VPN路由分配標(biāo)簽的裝置結(jié)構(gòu)框圖,如圖8所示,所述裝置 設(shè)置在SPE上,包括:VRF創(chuàng)建模塊10、檢測(cè)模塊20、判斷模塊30和分配模塊40。
[0074] VRF創(chuàng)建模塊10用于在檢測(cè)來自UPE設(shè)備的VPN路由之前創(chuàng)建VRF,通過設(shè)定路 由區(qū)分符RD,使所創(chuàng)建的VRF有效,并從標(biāo)簽池中取出一個(gè)標(biāo)簽,分配給所述有效的VRF。
[0075] 檢測(cè)模塊20用于在分層虛擬私有網(wǎng)HoVPN中,檢測(cè)來自下層骨干網(wǎng)邊緣UPE設(shè)備 的VPN路由。
[0076] 判斷模塊30用于當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),判斷是否存在能夠?qū)胨?述VPN路由的虛擬私有網(wǎng)路由轉(zhuǎn)發(fā)實(shí)例VRF。具體地說,判斷模塊30判斷是否存在已創(chuàng)建 的VRF,當(dāng)存在已創(chuàng)建的VRF時(shí),將所述VPN路由攜帶的路由目標(biāo)屬性RT與所述已創(chuàng)建VRF 中的RT進(jìn)行匹配,若所述VPN路由攜帶的RT與所述已創(chuàng)建VRF中的RT匹配,則判斷存在 能夠?qū)胨鯲PN路由的VRF,否則,判斷不存在能夠?qū)胨鯲PN路由的VRF。
[0077] 分配模塊40用于在判斷存在能夠?qū)胨鯲PN路由的VRF時(shí),將所述VPN路由導(dǎo) 入到相應(yīng)的VRF,并將所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。進(jìn)一步地,當(dāng)存在多 個(gè)能夠?qū)胨鯲PN路由的VRF時(shí),所述分配模塊40將所述VPN路由分別導(dǎo)入到所述多個(gè) VRF中,并選取任意一個(gè)VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。當(dāng)不存在能夠?qū)胨?述VPN路由的VRF或存在的能夠?qū)胨鯲PN路由的VRF沒有分配到標(biāo)簽時(shí),所述分配模 塊通過默認(rèn)方式為所述VPN路由申請(qǐng)內(nèi)層標(biāo)簽。
[0078] 本發(fā)明為接收到的VPN路由在轉(zhuǎn)發(fā)過程中分配標(biāo)簽,能夠在進(jìn)行VPN路由的轉(zhuǎn)發(fā) 時(shí)節(jié)省不必要的標(biāo)簽申請(qǐng)。
[0079] 在HoVPN環(huán)境下VPN路由轉(zhuǎn)發(fā)過程中,因?yàn)橄乱惶兓枰峙錁?biāo)簽時(shí),使用盡可 能少量的標(biāo)簽來實(shí)現(xiàn)VPN路由的轉(zhuǎn)發(fā),組建VPN網(wǎng)絡(luò),從而可以在標(biāo)簽轉(zhuǎn)發(fā)表空間較小的設(shè) 備上實(shí)現(xiàn)VPN路由的轉(zhuǎn)發(fā),組建MPLS VPN網(wǎng)絡(luò)。當(dāng)然在標(biāo)簽轉(zhuǎn)發(fā)表空間較大的設(shè)備上使用 此方法可以更加充分地并有效地利用標(biāo)簽資源。本發(fā)明特別適用于分層L3VPN網(wǎng)絡(luò)中的 SPE將UPE路由轉(zhuǎn)發(fā)給PE路由修改下一跳的拓?fù)渲?。也就是說,在HoVPN網(wǎng)絡(luò)的SPE上為 了更有效地利用有限的標(biāo)簽資源,可以使用本發(fā)明提供的方法及相應(yīng)的裝置。具體地,在 HoVPN網(wǎng)絡(luò)中,SPE設(shè)備收到UPE路由并向PE轉(zhuǎn)發(fā)時(shí),如果需要改變下一跳為自己,這時(shí)候 需要重新申請(qǐng)內(nèi)層標(biāo)簽。本發(fā)明當(dāng)SPE上存在VRF并且VRF已經(jīng)獲取到標(biāo)簽時(shí),如果VPN 路由能夠?qū)氲皆揤RF,那么可以使用該VRF的標(biāo)簽作為新的內(nèi)層標(biāo)簽通告給PE,這樣做可 以節(jié)省大量的標(biāo)簽資源,同時(shí)路由如果頻繁的通告、撤銷,也不需要再修改標(biāo)簽轉(zhuǎn)發(fā)表,進(jìn) 一步提尚了系統(tǒng)效率。
[0080] 這種VPN路由標(biāo)簽分配方式就是對(duì)能導(dǎo)入VRF內(nèi)的所有路由條目都共用VRF的標(biāo) 簽。之所以可以使用VRF的標(biāo)簽作為路由標(biāo)簽,是因?yàn)橥ㄟ^二次路由匹配查找轉(zhuǎn)發(fā)能夠區(qū) 分VPN并確定下一跳出接口。要實(shí)現(xiàn)這種使用VRF的標(biāo)簽作為路由標(biāo)簽的功能需要考慮并 解決以下幾個(gè)問題:
[0081 ] 1、如果一個(gè)VPN內(nèi)的路由可以導(dǎo)入多個(gè)VRF,此時(shí)轉(zhuǎn)發(fā)此路由應(yīng)該選擇哪個(gè)VRF的 標(biāo)簽作為路由轉(zhuǎn)發(fā)標(biāo)簽(即內(nèi)層標(biāo)簽)?
[0082] 2、如果一個(gè)VPN內(nèi)的路由沒有可以導(dǎo)入的VRF,或者VRF沒有申請(qǐng)標(biāo)簽,此時(shí)轉(zhuǎn)發(fā) 此路由應(yīng)該如何選擇標(biāo)簽作為路由轉(zhuǎn)發(fā)標(biāo)簽?
[0083] 對(duì)于第一個(gè)問題如果路由可以導(dǎo)入到多個(gè)VRF,可以任意選擇其中一個(gè)有標(biāo)簽的 VRF的標(biāo)簽作為VPN路由的路由轉(zhuǎn)發(fā)標(biāo)簽。對(duì)于第二個(gè)問題,如果VRF沒有申請(qǐng)標(biāo)簽,或者 路由沒有可導(dǎo)入的VRF。路由只能按照默認(rèn)方式申請(qǐng)標(biāo)簽。
[0084] 本發(fā)明使用VRF標(biāo)簽作為路由轉(zhuǎn)發(fā)標(biāo)簽分配技術(shù),不需要考慮路由標(biāo)簽的創(chuàng)建和 回收,路由創(chuàng)建和回收不修改標(biāo)簽轉(zhuǎn)發(fā)表,標(biāo)簽的創(chuàng)建和回收只受VRF創(chuàng)建和刪除影響。
[0085] 本發(fā)明使用VRF標(biāo)簽作為轉(zhuǎn)發(fā)標(biāo)簽分配技術(shù),可以通過靜態(tài)和動(dòng)態(tài)兩種設(shè)置方式 進(jìn)行設(shè)置,靜態(tài)設(shè)置就是在編譯版本時(shí)就設(shè)定如果VRF有標(biāo)簽,路由能導(dǎo)入該VRF時(shí)就使用 該VRF的標(biāo)簽,動(dòng)態(tài)方式就是通過命令動(dòng)態(tài)設(shè)置導(dǎo)入VRF的路由使用VRF標(biāo)簽。兩者的區(qū) 別在于靜態(tài)設(shè)置使得系統(tǒng)從運(yùn)行開始始終使用本發(fā)明的標(biāo)簽分配技術(shù),動(dòng)態(tài)設(shè)置只是在設(shè) 置期間采用本發(fā)明的標(biāo)簽分配技術(shù),也就是說在設(shè)置期間產(chǎn)生的VPN路由使用導(dǎo)入的VRF 的標(biāo)簽的方式分配,當(dāng)設(shè)置清除以及設(shè)置之前產(chǎn)生的VPN路由仍然按照默認(rèn)的方式進(jìn)行標(biāo) 簽分配。
[0086] 以下結(jié)合圖9和圖10進(jìn)行詳細(xì)說明。
[0087] 圖9是采用本發(fā)明所描述的使用VRF標(biāo)簽做內(nèi)層標(biāo)簽方式后的HoVPN路由發(fā)布示 意圖,圖10是采用本發(fā)明所描述的使用VRF標(biāo)簽做內(nèi)層標(biāo)簽方式后的HoVPN數(shù)據(jù)轉(zhuǎn)發(fā)示意 圖,如圖9和圖10所示,硬件部分由五臺(tái)路由器組成,其中2臺(tái)作為私有網(wǎng)絡(luò)客戶端,即CEl 和CE2 ;-臺(tái)作為邊緣路由器UPE ; -臺(tái)作為PE路由器;一臺(tái)作為SPE路由器。本實(shí)施例僅 作為一個(gè)例子組建一個(gè)最基本的MPLS網(wǎng)絡(luò),在PE設(shè)備上采用靜態(tài)配置的方式使用本發(fā)明 技術(shù)進(jìn)行VPN路由標(biāo)簽分配,然后兩端CE互發(fā)VPN數(shù)據(jù)報(bào)文,流量能夠互通。軟件部分的 處理步驟如下:
[0088] 第1步:在PE和UPE之間開啟MPLS,建立MPLS標(biāo)簽交換通道LSP,并建立BGP鄰 居。
[0089] 第2步:在UPE路由器上,為CEl創(chuàng)建VRF,在PE路由器上,為CE2創(chuàng)建VRF,并使 得PE和UPE上有相同的RT設(shè)置。
[0090] 第3步:將CEl、CE2分別與UPE和PE建立EBGP鄰居,并從CEl,CE2分別向UPE和 PE 灌入 VPN 路由,例如灌入 2 條 VPN 路由 192. 168. L 0/24、192. 168.2.0/24。
[0091] 第4步:使用本發(fā)明提供的方法,在SPE上創(chuàng)建VRF并設(shè)定RD,只有設(shè)定了 RD才 表示該VRF生效,此時(shí)會(huì)從標(biāo)簽池中分配一個(gè)標(biāo)簽給該VRF,本實(shí)例給該VRF分配標(biāo)簽300。 此時(shí),SPE收到來自UPE的兩條VPN路由,可以看到導(dǎo)入到VRF的兩條VPN路由使用了相同 的標(biāo)簽,即VRF標(biāo)簽300。
[0092] SPE設(shè)備上處理過程如圖7所示(圖7僅以192. 168. 1. 0/24為例):SPE將路由 192. 168. L 0/24和192. 168. 2. 0/24導(dǎo)入到自己的對(duì)應(yīng)VRF中,SPE上轉(zhuǎn)發(fā)UPE的VPN路由 給PE,并修改下一跳是自己,使用對(duì)應(yīng)的VRF的標(biāo)簽值L2, 即300作為新的內(nèi)層標(biāo)簽并通告 給PE。
[0093] 在如圖5所示的已有的HoVPN方案中,將在SPE上會(huì)分別為每一條VPN路由進(jìn)行標(biāo) 簽分配,本實(shí)例給兩條路由分別分配了標(biāo)簽100,200,分配流程如圖5所示。與已有的HoVPN 方案比較,本發(fā)明對(duì)于可以導(dǎo)入到對(duì)應(yīng)VRF的VPN路由,均采用VRF的標(biāo)簽作為內(nèi)層標(biāo)簽, 從而節(jié)省了標(biāo)簽使用量。
[0094] 第6步:CEl和CE2相互發(fā)包,流量可以互通,而此時(shí)SPE設(shè)備中VPN路由占用的 標(biāo)簽轉(zhuǎn)發(fā)表空間只有1個(gè)。如圖10所示,當(dāng)CE2向CEl發(fā)送數(shù)據(jù)報(bào)文時(shí),在PE、SPE、UPE上 的處理過程如下:
[0095] CE2向CEl發(fā)送數(shù)據(jù)報(bào)文在PE上的處理過程:1、根據(jù)報(bào)文入接口的VRF屬性獲得 VPN ID號(hào);2、使用VPN ID號(hào)和目的IP地址查找VRF表,得到出接口、內(nèi)層出標(biāo)簽(即VPN 標(biāo)簽)和外層出標(biāo)簽(即SPE分配給PE的標(biāo)簽,如果是3標(biāo)簽不封裝);3、將內(nèi)外兩層標(biāo) 簽封裝到報(bào)文中;4、將報(bào)文從出接口中轉(zhuǎn)發(fā)出去。假設(shè)此時(shí)查到的內(nèi)層標(biāo)簽和外層標(biāo)簽分 別是17和23,那么封裝后報(bào)文結(jié)構(gòu)如下:
[0096]
[0097] 在SPE上的處理過程:1、找到內(nèi)層VPN標(biāo)簽,外層標(biāo)簽有可能還存在;2、根據(jù)VPN 標(biāo)簽找到對(duì)應(yīng)的VRF,并在VRF內(nèi)重新路由;3、根據(jù)在VRF內(nèi)新找到的路由,采用和PE上的 相似方式查找內(nèi)外層標(biāo)簽;4、將報(bào)文從出接口中轉(zhuǎn)發(fā)出去。假設(shè)此時(shí)查到的內(nèi)層標(biāo)簽和外 層標(biāo)簽分別是30, 26,那么封裝后報(bào)文結(jié)構(gòu)如下:
[0098]
[0099] 在UPE上的處理過程:1、判斷該數(shù)據(jù)包是一個(gè)標(biāo)簽包;2、取出VPN標(biāo)簽.外層標(biāo)簽 有可能還存在;3、先判斷是否有二次查找標(biāo)記,如果有二次查找標(biāo)記,那就需要根據(jù)該標(biāo)簽 獲取VPN ID號(hào),再根據(jù)報(bào)文中的目的地址進(jìn)行路由匹配查找轉(zhuǎn)發(fā),如果沒有二次路由查找 標(biāo)記,那就可以根據(jù)標(biāo)簽直接查找到出接口進(jìn)行報(bào)文轉(zhuǎn)發(fā);4、根據(jù)查找到的出接口,將報(bào)文 從出接接口轉(zhuǎn)發(fā)出去。轉(zhuǎn)發(fā)的時(shí)候剝離標(biāo)簽。轉(zhuǎn)發(fā)的報(bào)文結(jié)構(gòu)如下所示:
[0100]
[0101] 進(jìn)一步地,刪除VPN路由192.
168. 1. 0/24,在刪除過程中保持路由 192. 168. 2. 0/24上的報(bào)文發(fā)送,此時(shí)可以發(fā)現(xiàn)沒有丟包現(xiàn)象,說明VPN路由沒有刪除完全 時(shí)對(duì)應(yīng)的標(biāo)簽轉(zhuǎn)發(fā)表始終保持正常。
[0102] 進(jìn)一步地,刪除所有VPN路由,再查看標(biāo)簽轉(zhuǎn)發(fā)表,可以看到該VPN對(duì)應(yīng)的標(biāo)簽已 經(jīng)從標(biāo)簽轉(zhuǎn)發(fā)表中刪除。再刪除SPE上的VPN配置,并查看標(biāo)簽池,可以看到原先分配給該 VPN的標(biāo)簽被回收到標(biāo)簽池中。
[0103] 進(jìn)一步地,先不刪除VPN內(nèi)的路由,而是在SPE上直接刪除VPN的配置,此時(shí)會(huì)發(fā) 現(xiàn)在刪除VPN的配置時(shí),最后查看標(biāo)簽池看到分配給該VPN的標(biāo)簽被回收,而兩條VPN路由 重新按照每路由每標(biāo)簽的方式向標(biāo)簽池申請(qǐng)標(biāo)簽。
[0104] 綜上所述,本發(fā)明具有以下技術(shù)效果:本發(fā)明能夠使用盡可能少量的標(biāo)簽實(shí)現(xiàn) VPN路由的轉(zhuǎn)發(fā)。
[0105] 盡管上文對(duì)本發(fā)明進(jìn)行了詳細(xì)說明,但是本發(fā)明不限于此,本技術(shù)領(lǐng)域技術(shù)人員 可以根據(jù)本發(fā)明的原理進(jìn)行各種修改。因此,凡按照本發(fā)明原理所作的修改,都應(yīng)當(dāng)理解為 落入本發(fā)明的保護(hù)范圍。
【主權(quán)項(xiàng)】
1. 一種為VPN路由分配標(biāo)簽的方法,其特征在于,包括: 上層骨干網(wǎng)邊緣SPE設(shè)備檢測(cè)來自下層骨干網(wǎng)邊緣UPE設(shè)備的VPN路由; 當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),SPE設(shè)備判斷是否存在能夠?qū)胨鯲PN路由 的虛擬私有網(wǎng)路由轉(zhuǎn)發(fā)實(shí)例VRF ; 若判斷存在能夠?qū)胨鯲PN路由的VRF,則將所述VPN路由導(dǎo)入到相應(yīng)的VRF,并將 所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,在SPE設(shè)備檢測(cè)來自UPE設(shè)備的VPN路由 之前,還包括: 在SPE設(shè)備上,創(chuàng)建VRF ; 通過設(shè)定路由區(qū)分符RD,使所創(chuàng)建的VRF有效; 從標(biāo)簽池中取出一個(gè)標(biāo)簽,并分配給所述有效的VRF。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,所述SPE設(shè)備判斷是否存在能夠?qū)胨?VPN路由的VRF的步驟包括: SPE設(shè)備判斷是否存在已創(chuàng)建的VRF ; 當(dāng)存在已創(chuàng)建的VRF時(shí),將所述VPN路由攜帶的路由目標(biāo)屬性RT與所述已創(chuàng)建VRF中 的RT進(jìn)行匹配; 若所述VPN路由攜帶的RT與所述已創(chuàng)建VRF中的RT匹配,則判斷存在能夠?qū)胨?VPN路由的VRF。4. 根據(jù)權(quán)利要求1-3任意一項(xiàng)所述的方法,其特征在于,當(dāng)存在多個(gè)能夠?qū)胨鯲PN 路由的VRF時(shí),SPE設(shè)備將所述VPN路由分別導(dǎo)入到所述多個(gè)VRF中,并選取任意一個(gè)VRF 的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。5. 根據(jù)權(quán)利要求4所述的方法,其特征在于,還包括: 當(dāng)不存在能夠?qū)胨鯲PN路由的VRF或存在的能夠?qū)胨鯲PN路由的VRF沒有分 配到標(biāo)簽時(shí),則SPE設(shè)備通過默認(rèn)方式為所述VPN路由申請(qǐng)內(nèi)層標(biāo)簽。6. -種為VPN路由分配標(biāo)簽的裝置,其特征在于,包括: 檢測(cè)模塊,用于檢測(cè)來自下層骨干網(wǎng)邊緣UPE設(shè)備的VPN路由; 判斷模塊,用于當(dāng)檢測(cè)到來自UPE設(shè)備的VPN路由時(shí),判斷是否存在能夠?qū)胨鯲PN 路由的虛擬私有網(wǎng)路由轉(zhuǎn)發(fā)實(shí)例VRF ; 分配模塊,用于在判斷存在能夠?qū)胨鯲PN路由的VRF時(shí),將所述VPN路由導(dǎo)入到相 應(yīng)的VRF,并將所述VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。7. 根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: VRF創(chuàng)建模塊,用于在檢測(cè)來自UPE設(shè)備的VPN路由之前創(chuàng)建VRF,通過設(shè)定路由區(qū)分 符RD,使所創(chuàng)建的VRF有效,并從標(biāo)簽池中取出一個(gè)標(biāo)簽,分配給所述有效的VRF。8. 根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述判斷模塊判斷是否存在已創(chuàng)建的 VRF,當(dāng)存在已創(chuàng)建的VRF時(shí),將所述VPN路由攜帶的路由目標(biāo)屬性RT與所述已創(chuàng)建VRF中 的RT進(jìn)行匹配,若所述VPN路由攜帶的RT與所述已創(chuàng)建VRF中的RT匹配,則判斷存在能 夠?qū)胨鯲PN路由的VRF。9. 根據(jù)權(quán)利要求6-8任意一項(xiàng)所述的裝置,其特征在于,當(dāng)存在多個(gè)能夠?qū)胨鯲PN 路由的VRF時(shí),所述分配模塊將所述VPN路由分別導(dǎo)入到所述多個(gè)VRF中,并選取任意一個(gè) VRF的標(biāo)簽作為所述VPN路由的內(nèi)層標(biāo)簽。10.根據(jù)權(quán)利要求9所述的裝置,其特征在于,當(dāng)不存在能夠?qū)胨鯲PN路由的VRF 或存在的能夠?qū)胨鯲PN路由的VRF沒有分配到標(biāo)簽時(shí),所述分配模塊通過默認(rèn)方式為 所述VPN路由申請(qǐng)內(nèi)層標(biāo)簽。
【文檔編號(hào)】H04L12/723GK106034075SQ201510103125
【公開日】2016年10月19日
【申請(qǐng)日】2015年3月9日
【發(fā)明人】王璇, 陳東方
【申請(qǐng)人】中興通訊股份有限公司