• <tr id="yyy80"></tr>
  • <sup id="yyy80"></sup>
  • <tfoot id="yyy80"><noscript id="yyy80"></noscript></tfoot>
  • 99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

    基于IP FRR的MPLS快速重路由實(shí)現(xiàn)

    2013-09-26 06:03:48駿,曹
    電子測(cè)試 2013年21期
    關(guān)鍵詞:表項(xiàng)鏈表通告

    李 駿,曹 敏

    (1.武漢郵電科學(xué)研究院,湖北武漢 430074; 2.武漢烽火網(wǎng)絡(luò)有限責(zé)任公司,湖北武漢 430074)

    0 引言

    多協(xié)議標(biāo)簽交換技術(shù)[1](MPLS-Multiprotocol Label Switching)屬于第三代網(wǎng)絡(luò)架構(gòu),是新一代IP高速骨干網(wǎng)絡(luò)交換的標(biāo)準(zhǔn)。現(xiàn)在各大運(yùn)營(yíng)商用MPLS技術(shù)承載骨干網(wǎng)的VPN業(yè)務(wù),對(duì)網(wǎng)絡(luò)可靠性有很高的要求,實(shí)時(shí)業(yè)務(wù)的恢復(fù)時(shí)間要求是50ms以內(nèi),因此,滿足恢復(fù)時(shí)間要求的基于MPLS的故障恢復(fù)方法引起了人們的關(guān)注。

    現(xiàn)有的MPLS故障恢復(fù)模型有很多,如Haskin[2]、Makam[3]等,基于這些模型,人們也提出了許多改進(jìn),為了滿足恢復(fù)時(shí)間的要求,一般采用快速重路由方式進(jìn)行保護(hù),即在故障之前建立備份路徑,故障發(fā)生時(shí)直接切換到備份路徑的保護(hù)方式,本地保護(hù)具有較短的故障發(fā)現(xiàn)時(shí)間,是理想的保護(hù)方式?;贚FA(Loop Free Alternate無(wú)環(huán))的IP FRR[4]的標(biāo)準(zhǔn)已經(jīng)出臺(tái)了幾年,而IP FRR已經(jīng)被許多廠商實(shí)現(xiàn),本文提出一種基于IP FRR的MPLS快速重路由簡(jiǎn)單軟件實(shí)現(xiàn)方法,有效地保護(hù)MPLS流量。詳細(xì)介紹了信令模塊——LDP[5]模塊和路由協(xié)議模塊以及MPLS模塊的交互和處理方式,并對(duì)典型的MPLS網(wǎng)絡(luò)進(jìn)行組網(wǎng)測(cè)試,以驗(yàn)證該實(shí)現(xiàn)的可行性。

    1 功能模塊結(jié)構(gòu)圖

    圖1 系統(tǒng)模塊間關(guān)系圖

    圖1所示為組成系統(tǒng)的各模塊之間關(guān)系圖。

    (1)路由模塊即實(shí)現(xiàn)路由協(xié)議功能的模塊,該模塊實(shí)現(xiàn)了IP FRR功能,在計(jì)算主用路由的同時(shí),還會(huì)根據(jù)LFA計(jì)算該路由的備份路由;根據(jù)不同的實(shí)現(xiàn),使能了IP FRR的路由模塊通告的路由信息可能有兩類,一類是路由信息中有專門標(biāo)識(shí)主用路由和備用路由的標(biāo)志(例如專門設(shè)置標(biāo)志位,表明通告的是主用路由還是備用路由),另一類是沒(méi)有專門標(biāo)志的(例如主用和備用路由通過(guò)cost路由屬性區(qū)分,cost即開銷,開銷小的為主用,開銷大的為備用),本文的實(shí)現(xiàn)基于第二類路由信息,信息主要包括目的網(wǎng)段D,下一跳NH,出接口I和開銷C。

    (2)LDP模塊,LDP協(xié)議是MPLS的信令協(xié)議,管理標(biāo)簽的分發(fā)與回收,LDP模塊實(shí)現(xiàn)LDP協(xié)議的功能,標(biāo)簽信息主要有FEC(轉(zhuǎn)發(fā)等價(jià)類,在本文中指路由協(xié)議中的目的網(wǎng)段),入標(biāo)簽IN和出標(biāo)簽OUT,下一跳NH’,出接口I’,本文中LDP模塊工作于自由標(biāo)簽保留模式。

    (3)MPLS模塊,實(shí)現(xiàn)標(biāo)簽交換的模塊,根據(jù)LDP模塊通告的標(biāo)簽信息,生成轉(zhuǎn)發(fā)表項(xiàng),主要表項(xiàng)有ILM、NHLFE、FTN[6]。

    (4)故障檢測(cè)模塊,實(shí)現(xiàn)快速檢測(cè)故障的功能,本文使用BFD(雙向轉(zhuǎn)發(fā)檢測(cè)),故障信息主要包括故障接口。

    2 原理與設(shè)計(jì)方案

    本文中MPLS的重路由路徑與IP FRR的路徑是完全相同的,所以保護(hù)性能和IP FRR一樣。

    如圖2所示,交換機(jī)A到達(dá)3.3.3.3有兩條路由,下一跳分別為10.1.1.2和10.1.2.2,設(shè)前者cost為5后者為10,則前者為主用路由后者為備用。LDP模塊工作于自由標(biāo)簽保留模式,因此,交換機(jī)A既保留C發(fā)送的關(guān)于3.3.3.3的標(biāo)簽L1也會(huì)保留B發(fā)送的關(guān)于3.3.3.3的標(biāo)簽L2,按照之后描述的LDP模塊和MPLS模塊處理方式,LDP模塊會(huì)把標(biāo)簽信息通告給MPLS模塊,使得MPLS模塊使用L1作為主用標(biāo)簽,L2為備用(C是主用路由的下一跳,B是備用路由的下一跳)。故障前使用L1轉(zhuǎn)發(fā),故障后,MPLS收到BFD模塊的故障通告,使用L2轉(zhuǎn)發(fā)MPLS流量到B,B發(fā)現(xiàn)是自己為3.3.3.3分配的標(biāo)簽L2,按照從B到C的主LSP進(jìn)行轉(zhuǎn)發(fā),故障恢復(fù)后,LDP模塊根據(jù)路由模塊的通告決定繼續(xù)使用L2作為主用標(biāo)簽,還是使用新的標(biāo)簽。

    2.1 LDP模塊的擴(kuò)展設(shè)計(jì)

    LDP模塊只需擴(kuò)展與路由模塊的接口(在下面介紹)和與故障檢測(cè)模塊的接口(接收故障消息即可),其它的協(xié)議流程處理,如會(huì)話建立和標(biāo)簽分配不變。

    路由協(xié)議模塊通告的路由信息要么是添加路由信息,要么是刪除路由信息,主備通過(guò)路由信息里的cost字段區(qū)分,cost小為主用,cost大為備用,所以LDP模塊跟路由協(xié)議模塊的交互由對(duì)路由添加和路由刪除這兩種事件的處理來(lái)描述。路由協(xié)議通告路由消息有5種情況(D表示某個(gè)目的網(wǎng)段):

    (1)之前沒(méi)有通告過(guò)關(guān)于D的路由添加消息,現(xiàn)在通告關(guān)于D的路由添加消息給LDP模塊;

    (2)在通告關(guān)于D的路由刪除消息前,LDP模塊中只有一條關(guān)于D的路由記錄,現(xiàn)在通告關(guān)于D的路由刪除消息;

    (3)主用和備用路由已經(jīng)通告,現(xiàn)在通告關(guān)于D的備份路由刪除消息,然后再通告關(guān)于D的備份路由添加消息;

    (4)主用和備用路由已經(jīng)通告,現(xiàn)在通告關(guān)于D的主用路由刪除消息,然后再通告關(guān)于D的主用路由添加消息;

    (5)主用和備用路由已經(jīng)通告,現(xiàn)在通告關(guān)于D的主用路由刪除消息,然后再通告關(guān)于D的備用路由添加消息。

    這里的主備并沒(méi)有標(biāo)識(shí),只通過(guò)cost值區(qū)分。

    上面的這5種情況是在網(wǎng)絡(luò)拓?fù)涓淖兊那闆r下,使能IP FRR的路由協(xié)議根據(jù)計(jì)算得到主備路由并通告給LDP模塊的情況,根據(jù)這些情況,設(shè)計(jì)出LDP模塊對(duì)路由添加和路由刪除事件處理流程圖如下,圖3和圖4分別為路由添加消息和刪除消息的處理流程(這兩個(gè)流程圖可以正確處理上述的5種情況):

    (1)FEC_RT變量記錄了與FEC相關(guān)的信息,包括路由信息和標(biāo)簽信息,route_list是FEC_RT變量中的一個(gè)鏈表頭,所有關(guān)于FEC的路由(主用和所有備用)信息,都存在該表中,鏈表根據(jù)路由信息中的cost屬性從小到大排序(路由協(xié)議可能會(huì)通告若干關(guān)于某個(gè)目的網(wǎng)段但cost相等的路由,即ECMP,這時(shí),需要選擇鏈表添加方式,使得若鏈表中存在某個(gè)cost值的表項(xiàng),新加的cost值相同的表項(xiàng)在原來(lái)表項(xiàng)的后面),這樣,主用路由總是為鏈表頭結(jié)點(diǎn);

    (2)FEC_RT->nexthop,指明主用路由的下一跳,每次收到路由添加或刪除消息時(shí),若route_list的頭結(jié)點(diǎn)發(fā)生變化,則修改該值以保證該值為當(dāng)前主用路由的下一跳,發(fā)生故障時(shí),該值在LDP的標(biāo)簽分發(fā)流程中會(huì)被用到(可參見(jiàn)RFC5036中的A.1.1,A.1.2等),F(xiàn)EC_RT->if_unit是對(duì)應(yīng)于nexthop的出接口,它與nexthop同時(shí)修改,故障時(shí),BFD模塊發(fā)送故障通告,包含接口信息,對(duì)于某個(gè)FEC_RT,若if_unit等于通告的值,則該FEC_RT的route_list的頭結(jié)點(diǎn)被加入到鏈表尾,第二的節(jié)點(diǎn)成為頭結(jié)點(diǎn),這一點(diǎn)與之后描述的MPLS模塊中的處理方式對(duì)應(yīng);

    (3)記錄被添加到FEC_RT-> need_label_from_peer鏈表中,添加記錄是應(yīng)對(duì)收到路由添加通告時(shí),還沒(méi)有收到對(duì)應(yīng)peer關(guān)于FEC的標(biāo)簽的情況,當(dāng)收到某個(gè)peer的標(biāo)簽信息時(shí),查找記錄,記錄存在,則封裝標(biāo)簽信息通告MPLS模塊,并刪除該記錄,在收到peer的標(biāo)簽信息之前,如果收到路由模塊的相應(yīng)路由刪除消息時(shí)也刪除該記錄。

    流程圖中一些數(shù)據(jù)結(jié)構(gòu):

    (1)FEC_RT變量的結(jié)構(gòu)類型

    sLdpFecRt{

    PREFIX route; //路由消息中的目的網(wǎng)段

    SOCK_IN_ADDR nexthop; //主用路由的下一跳

    UINT4 if_unit; //主用路由的出接口

    struct sLdpLblMap *local_label_map; //本地分配的標(biāo)簽

    struct tree remoteLblMapAvl; //peers為該FEC分配的標(biāo)簽

    struct list route_list; //路由信息鏈表

    struct list need_label_from_peer; //需要來(lái)自peer的標(biāo)簽記錄鏈表

    }tLdpFecRt;

    (2) route_list中的節(jié)點(diǎn)

    sLdpFecRouteInfo{

    SOCK_IN_ADDR nexthop; //路由信息中的下一跳

    UINT4 if_unit; //路由信息中的出接口

    UINT4 cost; //路由信息中的開銷屬性

    struct sLdpLblMap * label_map; //nexthop對(duì)應(yīng)peer分配的標(biāo)簽

    };

    (3)封裝的標(biāo)簽信息

    sLdpLabelInfo{

    PREFIX route; //目的網(wǎng)段即FEC

    SOCK_IN_ADDR nexthop; //標(biāo)簽對(duì)應(yīng)的下一跳

    UINT4 if_unit;//標(biāo)簽對(duì)應(yīng)的出接口

    UINT4 cost; //路由信息中的開銷屬性

    struct sLdpLblMap * inlabel; //本地分配的標(biāo)簽

    struct sLdpLblMap * outlabel; //peer分配的標(biāo)簽

    };

    2.2 MPLS模塊的擴(kuò)展設(shè)計(jì)

    MPLS模塊原來(lái)的表項(xiàng)是,一個(gè)ILM對(duì)應(yīng)一個(gè)NHLFE,表項(xiàng)通過(guò)處理LDP模塊通告的標(biāo)簽信息得到,擴(kuò)展支持快速重路由可以仿照LDP模塊中的route_list方式,即一個(gè)ILM對(duì)應(yīng)一個(gè)NHLFE鏈表,在NHLFE中添加cost字段保存sLdpLabelInfo中的cost信息,鏈表按cost值從小到大排序,對(duì)于ECMP也采用LDP模塊中的處理方式,減少路勁切換,主用轉(zhuǎn)發(fā)條目始終為鏈表的頭結(jié)點(diǎn),這樣,當(dāng)一個(gè)打了標(biāo)簽的MPLS包送到MPLS模塊,根據(jù)標(biāo)簽找到ILM表項(xiàng),ILM表項(xiàng)對(duì)應(yīng)一個(gè)NHLFE鏈表,使用這個(gè)鏈表的頭節(jié)點(diǎn)指示的方式進(jìn)行標(biāo)簽操作(交換標(biāo)簽、壓入標(biāo)簽),然后繼續(xù)轉(zhuǎn)發(fā)。

    當(dāng)發(fā)生故障時(shí),BFD模塊通告故障信息給MPLS模塊,信息中包含故障對(duì)應(yīng)的接口,所有以該接口為出接口的主用NHLFE將被替換,替換方式是把主用NHLFE加入到NHLFE鏈表的尾部,原來(lái)的第二個(gè)表節(jié)點(diǎn)自動(dòng)成為頭結(jié)點(diǎn),作為主用轉(zhuǎn)發(fā)條目。為了降低故障恢復(fù)時(shí)間,需要為每一個(gè)接口建立一個(gè)鏈表,主用NHLFE條目的出接口是該接口的條目所在的鏈表頭(route_list)作為該鏈表的節(jié)點(diǎn),這樣,發(fā)生故障時(shí),不用遍歷所有的NHLFE鏈表,只用對(duì)該故障對(duì)應(yīng)接口的鏈表中的每一個(gè)route_list做替換即可,減少完成所有替換的時(shí)間,從而減少故障恢復(fù)時(shí)間。

    MPLS模塊收到刪除的標(biāo)簽信息時(shí),根據(jù)route和nexthop兩個(gè)字段即可找到NHLFE節(jié)點(diǎn),刪除即可。

    3 驗(yàn)證

    圖5為測(cè)試用拓?fù)鋱D,A、B、C為交換機(jī),接口配置在圖上標(biāo)明,儀表從I1接口發(fā)送不帶MPLS標(biāo)簽的流量,經(jīng)過(guò)中間的環(huán)形MPLS網(wǎng)絡(luò),由I2接口接收,發(fā)流的速率為100Mbps,包長(zhǎng)為1024Bytes。測(cè)試時(shí),在交換機(jī)A上經(jīng)過(guò)路由協(xié)議計(jì)算,得到到達(dá)接口I2的主用路由下一跳是C,備用路由下一跳為B,拔掉AC之間的網(wǎng)線以模擬故障,在此期間,儀表統(tǒng)計(jì)得到的丟包數(shù)為728個(gè),之后重復(fù)測(cè)試5次得到的丟包數(shù)為688、701、715、734、690。下面估計(jì)一下故障恢復(fù)時(shí)間:

    發(fā)包速率為100Mbps/1024Bytes = 12800Packets/s,那么每10ms應(yīng)該發(fā)送128個(gè)包,計(jì)算6次測(cè)試的平均丟包數(shù)為709,709/128的值在5和6之間,即恢復(fù)時(shí)間在50ms到60ms之間。

    4 結(jié)束語(yǔ)

    本文給出了一種基于IP FRR的MPLS快速重路由的軟件實(shí)現(xiàn)方法,以流程圖的方式說(shuō)明了LDP模塊對(duì)路由消息的處理過(guò)程,給出了關(guān)鍵表節(jié)點(diǎn)的定義,給出以鏈表來(lái)組織MPLS的轉(zhuǎn)發(fā)表項(xiàng)的思路,最后組網(wǎng)驗(yàn)證該設(shè)計(jì)的可行性,結(jié)果表明MPLS流只中斷了50ms到60ms,該設(shè)計(jì)具有故障恢復(fù)功能,對(duì)實(shí)現(xiàn)基于IP FRR的MPLS快速重路由有一定參考價(jià)值。

    [1] 華為3com公司.網(wǎng)絡(luò)之路N03MPLS技術(shù)??痆DB/OL].

    [2] D. Haskin,R.Krishnan. A Method for Setting an Alternative Label Switched Paths to Handle Fast Reroute. draft-haskin-mpls-fast-reroute-05.txt,2000.

    [3] S. Makam,V.Sharma,et al. Protection/Restoration of MPLS Networks. draft-makam-mplsprotection-00.txt,1999.

    [4] A. Atlas,A. Zinin. Basic Specification for IP Fast Reroute: Loop-Free Alternates[S]. RFC5286,2008.

    [5] L. Andersson , I. Minei, B. Thomas. LDP Specification[S]. RFC 5036,2007.

    [6] E. Rosen,A. Viswanathan,R. Callon. Multiprotocol Label Switching Architecture[S].RFC 3031,2001.

    猜你喜歡
    表項(xiàng)鏈表通告
    一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
    國(guó)家藥監(jiān)局關(guān)于7批次藥品不符合規(guī)定的通告
    基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
    基于二進(jìn)制鏈表的粗糙集屬性約簡(jiǎn)
    跟麥咭學(xué)編程
    基于鏈表多分支路徑樹的云存儲(chǔ)數(shù)據(jù)完整性驗(yàn)證機(jī)制
    SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
    關(guān)于實(shí)行參考文獻(xiàn)新規(guī)范的通告
    關(guān)于實(shí)行參考文獻(xiàn)新規(guī)范的通告
    鏈表方式集中器抄表的設(shè)計(jì)
    承德县| 合作市| 自贡市| 久治县| 徐闻县| 略阳县| 平阴县| 南靖县| 铜梁县| 容城县| 得荣县| 西林县| 洞口县| 乐安县| 普宁市| 泸西县| 太原市| 保亭| 馆陶县| 富阳市| 昌邑市| 长沙县| 海阳市| 济源市| 沁水县| 杭锦后旗| 铜陵市| 磐安县| 卢湾区| 兴隆县| 泗阳县| 巩义市| 秦皇岛市| 诸城市| 石首市| 庆城县| 安新县| 丰城市| 宁津县| 安西县| 易门县|