章芳芳 ,昂志敏 ,付志華
(1.合肥工業(yè)大學(xué) 計(jì)算機(jī)與信息學(xué)院,安徽 合肥 230009;2.杭州華三通信技術(shù)有限公司,浙江 杭州 310053)
傳統(tǒng)的基于ATM或幀中繼FR(Frame Relay)的虛擬專用網(wǎng) VPN(Virtual Private Network)應(yīng)用非常廣泛,能在不同VPN間共享運(yùn)營商的網(wǎng)絡(luò)結(jié)構(gòu)[1]。這種VPN的不足之處在于:
(1)依賴于專用的介質(zhì)(如ATM或 FR)。為提供基于ATM的VPN服務(wù),運(yùn)營商必須建立覆蓋全部服務(wù)范圍的ATM網(wǎng)絡(luò);為提供基于FR的VPN服務(wù),又需要建立覆蓋全部服務(wù)范圍的FR網(wǎng)絡(luò),致使在網(wǎng)絡(luò)建設(shè)上造成浪費(fèi);
(2)部署復(fù)雜。尤其是向已有的VPN加入新的Site(站點(diǎn))時(shí),需要同時(shí)修改所有接入此VPN站點(diǎn)的邊緣節(jié)點(diǎn)的配置。
鑒于以上缺點(diǎn),新的VPN替代方案應(yīng)運(yùn)而生,MPLS L2VPN就是其中的一種。MPLS L2VPN提供基于多協(xié)議標(biāo)簽交換 MPLS(Multiprotocol Label Switching)網(wǎng)絡(luò)的二層VPN服務(wù),使運(yùn)營商可以在統(tǒng)一的MPLS網(wǎng)絡(luò)上提供基于不同數(shù)據(jù)鏈路層的二層 VPN,包括 ATM、FR、VLAN、Ethernet、PPP 等[2]。 簡單來說,MPLS L2VPN 是在MPLS網(wǎng)絡(luò)上透明傳輸用戶二層數(shù)據(jù)[3]。從用戶的角度來看,MPLS網(wǎng)絡(luò)是一個(gè)二層交換網(wǎng)絡(luò),可以在不同節(jié)點(diǎn)間建立二層連接。以ATM為例,每個(gè)用戶邊緣設(shè)備CE(Customer Edge)配置一條ATM虛電路VC(Virtual Circuit),通過MPLS網(wǎng)絡(luò)與遠(yuǎn)端CE相連,這與通過ATM網(wǎng)絡(luò)實(shí)現(xiàn)互聯(lián)類似。
MPLS L2VPN主要有以下幾種實(shí)現(xiàn)方式[4]:
(1)電路交叉連接 CCC(Circuit Cross Connect)和靜態(tài)虛擬電路 SVC(Static Virtual Circuit):兩種采用靜態(tài)配置VC標(biāo)簽的方式來實(shí)現(xiàn)MPLS L2VPN。
(2)Martini方式:通過建立點(diǎn)到點(diǎn)鏈路來實(shí)現(xiàn)MPLS L2VPN,它以標(biāo)記分發(fā)協(xié)議 LDP(Label Distribution Protocol)為信令協(xié)議來傳遞雙方的VC標(biāo)簽。
(3)Kompella方式:在 MPLS網(wǎng)絡(luò)上以端到端(CE到CE)方式建立MPLSL2VPN。目前,它采用擴(kuò)展了的邊界網(wǎng)關(guān)協(xié)議 BGP(Border Gateway Protocol)為信令協(xié)議來發(fā)布二層可達(dá)信息和VC標(biāo)簽[5]。
其中,Martini方式 MPLS L2VPN著重于在兩個(gè) CE之間建立虛電路VC(Virtual Circuit),該方式用VC-TYPE結(jié)合VC ID來標(biāo)識(shí)一個(gè)VC。VC-TYPE表明VC的封裝類型(ATM、VLAN或 PPP);VC ID則用于唯一標(biāo)識(shí)一個(gè)VC。屬于同一個(gè)VC-TYPE的所有VC中,其VC ID必須在整個(gè)PE中是唯一的。連接兩個(gè)CE的PE通過LDP交換VC標(biāo)簽,并通過VC ID綁定對(duì)應(yīng)的CE。當(dāng)連接兩個(gè)PE的LSP建立成功,雙方的標(biāo)簽交換和綁定完成后,VC就建立起來了,CE之間可以通過此VC傳遞二層數(shù)據(jù)。為了在PE之間交換 VC標(biāo)簽,Martini方式對(duì)LDP進(jìn)行了擴(kuò)展,增加了轉(zhuǎn)發(fā)等價(jià)類VC FEC(Forwarding Equivalence Class)的 FEC類型[6]。此外,由于交換VC標(biāo)簽的兩個(gè)PE可能不是直接相連的,所以LDP必須使用remote peer來建立會(huì)話(Session),并在這個(gè)會(huì)話上傳遞VC FEC和VC標(biāo)簽。
在Martini方式中,由于運(yùn)營商網(wǎng)絡(luò)中只有PE設(shè)備需要保存少量的VC label與LSP的映射等信息,P設(shè)備不包含任何二層VPN信息,所以擴(kuò)展性很好。此外,當(dāng)需要新增加一條VC時(shí),只需在相關(guān)的兩端PE設(shè)備上各配置一個(gè)單方向VC連接即可,不影響網(wǎng)絡(luò)的運(yùn)行。
如果在兩個(gè)CE之間只建立一條VC,則當(dāng)該VC出現(xiàn)故障時(shí),CE之間將無法通信。如圖1所示,Martini方式的MPLS L2VPN支持VC冗余保護(hù)功能:在兩個(gè)CE之間建立兩條VC鏈路,正常情況下,CE只使用一條 VC鏈路(主鏈路)與對(duì)端 CE通信;當(dāng) PE 1檢測(cè)到主鏈路出現(xiàn)故障時(shí),將啟用備份VC鏈路,從而保證通信不會(huì)中斷。
上文談到,當(dāng)主鏈路發(fā)生故障后,將切換到備份VC鏈路。目前的網(wǎng)絡(luò)中一般采用比較慢的協(xié)議報(bào)文hello機(jī)制,LDP會(huì)話要檢測(cè)到鏈路失效,需要檢測(cè)到幾個(gè)周期的hello報(bào)文的丟失。通常這個(gè)檢測(cè)時(shí)間會(huì)很長,在幾百微秒級(jí)。當(dāng)數(shù)據(jù)達(dá)到吉比特速率級(jí)時(shí),故障檢測(cè)時(shí)間長表明大量數(shù)據(jù)的丟失,并且對(duì)于不允許路由協(xié)議的節(jié)點(diǎn)沒有辦法檢測(cè)鏈路狀態(tài)。現(xiàn)有的網(wǎng)絡(luò)中并不具備秒級(jí)以下的故障修復(fù)功能,而傳統(tǒng)的路由架構(gòu)對(duì)現(xiàn)實(shí)應(yīng)用如語音進(jìn)行準(zhǔn)確故障檢測(cè)方面能力有限。
BFD(Bidirectional Forwarding Detection)是一套全網(wǎng)統(tǒng)一的檢測(cè)機(jī)制,用于快速檢測(cè)、監(jiān)控網(wǎng)絡(luò)中鏈路連通狀況。BFD的目標(biāo)是對(duì)相鄰轉(zhuǎn)發(fā)引擎之間通道故障提供輕負(fù)荷、持續(xù)時(shí)間短的檢測(cè)[7]。由于BFD定義的確認(rèn)分組可以用于任何協(xié)議層,這使BFD機(jī)制成為了一個(gè)通用的工具。BFD可以在多種類型的路徑和媒質(zhì)(如物理鏈路、虛電路或一對(duì)網(wǎng)元之間的MPLS LSP)上實(shí)現(xiàn)失效檢測(cè)[8]。
在上述組網(wǎng)中,PE1和PE2之間、PE1和PE3之間均建立有遠(yuǎn)程LDP會(huì)話。在這兩對(duì)遠(yuǎn)程LDP會(huì)話上建立BFD會(huì)話,并且使BFD報(bào)文檢測(cè)周期為最小的10 ms,當(dāng)BFD在3個(gè)周期后沒有檢測(cè)到對(duì)端發(fā)送的BFD報(bào)文時(shí),即認(rèn)為鏈路失效,從而發(fā)起VC的切換,切換到備用VC上,保證流量的最小流失。
BFD會(huì)話建立以及檢測(cè)通知過程如下:
(1)LDP遠(yuǎn)程會(huì)話建立,主備VC均up,下發(fā)VC到數(shù)據(jù)層面;
(2)LDP通告BFD鄰居參數(shù)和BFD檢測(cè)參數(shù);
(3)BFD根據(jù)收到的參數(shù)協(xié)商是否可以建立BFD鄰居來確定是否建立BFD會(huì)話。這里同時(shí)建立控制面和數(shù)據(jù)面的BFD會(huì)話;
(4)當(dāng)BFD檢測(cè)到鏈路失效時(shí),同時(shí)通知控制面和轉(zhuǎn)發(fā)面進(jìn)行切換。通知轉(zhuǎn)發(fā)面切換是為了將VC快速由主切換到備,從而指導(dǎo)轉(zhuǎn)發(fā)。通知控制面是為了保持和轉(zhuǎn)發(fā)面數(shù)據(jù)一致。這樣就達(dá)到了快速切換的目的。如圖2所示。
普通方式下,使用協(xié)議報(bào)文本身的hello機(jī)制進(jìn)行Martini方式MPLS L2VPN的主備VC切換網(wǎng)絡(luò)性能如圖3所示。
計(jì)算出的流量切換時(shí)間t1為:
圖3中端口1發(fā)送幀數(shù)=2 915 108幀,端口2接收幀數(shù)=1 613 388幀,端口3接收幀數(shù)=1 289 580幀,發(fā)送幀速率=84 345 f/s,則:
改用BFD檢測(cè)時(shí),BFD發(fā)送報(bào)文周期設(shè)置為最小的10 ms,性能如圖 4所示。
此時(shí)的流量切換時(shí)間t2為:
由上述可見,利用BFD機(jī)制檢測(cè)VC鏈路故障,其切換時(shí)間一般在50 ms之內(nèi)。
利用BFD技術(shù)實(shí)現(xiàn)MPLS L2VPN主備鏈路切換,大大減少了鏈路故障的檢測(cè)時(shí)間,并且主備VC的切換在數(shù)據(jù)平面完成,不需要通過控制平面下發(fā)備VC表項(xiàng),減少了主備VC的切換時(shí)間。BFD的定位更多的是綁定到數(shù)據(jù)平面,從而脫離具體的網(wǎng)絡(luò)協(xié)議,使快速檢測(cè)缺陷實(shí)現(xiàn)電信級(jí)倒換成為可能,加上處理的低開銷使得BFD的推廣變得更加容易,并且具備更強(qiáng)的適用性,BFD必將成為網(wǎng)絡(luò)電信化重要的推動(dòng)力量。
[1]陳山枝.IP與ATM的結(jié)合[J].現(xiàn)代電信科技,1998,7(2):33-47.
[2]吳江,趙慧玲.下一代的IP骨干網(wǎng)絡(luò)技術(shù)——多協(xié)議標(biāo)記交換[M].北京:人民郵電出版社,2001.
[3]甘朝欽.VPN向下一代網(wǎng)絡(luò)演進(jìn)最現(xiàn)實(shí)合理的選擇——MPLS L2VPN[J].電 信 技 術(shù) ,2004(3):57-59.
[4]李勁松.BGP/MPLS VPN江湖恩仇錄[EB/OL].(2010-05-26).http://wenku.baidu.com/view.
[5]徐勁濤,余波.淺議高級(jí)BGP路由協(xié)議[J].江西通信科技,2009(03):89-91.
[6]MARTINI L,ROSEN E,AAWAR N E.Pseudowire Setup and Maintenance Using the Label Distribution Protocol(LDP)[S].2006.
[7]高鑫.雙向轉(zhuǎn)發(fā)檢測(cè)(BFD)協(xié)議研究[M].北京:北京郵電大學(xué)出版社,2007.
[8]陳利兵.BFD技術(shù)在IP承載網(wǎng)中的應(yīng)用[J].現(xiàn)代電信科技,2008,38(1):54-58.
網(wǎng)絡(luò)安全與數(shù)據(jù)管理2011年12期