摘 要: 目前網(wǎng)絡(luò)中慢Hello檢測機(jī)制檢測時(shí)間長,當(dāng)傳輸數(shù)據(jù)的速率比較快時(shí)會(huì)造成大量數(shù)據(jù)的丟失。BFD技術(shù)可以提供一種快速檢測機(jī)制,保證了流量的最小流失。為了方便通信,提出了VLL的主備鏈路方式,利用BFD對(duì)VLL的主備鏈路進(jìn)行故障檢測,大大減少了鏈路檢測時(shí)間和報(bào)文的丟失。
關(guān)鍵詞: 雙向轉(zhuǎn)發(fā)檢測;二層虛擬專用網(wǎng);虛擬專用線
傳統(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)類似。
1 Martini方式 MPLS L2VPN
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)方式建立MPLS L2VPN。目前,它采用擴(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)行。
2 Martini方式VLL主備鏈路備份模型
如果在兩個(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檢測到主鏈路出現(xiàn)故障時(shí),將啟用備份VC鏈路,從而保證通信不會(huì)中斷。
3 BFD檢測故障通知VC切換
上文談到,當(dāng)主鏈路發(fā)生故障后,將切換到備份VC鏈路。目前的網(wǎng)絡(luò)中一般采用比較慢的協(xié)議報(bào)文hello機(jī)制,LDP會(huì)話要檢測到鏈路失效,需要檢測到幾個(gè)周期的hello報(bào)文的丟失。通常這個(gè)檢測時(shí)間會(huì)很長,在幾百微秒級(jí)。當(dāng)數(shù)據(jù)達(dá)到吉比特速率級(jí)時(shí), 故障檢測時(shí)間長表明大量數(shù)據(jù)的丟失,并且對(duì)于不允許路由協(xié)議的節(jié)點(diǎn)沒有辦法檢測鏈路狀態(tài)?,F(xiàn)有的網(wǎng)絡(luò)中并不具備秒級(jí)以下的故障修復(fù)功能, 而傳統(tǒng)的路由架構(gòu)對(duì)現(xiàn)實(shí)應(yīng)用如語音進(jìn)行準(zhǔn)確故障檢測方面能力有限。
BFD(Bidirectional Forwarding Detection)是一套全網(wǎng)統(tǒng)一的檢測機(jī)制, 用于快速檢測、監(jiān)控網(wǎng)絡(luò)中鏈路連通狀況。BFD的目標(biāo)是對(duì)相鄰轉(zhuǎn)發(fā)引擎之間通道故障提供輕負(fù)荷、持續(xù)時(shí)間短的檢測[7]。由于BFD定義的確認(rèn)分組可以用于任何協(xié)議層,這使BFD 機(jī)制成為了一個(gè)通用的工具。BFD可以在多種類型的路徑和媒質(zhì)(如物理鏈路、虛電路或一對(duì)網(wǎng)元之間的MPLS LSP)上實(shí)現(xiàn)失效檢測[8]。
在上述組網(wǎng)中,PE1和PE2之間、PE1和PE3之間均建立有遠(yuǎn)程LDP會(huì)話。在這兩對(duì)遠(yuǎn)程LDP會(huì)話上建立BFD會(huì)話,并且使BFD報(bào)文檢測周期為最小的10 ms,當(dāng)BFD在3個(gè)周期后沒有檢測到對(duì)端發(fā)送的BFD報(bào)文時(shí),即認(rèn)為鏈路失效,從而發(fā)起VC的切換,切換到備用VC上,保證流量的最小流失。
3.1 BFD工作流程
BFD會(huì)話建立以及檢測通知過程如下:
(1)LDP遠(yuǎn)程會(huì)話建立,主備VC均up,下發(fā)VC到數(shù)據(jù)層面;
(2)LDP通告BFD鄰居參數(shù)和BFD檢測參數(shù);
(3)BFD根據(jù)收到的參數(shù)協(xié)商是否可以建立BFD鄰居來確定是否建立BFD會(huì)話。這里同時(shí)建立控制面和數(shù)據(jù)面的BFD會(huì)話;
(4)當(dāng)BFD檢測到鏈路失效時(shí),同時(shí)通知控制面和轉(zhuǎn)發(fā)面進(jìn)行切換。通知轉(zhuǎn)發(fā)面切換是為了將VC快速由主切換到備,從而指導(dǎo)轉(zhuǎn)發(fā)。通知控制面是為了保持和轉(zhuǎn)發(fā)面數(shù)據(jù)一致。這樣就達(dá)到了快速切換的目的。如圖2所示。
3.2 主備切換性能比較
普通方式下,使用協(xié)議報(bào)文本身的hello機(jī)制進(jìn)行Martini方式MPLS L2VPN的主備VC切換網(wǎng)絡(luò)性能如圖3所示。
計(jì)算出的流量切換時(shí)間t1為:
t1=(端口1發(fā)送幀數(shù)-端口2接收幀數(shù)-端口3接收幀數(shù))/發(fā)送幀速率
圖3中端口1發(fā)送幀數(shù)=2 915 108幀,端口2接收幀數(shù)=1 613 388幀,端口3接收幀數(shù)=1 289 580幀,發(fā)送幀速率=84 345 f/s,則:
t1=((2915108-1613388-1289580)×1000)/84345
=143.9 ms
改用BFD檢測時(shí),BFD發(fā)送報(bào)文周期設(shè)置為最小的10 ms,性能如圖4所示。
此時(shí)的流量切換時(shí)間t2為:
t2=((2701436-1322895-1375711)×1000)/84 345
=33.5 ms
由上述可見,利用BFD機(jī)制檢測VC鏈路故障,其切換時(shí)間一般在50 ms之內(nèi)。
利用BFD技術(shù)實(shí)現(xiàn)MPLS L2VPN主備鏈路切換, 大大減少了鏈路故障的檢測時(shí)間, 并且主備VC的切換在數(shù)據(jù)平面完成, 不需要通過控制平面下發(fā)備VC表項(xiàng), 減少了主備VC的切換時(shí)間。BFD的定位更多的是綁定到數(shù)據(jù)平面, 從而脫離具體的網(wǎng)絡(luò)協(xié)議, 使快速檢測缺陷實(shí)現(xiàn)電信級(jí)倒換成為可能,加上處理的低開銷使得BFD的推廣變得更加容易,并且具備更強(qiáng)的適用性, BFD必將成為網(wǎng)絡(luò)電信化重要的推動(dòng)力量。
參考文獻(xiàn)
[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ā)檢測(BFD)協(xié)議研究[M].北京:北京郵電大學(xué)出版社,2007.
[8] 陳利兵.BFD技術(shù)在IP承載網(wǎng)中的應(yīng)用[J].現(xiàn)代電信科技,2008,38(1):54-58.