專利名稱:基于以太接口針對虛擬專用網(wǎng)流量實(shí)現(xiàn)服務(wù)質(zhì)量的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種基于以太接口針對VPN(VirtualPrivate Networks,虛擬專用網(wǎng))流量實(shí)現(xiàn)QoS(Quality of Service,服務(wù)質(zhì)量)的方法。
背景技術(shù):
互聯(lián)網(wǎng)經(jīng)過這些年的發(fā)展,已經(jīng)走進(jìn)了千家萬戶,推動網(wǎng)絡(luò)迅猛發(fā)展的,就是熟知的TCP/IP(Transmission Control Protocol/Internetworking Protocol,傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議)。該協(xié)議的出現(xiàn)解決了很多網(wǎng)絡(luò)互聯(lián)的問題,規(guī)定了所有網(wǎng)絡(luò)設(shè)備執(zhí)行的標(biāo)準(zhǔn)。其核心內(nèi)容就是互聯(lián)網(wǎng)協(xié)議(Internetworking Protocol),即IP。
通過路由器這樣的三層設(shè)備根據(jù)IP頭轉(zhuǎn)發(fā)數(shù)據(jù)包存在很多缺陷,包括轉(zhuǎn)發(fā)效率低下、無法有效的提供QoS保證等,這些問題,加上ATM(Asynchronous Transfer Mode,異步傳輸模式)技術(shù)積累的經(jīng)驗,誕生了MPLS(Multiprotocol Label Switching,多協(xié)議標(biāo)簽交換)技術(shù)。
目前,MPLS技術(shù)的主要應(yīng)用方向是VPN,通行的幾種MPLS VPN(基于MPLS的VPN)技術(shù)包括VPLS(Virtual Private LAN Services,虛擬專用LAN業(yè)務(wù))、VPWS(Virtual Private Wire Service,虛擬專用線路業(yè)務(wù))、L3 VPN(三層VPN)。不論是哪一種VPN,基本的網(wǎng)絡(luò)結(jié)構(gòu)都是一樣的,都是按照CE-PE-P-PE-CE的結(jié)構(gòu)組建網(wǎng)絡(luò)(如圖1所示),除了P設(shè)備以外,其余設(shè)備都是必須存在的。其中CE(customer Edge,用戶邊緣設(shè)備)設(shè)備就是客戶邊緣設(shè)備,用來連接運(yùn)營商網(wǎng)絡(luò)的路由器或者交換機(jī),負(fù)責(zé)將用戶的數(shù)據(jù)包轉(zhuǎn)發(fā)至PE設(shè)備上;PE(Provider Edge,運(yùn)營商邊緣設(shè)備)設(shè)備就是運(yùn)營商邊緣路由器,由運(yùn)營商負(fù)責(zé)維護(hù),連接客戶站點(diǎn)中的CE設(shè)備,主要功能是維護(hù)VPN信息,以及對報文插入MPLS標(biāo)簽頭的操作;P(Provider,供應(yīng)商設(shè)備)設(shè)備就是運(yùn)營商路由器,處于運(yùn)營商網(wǎng)絡(luò)核心位置,不和任何客戶站點(diǎn)中的設(shè)備(CE)連接,不需要維護(hù)任何VPN信息,只需要進(jìn)行MPLS標(biāo)簽轉(zhuǎn)發(fā)即可。不論P(yáng)還是PE,都需要在本地為相應(yīng)的路由生成FEC(Forwarding Equivalence Class,轉(zhuǎn)發(fā)等價類),然后為每一個FEC分配本地標(biāo)簽,再通過LDP(Label Distribution Protocol標(biāo)簽分發(fā)協(xié)議)將標(biāo)簽值通告給自己的上游設(shè)備。
需要說明一下MPLS數(shù)據(jù)包在上述網(wǎng)絡(luò)中轉(zhuǎn)發(fā)的過程,報文從CE設(shè)備發(fā)出到達(dá)PE設(shè)備之后,由PE為該報文插入兩層MPLS標(biāo)簽頭,內(nèi)層標(biāo)簽是已經(jīng)為VPN實(shí)例分配好的VPN標(biāo)簽,由對端PE設(shè)備通告到本地,處于標(biāo)簽堆棧的棧底位置,其S位置1,S是MPLS標(biāo)簽頭中標(biāo)識標(biāo)簽堆棧棧底位的一個比特(bit);外層標(biāo)簽是MPLS轉(zhuǎn)發(fā)表中對應(yīng)該VPN的出口標(biāo)簽,由下游P(或者PE)設(shè)備通告到本地,其S位置0,即使一個數(shù)據(jù)包被插入了不止兩層MPLS標(biāo)簽,除了棧底的標(biāo)簽以外,其它標(biāo)簽的S為都被置0。標(biāo)簽棧封裝好以后,走M(jìn)PLS轉(zhuǎn)發(fā)流程將報文從上聯(lián)公網(wǎng)的接口發(fā)送出去。報文到達(dá)對端PE以后做相反的操作,即剝離MPLS標(biāo)簽,然后查找相應(yīng)的VPN轉(zhuǎn)發(fā)表,將報文轉(zhuǎn)發(fā)給CE設(shè)備。
伴隨著網(wǎng)絡(luò)的發(fā)展,各種基于Internet網(wǎng)絡(luò)的應(yīng)用業(yè)務(wù)也應(yīng)運(yùn)而生,包括VoIP(Voice Over Internet Protocol,互聯(lián)網(wǎng)電話)、IPTV(Internet ProtocolTelevision,互聯(lián)網(wǎng)協(xié)議電視)等等。為了安全或者其它原因,這些業(yè)務(wù)往往需要基于VPN隧道開設(shè),相應(yīng)的,需要為這些對轉(zhuǎn)發(fā)時延要求比較高的業(yè)務(wù)提供QoS保障,包括帶寬保障,低時延,CPU(Central Processing Unit,中央處理器)優(yōu)先調(diào)度等等。各種不同的轉(zhuǎn)發(fā)方式都能夠不同程度的實(shí)現(xiàn)QoS保障。報文基于IP轉(zhuǎn)發(fā)時,可以通過ToS(Type of Service,服務(wù)類型)字段的值區(qū)分不同的業(yè)務(wù)流量,進(jìn)而采取不同的QoS策略;報文基于MPLS標(biāo)簽轉(zhuǎn)發(fā)時,可以通過MPLS標(biāo)簽頭中的EXP(experiment,實(shí)驗)位定義不同的值,用來區(qū)分各個業(yè)務(wù)流量,即通常所說的E-LSP(EXP-LSP,通過EXP字段在LSP上實(shí)現(xiàn)差分服務(wù)的方法),或者采用L-LSP(Label-LSP,通過Label+EXP字段在LSP上實(shí)現(xiàn)差分服務(wù)的方法)的方式,即使用EXP加上標(biāo)簽值的方式區(qū)分業(yè)務(wù)流。那么對于一條VPN流量如何作QoS處理呢?由于MPLS報文在網(wǎng)絡(luò)中轉(zhuǎn)發(fā)時,完全依據(jù)外層MPLS標(biāo)簽的label值判斷流量方向(此處“l(fā)abel”指外層MPLS標(biāo)簽的前20個bit,也就是標(biāo)簽轉(zhuǎn)發(fā)過程中真正被使用并替換的部分,外層MPLS標(biāo)簽一共32個bit),所以只能針對最外層MPLS標(biāo)簽的EXP字段的值定義QoS策略。由于外層MPLS標(biāo)簽值和內(nèi)層VPN標(biāo)簽值并沒有直接的一對一關(guān)系,往往多個VPN會綁定同一個LSP(Label Switch Path,標(biāo)簽交換路徑),導(dǎo)致外層的出標(biāo)簽值一樣,所以僅僅依靠這樣的方式不能夠針對VPN流量做出合適的QoS行為。如果采用直接到棧底找到VPN標(biāo)簽的EXP值的方式也不可行,原因是,可能不同的VPN流量定義了相同的EXP值,無法加以區(qū)分。如果采用直接到棧底找到VPN標(biāo)簽的label值的方式也不可行,原因是對于P或者PE設(shè)備來說,發(fā)送出去的數(shù)據(jù)包所插入的標(biāo)簽是對端通告的,很有可能出現(xiàn)對端PE設(shè)備不止一臺,同時又通告了相同VPN標(biāo)簽值的情況,因為標(biāo)簽的分配是本地行為。
目前針對VPN流量的QoS方式還比較少,一般現(xiàn)有技術(shù)不能夠很好的識別VPN流量,大多只是能夠識別普通MPLS流量,然后通過E-LSP或者L-LSP的方式對流量實(shí)行分類、制定優(yōu)先級、限速等操作,無法很好的針對單個VPN流量實(shí)現(xiàn)QoS。另外,也有一些通過信令交互、協(xié)商對VPN流量進(jìn)行控制的方式,例如通過RSVP(Resource ReSerVation Protocol,資源預(yù)留協(xié)議)作外層標(biāo)簽的方法。這類方法相對較為繁瑣,對設(shè)備的控制層面要求也比較高。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題就是提供一種基于以太接口針對VPN流量實(shí)現(xiàn)QoS的方法,能夠在PE設(shè)備連接公網(wǎng)的接口上實(shí)現(xiàn)針對VPN流量的QoS,在本地實(shí)現(xiàn)對向公網(wǎng)轉(zhuǎn)發(fā)的VPN流量的控制。
為了解決上述技術(shù)問題,本發(fā)明提供一種基于以太接口針對虛擬專用網(wǎng)VPN流量實(shí)現(xiàn)服務(wù)質(zhì)量QoS的方法,包括如下步驟
(1)在運(yùn)營商邊緣設(shè)備,即PE設(shè)備上針對需要做QoS處理的VPN,提取對端PE通告的內(nèi)層標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值、以及對端PE的媒體訪問控制MAC地址,組成VPN-QoS表;(2)當(dāng)有數(shù)據(jù)包從所述PE設(shè)備的以太接口發(fā)出時,跟所述VPN-QoS表進(jìn)行比較,如果符合表中的VPN特征,即作QoS處理。
進(jìn)一步地,所述步驟(1)執(zhí)行之前,需要在PE設(shè)備上創(chuàng)建VPN實(shí)例,并與對端PE設(shè)備建立信令交互機(jī)制。
進(jìn)一步地,與對端PE設(shè)備建立信令交互機(jī)制后,三層VPN使用多協(xié)議邊界網(wǎng)關(guān)協(xié)議MPBGP向?qū)Χ薖E通告VPN標(biāo)簽,二層VPN按照Martini或Kompella草案的要求使用標(biāo)簽分發(fā)協(xié)議LDP或邊界網(wǎng)關(guān)協(xié)議BGP向?qū)Χ薖E通告VPN標(biāo)簽。
進(jìn)一步地,所述步驟(1)包括如下步驟(1.1)在PE設(shè)備上針對需要做QoS處理的VPN,提取對端PE通告的內(nèi)層標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值;(1.2)記錄學(xué)習(xí)到標(biāo)簽交換路徑LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC;(1.3)將對端PE設(shè)備通告過來的VPN標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值,以及LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC一同組成VPN-QoS表;所述VPN-QoS表中,每個VPN實(shí)例對應(yīng)一個序號;(1.4)若需要對該VPN流量作QoS處理,將生成的VPN-QoS表通告給VPN綁定的LSP的出接口。
進(jìn)一步地,所述步驟(1.2)包括如下步驟(1.2.1)找到VPN綁定的LSP的出接口,稱為接口O;(1.2.2)判斷接口O是否為以太接口;如果是,執(zhí)行下一步;(1.2.3)記錄接口O學(xué)習(xí)到該LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC。
進(jìn)一步地,所述步驟(2)包括如下步驟
(2.1)PE設(shè)備的接口上綁定VPN-QoS轉(zhuǎn)發(fā)表;(2.2)查找所轉(zhuǎn)發(fā)報文的2層鏈路報頭的目的MAC,若該MAC地址與需要作QoS的VPN在VPN-QoS表中的MAC地址一致,則執(zhí)行下一步;(2.3)若所述轉(zhuǎn)發(fā)報文包是只有一層VPN標(biāo)簽的包,則直接執(zhí)行下一步;否則,查找報文包外層標(biāo)簽的label值,如與需要作QoS的VPN在VPN-QoS表中的下游設(shè)備通告的外層標(biāo)簽值一致,則執(zhí)行下一步;(2.4)查找報文包的VPN標(biāo)簽的label值,并判斷該VPN標(biāo)簽是否與需要作QoS的VPN在VPN-QoS表中的對端PE通告的內(nèi)層標(biāo)簽值一致,若一致,則對該報文做QoS處理。
進(jìn)一步地,所述步驟(2.1)綁定VPN-QoS轉(zhuǎn)發(fā)表后,還需要找到需要作QoS處理的VPN在VPN-QoS轉(zhuǎn)發(fā)表中的序號。
進(jìn)一步地,所述步驟(2.1)執(zhí)行之后,還需要判斷所述PE設(shè)備的接口是否是以太接口,如果是,才執(zhí)行步驟(2.2)。
進(jìn)一步地,所述步驟(2.2)執(zhí)行之后,還需要查找該以太報文頭的協(xié)議號,判斷該報文是否是多協(xié)議標(biāo)簽交換MPLS報文,如果是MPLS報文,才執(zhí)行步驟(2.3)。
進(jìn)一步地,所述步驟(2.3)包括如下步驟查找處于標(biāo)簽堆棧最外層的MPLS標(biāo)簽的S位數(shù)值,判斷S的值是多少,如果是1的話說明該標(biāo)簽包已經(jīng)是棧底標(biāo)簽,直接執(zhí)行步驟(2.4);否則,查找報文包外層標(biāo)簽的label值,如與需要作QoS的VPN在VPN-QoS表中的下游設(shè)備通告的外層標(biāo)簽值一致,則執(zhí)行步驟(2.4)。
進(jìn)一步地,所述步驟(2.4)包括如下步驟(2.4.1)查找所述報文下一層標(biāo)簽的S值,若是1,則執(zhí)行下一步,若否,繼續(xù)執(zhí)行步驟(2.4.1);(2.4.2)檢查該VPN標(biāo)簽的label值,判斷該VPN標(biāo)簽是否與需要作QoS的VPN在VPN-QoS表中的對端PE通告的內(nèi)層標(biāo)簽值一致,若一致,則對該報文做QoS處理。
本發(fā)明采用完全由本地設(shè)備處理的方式實(shí)現(xiàn)了針對VPN流量的QoS處理,使轉(zhuǎn)發(fā)層面只需要按照預(yù)先制定好的轉(zhuǎn)發(fā)表對數(shù)據(jù)包進(jìn)行相應(yīng)的匹配操作,轉(zhuǎn)發(fā)表形成所依據(jù)的特征也很簡單;另外,由于沒有設(shè)備之間的信令交互,不會對控制層面添加過多的負(fù)擔(dān)。
圖1是現(xiàn)有技術(shù)中一個MPLS網(wǎng)絡(luò)的示意圖;圖2是現(xiàn)有技術(shù)中一個VPN實(shí)例綁定內(nèi)、外層標(biāo)簽的流程;圖3是本發(fā)明實(shí)施例根據(jù)VPN的特征生成VPN-QoS表,并且告知接口的過程;圖4是本發(fā)明實(shí)施例VPN-QoS模塊綁定到流量的出接口上以后,轉(zhuǎn)發(fā)模塊的處理流程;圖5是本發(fā)明實(shí)施例針對VPN-QoS表中的特征參數(shù)2的存在原因說明示例;圖6是本發(fā)明實(shí)施例針對VPN-QoS表中的特征參數(shù)3的存在原因說明示例。
具體實(shí)施例方式
通過分析不難看出,許多針對VPN的QoS需求只要在PE設(shè)備的出口處理就能夠得到很好的效果,也不會增加P設(shè)備的負(fù)擔(dān),因為P設(shè)備要處理的數(shù)據(jù)包數(shù)量往往遠(yuǎn)大于PE設(shè)備,相應(yīng)的,對于P設(shè)備的定位也是更加注重包處理能力。
本發(fā)明中,為了能夠?qū)PN流量進(jìn)行控制,關(guān)鍵處在于如何識別VPN流量,只要能夠通過某種特征識別出特定的VPN數(shù)據(jù)包,就可以繼續(xù)采取下一步動作,進(jìn)行QoS處理。該過程包括對VPN流量的特征定義,以及建立轉(zhuǎn)發(fā)表,最后在流量流經(jīng)的接口上應(yīng)用相關(guān)策略。在這里把特征參數(shù)組成的集合定義成一個表格的形式,稱為VPN-QoS表。
本發(fā)明所述的方法包括以下步驟步驟1,在PE設(shè)備上創(chuàng)建VPN實(shí)例,并與對端PE設(shè)備建立信令交互機(jī)制,相應(yīng)的,三層(L3)VPN使用MPBGP(Multiprotocol BGP,多協(xié)議邊界網(wǎng)關(guān)協(xié)議)向?qū)Χ薖E通告VPN標(biāo)簽,二層(L2)VPN按照Martini或Kompella草案的要求使用LDP或BGP(Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議)向?qū)Χ薖E通告VPN標(biāo)簽;步驟2,針對需要做QoS處理的VPN,提取相應(yīng)的參數(shù),包括接口學(xué)習(xí)到的對端PE的MAC(Media Access Control,媒體訪問控制)地址,對端PE通告的內(nèi)層標(biāo)簽值,下游設(shè)備通告的外層標(biāo)簽值,組成VPN-QoS表;步驟3,在所述PE設(shè)備以太接口上啟用針對該VPN流量的QoS,當(dāng)有數(shù)據(jù)包從該接口發(fā)出時,跟所述VPN-QoS表進(jìn)行比較,如果符合表中定義的VPN流量特征,即作QoS處理。
下面結(jié)合附圖及具體實(shí)施例對本發(fā)明進(jìn)行詳細(xì)說明。
圖1是一個簡單的示意圖,指出了在當(dāng)前的網(wǎng)絡(luò)中,PE和CE設(shè)備所處的位置和相互之間連接的方式。在“MPLS網(wǎng)絡(luò)”中,所包含的主要是P設(shè)備,數(shù)量視網(wǎng)絡(luò)需要而定,承擔(dān)標(biāo)簽轉(zhuǎn)發(fā)的任務(wù)。
圖2示出了當(dāng)VPN實(shí)例被創(chuàng)建以后,VPN標(biāo)簽的通告和綁定過程,以及與外層標(biāo)簽匹配的過程。由于該技術(shù)是已經(jīng)廣泛應(yīng)用,并且已經(jīng)有相關(guān)標(biāo)準(zhǔn),所以只作簡單說明,處理步驟如下步驟201,在PE設(shè)備上創(chuàng)建VPN實(shí)例,該步驟純粹是本地行為,沒有和對端產(chǎn)生任何的信息交互;步驟202,VPN實(shí)例被創(chuàng)建以后,PE設(shè)備需要為該實(shí)例分配一個本地標(biāo)簽,該標(biāo)簽即所說的本地內(nèi)層標(biāo)簽,和外層標(biāo)簽沒有任何聯(lián)系,完全單獨(dú)存在;當(dāng)相應(yīng)的信令交互機(jī)制被建立以后,該標(biāo)簽會被通告給對端PE設(shè)備;步驟203,為了向?qū)Χ薖E設(shè)備通告本地內(nèi)層標(biāo)簽值,以及接收對端通告過來的標(biāo)簽值,本地PE需要和對端建立一定的信令交互機(jī)制;在L3VPN中,現(xiàn)在主要采用MPBGP的方式;在L2VPN中,目前有兩種信令機(jī)制Martini和Kompella,本發(fā)明主要針對Martini方式;步驟204,信令交互機(jī)制建立之后,本地PE設(shè)備會收到對端PE通告過來的VPN標(biāo)簽;本地PE將收到的標(biāo)簽和本地分配的標(biāo)簽對應(yīng),建立內(nèi)層標(biāo)簽的轉(zhuǎn)發(fā)表;步驟205,上述所有的工作都完成之后,VPN在控制層面的工作已經(jīng)完成,需要和轉(zhuǎn)發(fā)層面建立聯(lián)系,就需要令VPN能夠匹配上一條LSP;這條被匹配的LSP必須是已經(jīng)建立好的,即使用通常意義上說的MPLS轉(zhuǎn)發(fā)表進(jìn)行匹配。
這樣,當(dāng)數(shù)據(jù)包被PE設(shè)備從上連MPLS網(wǎng)絡(luò)的接口發(fā)送出去的時候,就會帶有兩層MPLS標(biāo)簽內(nèi)層是對端PE通告過來的VPN標(biāo)簽,外層是下游P或者PE設(shè)備通告的LDP或者RSVP標(biāo)簽。
圖3是緊接著圖2的處理過程,示出了VPN-QoS表的生成過程,主要內(nèi)容是提取VPN流量特征參數(shù),利用這些特征參數(shù)識別一個VPN流量,然后把生成的VPN-QoS表通告給接口;這樣,接口可以按照這張表描述的特征在轉(zhuǎn)發(fā)流量的過程中找到屬于該VPN流量的數(shù)據(jù)包,再做出進(jìn)一步QoS操作。
步驟301,指出需要生成VPN-QoS表的VPN流量,便于PE設(shè)備對該VPN流量進(jìn)一步提取特征參數(shù);此處假設(shè)該VPN為X,針對X綁定QoS策略;步驟302,在圖2描述的流程中,PE設(shè)備之間的信令交互機(jī)制已經(jīng)建立,并且已經(jīng)針對VPN實(shí)例分配了本地標(biāo)簽,同時也已經(jīng)將標(biāo)簽通告到了對端PE。另外,外層LSP已經(jīng)建立,所以此處只需要將對端PE設(shè)備通告過來的VPN標(biāo)簽值和下游設(shè)備通告的外層標(biāo)簽值記錄下來即可;這兩個參數(shù)作為VPN-QoS表的參數(shù)被記錄;步驟303,由于LSP已經(jīng)生成,并且已經(jīng)和X綁定,所以可以很容易地找到X綁定的LSP的出接口,給該接口取名叫作O(即out),找到以后進(jìn)入步驟304;步驟304,由于本發(fā)明實(shí)現(xiàn)的針對VPN流量的QoS是基于以太接口的,所以需要判斷X綁定的LSP的出接口是否為以太接口;如果是,進(jìn)入步驟305,如果不是,直接進(jìn)入步驟309,進(jìn)入其它流程處理;步驟305,由于X綁定的LSP的出接口,即接口O,是以太接口,所以通過ARP(Address Resolution Protocol,地址解析協(xié)議)解析,在這個接口上必然會學(xué)習(xí)到該LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC,即接口發(fā)出的以太報文二層幀頭里面的目的MAC;記錄下這個MAC地址,作為另外一個VPN-QoS表的特征參數(shù);步驟306,將步驟302記錄的兩個特征參數(shù)對端PE設(shè)備通告過來的VPN標(biāo)簽值(特征參數(shù)1)和下游設(shè)備通告的外層標(biāo)簽值(特征參數(shù)2),以及步驟305記錄的特征參數(shù)LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC(特征參數(shù)3)一同組成VPN-QoS表。事實(shí)上,這三個參數(shù)就是一個數(shù)據(jù)包被從接口發(fā)送出去的時候,在以太幀頭和MPLS標(biāo)簽頭里面攜帶的目的MAC以及兩層標(biāo)簽值;步驟307,判斷目前是否需要對VPN流量作QoS處理,因為在某些情況下,比如接口帶寬很充足,可以暫時不作QoS處理;如果需要,則進(jìn)入步驟308,如果不需要,則進(jìn)入步驟309,進(jìn)入其它流程處理;步驟308,目前需要對該VPN流量作QoS處理,將已經(jīng)生成的VPN-QoS表通告給接口O;這樣,當(dāng)有數(shù)據(jù)包從接口O轉(zhuǎn)發(fā)出去的時候,轉(zhuǎn)發(fā)層面就可以根據(jù)VPN-QoS表中記錄的三個特征參數(shù)去判斷該數(shù)據(jù)包是否需要作QoS處理;結(jié)束流程;步驟309,如果不需要作QoS處理,或者作QoS處理的條件不具備,那么就進(jìn)入其它流程處理。
以此類推,如果需要做QoS處理的VPN流量不止一個也沒有關(guān)系,只需要將每個VPN流量的三個特征參數(shù)分別對應(yīng)記錄在表中,讓轉(zhuǎn)發(fā)層面在數(shù)據(jù)包轉(zhuǎn)發(fā)的過程中查找就可以了。
接下來需要說明VPN-QoS表的結(jié)構(gòu),這樣便于理解轉(zhuǎn)發(fā)層面如何匹配特征參數(shù),如下表所示,是示意性的VPN-QoS表結(jié)構(gòu)。
具體說明如下表中的序號Index n是針對不同的VPN實(shí)例而言的,每一個VPN實(shí)例對應(yīng)一個Index;表中的特征參數(shù)1是對端PE設(shè)備通告過來的VPN標(biāo)簽值,即通常所說的內(nèi)層出方向上的label值;表中的特征參數(shù)2是下游設(shè)備通告的外層標(biāo)簽值,即通常所說的外層出方向上的label值;表中的特征參數(shù)3是LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC,即接口上學(xué)習(xí)到的下一跳接口MAC。
當(dāng)接口上需要針對VPN流量作QoS處理的時候,首先找到該VPN對應(yīng)的Index,然后按照后面的參數(shù)一個個匹配,全部匹配上了就作相應(yīng)的QoS處理。
目前已經(jīng)清楚了VPN-QoS表的生成條件需要那些特征參數(shù),以及表的結(jié)構(gòu),那么接下來就需要說明當(dāng)接口向外轉(zhuǎn)發(fā)數(shù)據(jù)包的時候以什么樣的步驟一一匹配上這三個特征參數(shù),從而識別出一條VPN流量。
圖4說明了如何在接口上通過匹配特征參數(shù)識別出VPN流量并進(jìn)行QoS處理的過程,需要說明的是,該過程針對從此接口往外轉(zhuǎn)發(fā)的報文生效,不會影響接收的報文的正常轉(zhuǎn)發(fā)。
步驟401,首先在接口上綁定VPN-QoS轉(zhuǎn)發(fā)表,找到需要作QoS處理的VPN的Index,以便接下來針對該Index對應(yīng)的特征參數(shù)識別VPN數(shù)據(jù)包;步驟402,由于本技術(shù)針對的是以太接口,所以需要提前判斷接口是否是以太接口,如果是,則繼續(xù)匹配,如果不是,則直接到步驟416,進(jìn)入其它流程處理;步驟403,查找所轉(zhuǎn)發(fā)報文的2層鏈路報頭的目的MAC,即為VPN-QoS表中的特征參數(shù)3,即LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC;步驟404,如果查找到的MAC地址確實(shí)在VPN-QoS表中,也確實(shí)是對應(yīng)了需要作QoS的Index后面的特征參數(shù)3,則進(jìn)入步驟405,否則直接到步驟416,進(jìn)入其它流程處理;
步驟405,查找以太報文頭的協(xié)議號;步驟406,判斷該報文是否是MPLS報文,例如MPLS單播報文協(xié)議號一般為8847;如果是MPLS報文,則進(jìn)入步驟407,否則直接到步驟416,進(jìn)入其它流程處理;步驟407,查找處于標(biāo)簽堆棧最外層的MPLS標(biāo)簽的S位數(shù)值,之所以需要提前作該操作,是考慮到可能啟用本技術(shù)的設(shè)備已經(jīng)是次末節(jié)點(diǎn),即可能存在PE設(shè)備之間背靠背直連,不經(jīng)過P設(shè)備的情況。這種情況下,如果末節(jié)點(diǎn)使用了隱式空標(biāo)簽機(jī)制,那么從接口發(fā)出的包就是一個只有一層VPN標(biāo)簽的包,也就不存在對特征參數(shù)2的匹配操作;步驟408,判斷S的值是多少,如果是1的話說明該標(biāo)簽包已經(jīng)是棧底標(biāo)簽,可以直接轉(zhuǎn)到步驟413,否則需要進(jìn)入步驟409,匹配特征參數(shù)2;步驟409,檢查外層標(biāo)簽的label值;步驟410,如果查找到的label值確實(shí)在VPN-QoS表中,也確實(shí)是對應(yīng)了需要作QoS的Index后面的特征參數(shù)2,則進(jìn)入步驟411,否則直接到步驟416,進(jìn)入其它流程處理;步驟411,如果特征參數(shù)3和特征參數(shù)2都已經(jīng)先后匹配上了,就可以繼續(xù)向下查找下一層標(biāo)簽的S值;這里所說的向下的意思是向棧底的方向,即從最外層標(biāo)簽向棧底標(biāo)簽的方向;由于每一層標(biāo)簽的結(jié)構(gòu)都是一樣的,所以這樣的查找非常簡單,只需要在轉(zhuǎn)發(fā)時向后偏移一定的bit就可以;步驟411的過程需要從最外層標(biāo)簽的label位向后偏移36個bit,即最外層標(biāo)簽的EXP(3個bit)+S(1個bit)+TTL(8個bit),以及下一層標(biāo)簽的label(20個bit)+EXP(3個bit)+S(1個bit)的總和;如果還需要往后查找,只要每次偏移32個bit(MPLS標(biāo)簽長度)即可;步驟412,判斷當(dāng)前查找的這一層標(biāo)簽的S值是否為1,如果是,即說明已經(jīng)是棧底標(biāo)簽,進(jìn)入步驟413處理,否則繼續(xù)按照前面說的bit偏移的方法回到步驟411查找一次,直到查找到S為1的標(biāo)簽;步驟413,既然該標(biāo)簽已經(jīng)是棧底標(biāo)簽,那么必定是一個VPN標(biāo)簽,即用來識別VPN的標(biāo)簽,所以該標(biāo)簽的label值即對應(yīng)VPN-QoS表中的特征參數(shù)1;檢查該標(biāo)簽的前20bit標(biāo)簽值;
步驟414,如果該label值是對應(yīng)了需要作QoS的Index后面的特征參數(shù)1,則進(jìn)入步驟415,否則轉(zhuǎn)到步驟416,進(jìn)入其它流程處理;步驟415,到此為止,VPN-QoS表中的三個特征參數(shù)都已經(jīng)成功匹配上這個被轉(zhuǎn)發(fā)的報文,可以認(rèn)為這是需要作QoS處理的VPN數(shù)據(jù)包,按照需求作相應(yīng)的QoS處理后,結(jié)束流程;做什么樣的QoS處理已經(jīng)不是本發(fā)明需要描述的內(nèi)容,所以不再詳細(xì)說明;步驟416,不論在哪個步驟判斷出該數(shù)據(jù)包不是需要作QoS的VPN數(shù)據(jù)包,都進(jìn)入本步驟處理,即直接進(jìn)入其它流程,不在本文的討論范圍之內(nèi)。
說明了PE連接公網(wǎng)的出口處理流程之后,為了進(jìn)一步解釋為什么要引入VPN-QoS表中的這三個特征參數(shù),而不引入其它的參數(shù)來定義VPN流量,需要通過圖示和文字結(jié)合的方式加以說明。
首先,特征參數(shù)1對應(yīng)的“對端PE設(shè)備通告過來的VPN標(biāo)簽值”應(yīng)該沒有異議,這是必須要使用的參數(shù),因為報文到了對端PE設(shè)備以后,就是通過該參數(shù)識別不同的VPN;其次,通過圖5討論一下特征參數(shù)2---“下游設(shè)備通告的外層標(biāo)簽值”的必要性,即證明僅僅通過特征參數(shù)1無法識別一條VPN流量。
如圖5所示的組網(wǎng)方式,三臺PE設(shè)備以線形組網(wǎng)方式直連,PE1分別和PE2、PE3都建立VPN的對接關(guān)系,那么PE2和PE3都會向PE1通告VPN標(biāo)簽,即內(nèi)層標(biāo)簽。此處PE2既作為PE設(shè)備也同時作為P設(shè)備使用。由于標(biāo)簽是本地有效的,很有可能出現(xiàn)PE2和PE3通告到PE1的VPN標(biāo)簽值相同的情況,所以單獨(dú)通過VPN標(biāo)簽值在出口上識別VPN流量不可行。但是如果加上外層標(biāo)簽值就可以規(guī)避一部分問題,因為從圖上可以看出,PE2和PE3用來建立連接的地址肯定不是一個地址,所以PE2上學(xué)習(xí)到的路由也不一樣,即在PE2上創(chuàng)建的FEC一定不會相同,自然會分配不同的標(biāo)簽通告到PE1。即PE1收到下游PE2設(shè)備通告過來的外層標(biāo)簽是不一樣的。
接下來需要通過圖6討論一下特征參數(shù)3---“LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC”的必要性,即證明僅僅通過特征參數(shù)1和特征參數(shù)2無法識別一條VPN流量。
如圖6所示,三臺PE設(shè)備通過一臺二層交換機(jī)連接在一起,并且建立了標(biāo)簽分發(fā)機(jī)制以及VPN對接關(guān)系。那么PE2和PE3都會向PE1通告VPN標(biāo)簽,即內(nèi)層標(biāo)簽,以及外層LDP標(biāo)簽。同樣,由于標(biāo)簽是本地有效的,很有可能出現(xiàn)PE2和PE3通告到PE1的VPN標(biāo)簽值相同的情況。同理通告的LDP標(biāo)簽值也有可能相同。也就是說,有可能PE1收到的來自PE2和PE3的內(nèi)外層標(biāo)簽都有可能相同,所以不能夠僅僅通過VPN標(biāo)簽值+外層標(biāo)簽值的方式在出口上識別VPN流量。不過由于三臺PE連接在交換機(jī)上的接口同處于一個局域網(wǎng)中,所以接口的MAC地址是不可能相同的。所以PE1分別向PE2和PE3發(fā)出的報文的目的MAC也不可能相同。
現(xiàn)在我們可以說明,當(dāng)PE1連接交換機(jī)的接口發(fā)出兩條VPN流量,其內(nèi)、外層標(biāo)簽值都相同的情況下,此時如果想?yún)^(qū)分它們,只要加上“目的MAC”這個參數(shù)就可以做到了。
綜上所述,本發(fā)明采用完全由本地PE設(shè)備處理的方式使用以太網(wǎng)接口實(shí)現(xiàn)了針對VPN流量的QoS處理,使轉(zhuǎn)發(fā)層面只需要按照預(yù)先制定好的轉(zhuǎn)發(fā)表對數(shù)據(jù)包進(jìn)行相應(yīng)的匹配操作,轉(zhuǎn)發(fā)表形成所依據(jù)的特征也很簡單;另外,由于沒有設(shè)備之間的信令交互,不會對控制層面添加過多的負(fù)擔(dān)。
盡管已經(jīng)說明和描述了本發(fā)明的優(yōu)選實(shí)施例,本領(lǐng)域的一般技術(shù)人員應(yīng)該理解可以在不超出本發(fā)明范圍的情況下,實(shí)施各種改變、變型和部件的同體替換。因此本發(fā)明不受限于所公開的實(shí)現(xiàn)本發(fā)明的具體實(shí)施例,本發(fā)明包括落在所附權(quán)利要求之內(nèi)的所有實(shí)施例。
權(quán)利要求
1.一種基于以太接口針對虛擬專用網(wǎng)VPN流量實(shí)現(xiàn)服務(wù)質(zhì)量QoS的方法,包括如下步驟(1)在運(yùn)營商邊緣設(shè)備,即PE設(shè)備上針對需要做QoS處理的VPN,提取對端PE通告的內(nèi)層標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值、以及對端PE的媒體訪問控制MAC地址,組成VPN-QoS表;(2)當(dāng)有數(shù)據(jù)包從所述PE設(shè)備的以太接口發(fā)出時,跟所述VPN-QoS表進(jìn)行比較,如果符合表中的VPN特征,即作QoS處理。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟(1)執(zhí)行之前,需要在PE設(shè)備上創(chuàng)建VPN實(shí)例,并與對端PE設(shè)備建立信令交互機(jī)制。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,與對端PE設(shè)備建立信令交互機(jī)制后,三層VPN使用多協(xié)議邊界網(wǎng)關(guān)協(xié)議MPBGP向?qū)Χ薖E通告VPN標(biāo)簽,二層VPN按照Martini或Kompella草案的要求使用標(biāo)簽分發(fā)協(xié)議LDP或邊界網(wǎng)關(guān)協(xié)議BGP向?qū)Χ薖E通告VPN標(biāo)簽。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟(1)包括如下步驟(1.1)在PE設(shè)備上針對需要做QoS處理的VPN,提取對端PE通告的內(nèi)層標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值;(1.2)記錄學(xué)習(xí)到標(biāo)簽交換路徑LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC;(1.3)將對端PE設(shè)備通告過來的VPN標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值,以及LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC一同組成VPN-QoS表;所述VPN-QoS表中,每個VPN實(shí)例對應(yīng)一個序號;(1.4)若需要對該VPN流量作QoS處理,將生成的VPN-QoS表通告給VPN綁定的LSP的出接口。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,所述步驟(1.2)包括如下步驟(1.2.1)找到VPN綁定的LSP的出接口,稱為接口O;(1.2.2)判斷接口O是否為以太接口;如果是,執(zhí)行下一步;(1.2.3)記錄接口O學(xué)習(xí)到該LSP下游設(shè)備與本地PE設(shè)備連接的接口MAC。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟(2)包括如下步驟(2.1)PE設(shè)備的接口上綁定VPN-QoS轉(zhuǎn)發(fā)表;(2.2)查找所轉(zhuǎn)發(fā)報文的2層鏈路報頭的目的MAC,若該MAC地址與需要作QoS的VPN在VPN-QoS表中的MAC地址一致,則執(zhí)行下一步;(2.3)若所述轉(zhuǎn)發(fā)報文包是只有一層VPN標(biāo)簽的包,則直接執(zhí)行下一步;否則,查找報文包外層標(biāo)簽的label值,如與需要作QoS的VPN在VPN-QoS表中的下游設(shè)備通告的外層標(biāo)簽值一致,則執(zhí)行下一步;(2.4)查找報文包的VPN標(biāo)簽的label值,并判斷該VPN標(biāo)簽是否與需要作QoS的VPN在VPN-QoS表中的對端PE通告的內(nèi)層標(biāo)簽值一致,若一致,則對該報文做QoS處理。
7.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟(2.1)綁定VPN-QoS轉(zhuǎn)發(fā)表后,還需要找到需要作QoS處理的VPN在VPN-QoS轉(zhuǎn)發(fā)表中的序號。
8.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟(2.1)執(zhí)行之后,還需要判斷所述PE設(shè)備的接口是否是以太接口,如果是,才執(zhí)行步驟(2.2)。
9.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟(2.2)執(zhí)行之后,還需要查找該以太報文頭的協(xié)議號,判斷該報文是否是多協(xié)議標(biāo)簽交換MPLS報文,如果是MPLS報文,才執(zhí)行步驟(2.3)。
10.根據(jù)權(quán)利要求6所述的方法,其特征在于,所述步驟(2.3)包括如下步驟查找處于標(biāo)簽堆棧最外層的MPLS標(biāo)簽的S位數(shù)值,判斷S的值是多少,如果是1的話說明該標(biāo)簽包已經(jīng)是棧底標(biāo)簽,直接執(zhí)行步驟(2.4);否則,查找報文包外層標(biāo)簽的label值,如與需要作QoS的VPN在VPN-QoS表中的下游設(shè)備通告的外層標(biāo)簽值一致,則執(zhí)行步驟(2.4)。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述步驟(2.4)包括如下步驟(2.4.1)查找所述報文下一層標(biāo)簽的S值,若是1,則執(zhí)行下一步,若否,繼續(xù)執(zhí)行步驟(2.4.1);(2.4.2)檢查該VPN標(biāo)簽的label值,判斷該VPN標(biāo)簽是否與需要作QoS的VPN在VPN-QoS表中的對端PE通告的內(nèi)層標(biāo)簽值一致,若一致,則對該報文做QoS處理。
全文摘要
本發(fā)明公開了一種基于以太接口針對虛擬專用網(wǎng)VPN流量實(shí)現(xiàn)服務(wù)質(zhì)量QoS的方法,包括在PE設(shè)備上針對需要做QoS處理的VPN,提取對端PE通告的內(nèi)層標(biāo)簽值、下游設(shè)備通告的外層標(biāo)簽值、以及對端PE的媒體訪問控制MAC地址,組成VPN-QoS表;當(dāng)有數(shù)據(jù)包從所述PE設(shè)備的以太接口發(fā)出時,跟所述VPN-QoS表進(jìn)行比較,如果符合表中的VPN特征,即作QoS處理。本發(fā)明采用完全由本地設(shè)備處理的方式實(shí)現(xiàn)了針對VPN流量的QoS處理,使轉(zhuǎn)發(fā)層面只需要按照預(yù)先制定好的轉(zhuǎn)發(fā)表對數(shù)據(jù)包進(jìn)行相應(yīng)的匹配操作,轉(zhuǎn)發(fā)表形成所依據(jù)的特征也很簡單;另外,由于沒有設(shè)備之間的信令交互,不會對控制層面添加過多的負(fù)擔(dān)。
文檔編號H04L29/06GK101087257SQ200710127569
公開日2007年12月12日 申請日期2007年7月3日 優(yōu)先權(quán)日2007年7月3日
發(fā)明者楊揚(yáng) 申請人:中興通訊股份有限公司