一種媒體接入控制地址收斂方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及數(shù)據(jù)通信技術(shù),尤其涉及一種Kompella方式的虛擬專用局域網(wǎng)服務(wù)(VPLS, Virtual Private Lan Service)中媒體接入控制(MAC)地址收斂方法和裝置。
【背景技術(shù)】
[0002]虛擬專用局域網(wǎng)服務(wù)(VPLS, Virtual Private Lan Service)是在公用網(wǎng)絡(luò)中提供的一種點(diǎn)到多點(diǎn)的二層虛擬專用網(wǎng)絡(luò)(VPN, Virtual Private Network)業(yè)務(wù)。VPLS通過把運(yùn)營商的IP核心網(wǎng)模擬成一臺虛擬的二層交換機(jī)為最終客戶提供以太服務(wù)。運(yùn)營商通過部署VPLS保證了分隔在不同地域的相同客戶的連通性以及不同用戶之間的隔離性。
[0003]運(yùn)營商根據(jù)客戶以及自身的需求對VPLS網(wǎng)絡(luò)進(jìn)行規(guī)劃和部署,部署的VPLS網(wǎng)絡(luò)對于運(yùn)營商的客戶是透明的。一個(gè)典型的VPLS網(wǎng)絡(luò)的組網(wǎng)如圖1所示。其中,運(yùn)營商在其IP核心網(wǎng)絡(luò)(MPLS)的面向網(wǎng)絡(luò)的提供商設(shè)備(NPE, Network Provider Edge)間部署VPLS:NPEU NPE2、NPE3、NPE4之間通過集線器偽線(Hub Pff)建立起連接,構(gòu)成一個(gè)全連接(Full-Mesh)的VPLS網(wǎng)絡(luò),通過限制Hub PW之間不能夠進(jìn)行報(bào)文轉(zhuǎn)發(fā)來避免環(huán)路。同時(shí)為了分擔(dān)Full-Mesh網(wǎng)絡(luò)帶來的Hub PW全連接問題,提出了層次化的VPLS網(wǎng)絡(luò)模型,即Η-VPLS。該模型主要體現(xiàn)在接入側(cè),通過部署面向用戶的提供商設(shè)備(UPE,Userfacing-Provider Edge)來匯聚用戶側(cè)用戶邊界網(wǎng)絡(luò)設(shè)備(CE,Custom Edge)的報(bào)文,然后通過Spoke Pff接入到NPE上。為了保證UPE和NPE之間鏈路的可靠性,通常在UPE上部署主備Spoke PW雙歸到Full-Mesh域中不同的NPE設(shè)備上。這樣,當(dāng)主PW(Active Pff)發(fā)生故障時(shí),UPE可以感知并把流量切換到備PW(Standby Pff)上。
[0004]當(dāng)VPLS網(wǎng)絡(luò)部署完成之后,在轉(zhuǎn)發(fā)面,通過各個(gè)NPE節(jié)點(diǎn)上的二層的MAC地址學(xué)習(xí)、洪泛、轉(zhuǎn)發(fā)等功能使得各個(gè)不同區(qū)域的用戶通過PSN網(wǎng)絡(luò)進(jìn)行連接和數(shù)據(jù)轉(zhuǎn)發(fā)。
[0005]各個(gè)NPE設(shè)備之間通過偽線(PW, Pseduwire)進(jìn)行互連,它是一種VPN技術(shù),是VPLS業(yè)務(wù)部署的核心技術(shù)。通過PW,能夠保證不同提供商邊緣設(shè)備(PE)上接入的用戶流量能夠在分組交換網(wǎng)(PSN)上直接進(jìn)行透明傳送。PW的建立目前有兩種信令機(jī)制,一種是擴(kuò)展的標(biāo)簽分配協(xié)議(LDP, Label Distribut1n Protocol)信令機(jī)制(也稱為Martini方式,RFC4762),另外一種是擴(kuò)展的邊界網(wǎng)關(guān)協(xié)議(BGP,Border Gateway Protocol)信令機(jī)制(也稱為Kompella方式,RFC761)。使用LDP信令建立的PW的優(yōu)勢是信令擴(kuò)展比較簡單,部署方便。而使用BGP信令建立的PW,能支持PE設(shè)備動態(tài)發(fā)現(xiàn)和PW的自動創(chuàng)建,適用于拓?fù)湟?guī)整且節(jié)點(diǎn)眾多的VPLS服務(wù),比如Full-Mesh拓?fù)洹-VPLS核心區(qū)域,可以大大減少管理成本。
[0006]MAC地址撤銷(MacWithdraw)功能是在當(dāng)VPLS轉(zhuǎn)發(fā)鏈路發(fā)生變化時(shí),通過發(fā)送MacWithdraw消息來加速M(fèi)AC地址的收斂,避免反方向的流量丟包。舉例來說,如圖1所示,當(dāng)UPE和NPEl之間的主PW鏈路有效的時(shí)候,穩(wěn)定狀態(tài)下,CEl和CE3之間雙向流量路徑為 CEl〈一>UPE〈一>NPEl〈一>NPE3〈一>CE3;iUPE 和 NPEl 之間的主 PW 鏈路發(fā)生故障時(shí),UPE感知并把流量路徑切換到NPE2上。此時(shí),CEl到CE3的流量路徑變?yōu)榱?CEl—〉UPE—>NPE2—〉NPE3—〉CE3。但由于此切換NPE3無法立即感知,所以CE3到CEl的流量路徑,仍然保持切換前的路徑,即CE3—〉NPE3—〉NPE1—>UPE—>CE1,因此,當(dāng)CE3的流量到達(dá)NPEl時(shí),由于NPEI和UPE之間的鏈路失效,而導(dǎo)致反向流量被丟棄。為了解決該問題,業(yè)界提出了 MacWithdraw功能。以圖1的組網(wǎng)場景為例,當(dāng)UPE感知到和NPEl之間鏈路失效時(shí),由UPE 向 NPE2 發(fā)送一個(gè) MacWithdraw 消息,NPE2 收到 MacWithdraw 消息后,繼續(xù)向 Full-Mesh域內(nèi)的所有Hub PW轉(zhuǎn)發(fā)該消息,同時(shí),收到該消息后,會清除VPLS中之前所有學(xué)習(xí)到的MAC地址,除了從收到MacWithdraw消息的PW上學(xué)習(xí)到的MAC地址。對于上面這種場景,NPE3收到MacWithdraw消息后,僅保留之前從Hub PW23上學(xué)習(xí)到的MAC地址,而刪除所有其他的MAC地址。這樣,當(dāng)CE3的流量到達(dá)NPE3后,NPE3的MAC地址表中,就不會再走之前失效的到NPEl的路徑,從而改走Hub PW23到達(dá)NPE2后,再發(fā)送到CEl。從而CEl和CE3之間的轉(zhuǎn)發(fā)鏈路保持了一致,避免的丟包產(chǎn)生。
[0007]RFC4762中的6.2小節(jié)定了 Martini方式創(chuàng)建的VPLS業(yè)務(wù)中,Macffithdraw功能的實(shí)現(xiàn)標(biāo)準(zhǔn)。即通過對LDP的Address Withdraw消息進(jìn)行擴(kuò)展,增加一個(gè)Mac List TLV來攜帶需要撤銷的MAC地址信息,當(dāng)Mac List TLV中的Mac列表為空時(shí),則表示刪除之前學(xué)習(xí)到的所有MAC地址(除了從收到MacWithdraw消息的PW上學(xué)習(xí)到的MAC地址),否則只刪除Mac List TLV中指定的MAC地址。
[0008]RFC4761中沒有對Kompella方式創(chuàng)建的VPLS業(yè)務(wù)MacWithdraw功能的實(shí)現(xiàn)方式進(jìn)行定義。而實(shí)際上,Kompella方式創(chuàng)建的VPLS業(yè)務(wù)同Martini方式創(chuàng)建的VPLS —樣也是有MAC地址加速收斂的需求的,否則當(dāng)VPLS轉(zhuǎn)發(fā)鏈路發(fā)生變化時(shí),必然會導(dǎo)致反向數(shù)據(jù)流量的丟失,造成斷流。
【發(fā)明內(nèi)容】
[0009]為解決現(xiàn)有存在的技術(shù)問題,本發(fā)明主要提供一種MAC地址收斂方法和裝置。
[0010]本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:
[0011]本發(fā)明提供一種媒體接入控制MAC地址收斂方法,該方法包括:
[0012]面向網(wǎng)絡(luò)的提供商設(shè)備NPE間建立Kompella虛擬專用局域網(wǎng)服務(wù)VPLS業(yè)務(wù),當(dāng)NPE設(shè)備獲知VPLS業(yè)務(wù)轉(zhuǎn)發(fā)鏈路發(fā)生變化時(shí),通過邊界網(wǎng)關(guān)協(xié)議BGP消息向VPLS域中的其他NPE設(shè)備發(fā)送MAC地址撤銷MacWithdraw事件,以使其它NPE設(shè)備接收到攜帶Macffithdraw事件的BGP消息后,根據(jù)MacWithdraw事件的策略執(zhí)行MAC地址刪除操作。
[0013]上述方案中,所述NPE設(shè)備獲知VPLS業(yè)務(wù)轉(zhuǎn)發(fā)鏈路發(fā)生變化包括:NPE設(shè)備通過本地VPLS接入接口 AC的狀態(tài)變化、和/或收到接入偽線Spoke Pff狀態(tài)變化、和/或接收到從Spoke PW發(fā)送過來的表明Spoke PW狀態(tài)從備Standby變?yōu)橹鰽ctive的MacWithdraw事件獲知VPLS業(yè)務(wù)轉(zhuǎn)發(fā)鏈路發(fā)生變化。
[0014]上述方案中,所述通過BGP消息向VPLS域中的其他NPE設(shè)備發(fā)送MacWithdraw事件包括:NPE設(shè)備通過擴(kuò)展BGP消息或新定義一個(gè)BGP消息利用PW向VPLS域中的其他NPE設(shè)備發(fā)送MacWithdraw事件。
[0015]上述方案中,所述擴(kuò)展BGP消息為擴(kuò)展BGP更新Update消息,包括:對BGP Update消息新定義一個(gè)BGP擴(kuò)展團(tuán)體屬性,用于攜帶MacWithdraw事件;
[0016]所述新定義一個(gè)BGP消息為新定義一個(gè)BGP指示Indicate消息,所述BGPIndicate 消息攜帶 MacWithdraw 事件。
[0017]上述方案中,所述MacWithdraw事件攜帶一個(gè)以上MAC地址,或者,不攜帶任何有效MAC地址。
[0018]上述方案中,所述其它NPE設(shè)備接收到攜帶MacWi thdraw事件的BGP消息后,根據(jù)MacWithdraw事件的策略執(zhí)行MAC地址刪除操作,包括:其它NPE設(shè)備接收到攜帶Macffithdraw事件的BGP消息后,根據(jù)MacWithdraw事件攜帶一個(gè)以上MAC地址,采用直接在本地刪除MacWithdraw事件所攜帶的MAC地址的策略;根據(jù)MacWithdraw事件不攜帶任何有效MAC地址,采用刪除本地之前學(xué)習(xí)到的除了從收到所述MacWithdraw事件的PW上學(xué)習(xí)到的所有MAC地址的策略。
[0019]本發(fā)明提供一種MAC地址收斂裝置,該裝置包括:業(yè)務(wù)建立模塊、獲知模塊、發(fā)送模塊;其中,
[0020]業(yè)務(wù)建立模塊,用于在NPE設(shè)備間建立Kompella VPLS業(yè)務(wù);
[0021]獲知模塊,用于獲知VPLS業(yè)務(wù)轉(zhuǎn)發(fā)鏈路發(fā)生變化,并通知發(fā)送模塊;
[0022]發(fā)送模塊,用于通過BGP消息向VPLS域中除自身NPE設(shè)備外的其他NPE設(shè)備發(fā)送MacWithdraw事件,以使其它NPE設(shè)備接收到攜帶MacWithdraw事件的BGP消息后,根據(jù)Macffithdraw事件的策略執(zhí)行MAC地址刪除操作。
[0023]上述方案中,所述獲知模塊,具體用于通過本地VPLS AC接口的狀態(tài)變化、和/或收到Spoke Pff狀態(tài)變化、和/或接收到從Spoke Pff發(fā)送過來的表明Spoke Pff狀態(tài)從Standby變?yōu)锳ctive的MacWithdraw事件獲知VPLS業(yè)務(wù)轉(zhuǎn)發(fā)鏈路發(fā)生變化。
[0024]上述方案中,所述發(fā)送模塊,具體用于通過擴(kuò)展BGP消息或新定