劉少君?鄒昊東?夏飛
摘要:雙向轉(zhuǎn)發(fā)檢測(Bidirectional Forwarding Detection,簡稱BFD)是一種快速檢測IP網(wǎng)絡(luò)鏈路和通道連接型的機(jī)制。國網(wǎng)江蘇省電力公司在電力信息網(wǎng)第二匯聚點(diǎn)建設(shè)中采用了BFD,并取得了較好的效果。對BFD技術(shù)協(xié)議和典型應(yīng)用進(jìn)行了介紹,結(jié)合第二匯聚點(diǎn)的建設(shè)進(jìn)行了分析。
關(guān)鍵詞:BFD;NAT;第二匯聚點(diǎn)
作者簡介:劉少君(1980-),男,江蘇南京人,南京供電公司,工程師。(江蘇 南京 210097)鄒昊東(1987-),男,江蘇射陽人,江蘇省電力公司信息通信分公司。(江蘇 南京 210024)
中圖分類號:TM72 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-0079(2014)09-0250-02
隨著國家電網(wǎng)公司集中式信息系統(tǒng)災(zāi)備中心建設(shè)的不斷深入,越來越多的業(yè)務(wù)系統(tǒng)現(xiàn)在都集中部署在國家電網(wǎng)公司的三個災(zāi)備中心。為了支撐集中式數(shù)據(jù)(災(zāi)備)中心建設(shè)、增強(qiáng)信息網(wǎng)絡(luò)容災(zāi)能力,國家電網(wǎng)公司開展了省級電力公司信息網(wǎng)絡(luò)的第二匯聚點(diǎn)建設(shè)。
在主匯聚點(diǎn)和第二匯聚點(diǎn)路由選擇方面,傳統(tǒng)的動態(tài)/靜態(tài)路由協(xié)議存在著一些不足:部分路由協(xié)議采購“HELLO”包機(jī)制進(jìn)行故障檢測,故障發(fā)現(xiàn)/修復(fù)時間超過1秒鐘;防火墻在啟用NAT功能時,動態(tài)路由在回報路徑選擇上存在不確定性;靜態(tài)路由在探測網(wǎng)絡(luò)故障上存在不足。為了保證主匯聚點(diǎn)和第二匯聚點(diǎn)的切換迅速準(zhǔn)確,國網(wǎng)江蘇省電力公司采用BFD加靜態(tài)路由的方式,大大縮短了網(wǎng)絡(luò)故障響應(yīng)時間,提高了信息網(wǎng)絡(luò)的可靠性。
一、BFD技術(shù)及工作原理
1.BFD的產(chǎn)生背景
傳統(tǒng)的IP網(wǎng)絡(luò)通過路由協(xié)議的收斂來避開網(wǎng)絡(luò)的故障鏈路和節(jié)點(diǎn),這種修復(fù)方式往往要耗費(fèi)數(shù)秒的時間,當(dāng)數(shù)據(jù)速率到吉比特時,修復(fù)時間長代表著大量數(shù)據(jù)的丟失,并且隨著語音、視頻等新網(wǎng)絡(luò)業(yè)務(wù)的出現(xiàn),現(xiàn)有的IP網(wǎng)絡(luò)在快速收斂方面的不足顯得越發(fā)明顯。[1]
在沒有硬件信號發(fā)送的情況下,以前的路由協(xié)議通常采用發(fā)送HELLO報文的偵測機(jī)制。HELLO報文的偵測時間一般都大于1秒,這個時間對于一些特殊的應(yīng)用來說太長了,無法偵測和發(fā)現(xiàn)在短時間內(nèi)發(fā)生的鏈路狀態(tài)。
2.BFD的定義
故障檢測的速度是決定網(wǎng)絡(luò)路由重新收斂的一個重要環(huán)節(jié)。傳統(tǒng)的“HELLO”機(jī)制的故障檢測時間都在1s以上,在當(dāng)前網(wǎng)絡(luò)數(shù)據(jù)傳輸速率日益增大的情況下,會導(dǎo)致大量報文的丟失。BFD故障檢測技術(shù)應(yīng)運(yùn)而生。BFD提供了一種通用的、標(biāo)準(zhǔn)化的、介質(zhì)無關(guān)、協(xié)議無關(guān)的快速故障檢測機(jī)制,可以為上層協(xié)議實(shí)現(xiàn)毫秒級的快速故障的檢測。[2,3]
BFD(Bidirectional Forwarding Detection,雙向轉(zhuǎn)發(fā)檢測)是一套全網(wǎng)統(tǒng)一的故障快速檢測機(jī)制,用于快速檢測、監(jiān)控網(wǎng)絡(luò)鏈路連通或者IP路由連通狀況,保證鄰居節(jié)點(diǎn)之間能夠快速檢測到故障,從而快速重新建立路由,恢復(fù)信息網(wǎng)絡(luò)通信。
3.BFD的工作機(jī)制
BFD提供了一個通用的、標(biāo)準(zhǔn)化的、介質(zhì)無關(guān)、協(xié)議無關(guān)的快速故障檢測機(jī)制,可以為各上層協(xié)議如路由協(xié)議、MPLS等統(tǒng)一地快速檢測兩臺路由器間雙向轉(zhuǎn)發(fā)路徑的故障。BFD在兩臺網(wǎng)絡(luò)設(shè)備上建立會話,用來監(jiān)測兩臺網(wǎng)絡(luò)設(shè)備間的雙向轉(zhuǎn)發(fā)路徑,為上層通信協(xié)議服務(wù)。BFD本身沒有主動發(fā)現(xiàn)機(jī)制,而由被服務(wù)的上層協(xié)議通知其與對端建立會話,會話建立后如果在檢測時間內(nèi)沒有收到對端的BFD控制報文則認(rèn)為對端設(shè)備故障,通知被服務(wù)的上層協(xié)議,上層協(xié)議進(jìn)行相應(yīng)的處理。
4.BFD會話建立流程
BFD協(xié)議本身沒有鄰居發(fā)現(xiàn)的機(jī)制,而是靠被服務(wù)的上層協(xié)議通知其與哪個對端建立會話。[4,5]BFD會話建立模式包括主動和被動兩種。主動模式設(shè)備主動向?qū)Χ嗽O(shè)備發(fā)送BFD控制報文。被動模式設(shè)備在收到對端的控制報文后才會做出相應(yīng)的報文回應(yīng)。因此,建立一條BFD會話連接的前提條件必須是至少有一端的設(shè)備是處于主動模式。以一端處于主動模式另一端處于被動模式來介紹BFD會話建立的過程。圖1是會話建立的握手過程。
第一,主動端和被動端都處于DOWN狀態(tài),主動方收到上層協(xié)議通知后,向被動端發(fā)送BFD控制報文:DOWN。
第二,被動端收到主動端發(fā)來的DOWN控制報文后,本端狀態(tài)從DOWN轉(zhuǎn)換成INIT,然后向主動端返回報文:INIT。
第三,主動端收到被動端的INIT的報文后,本端狀態(tài)從DOWN轉(zhuǎn)為UP,然后向被動端發(fā)送報文:UP。
第四,被動端接收到對端報文UP后,將本端狀態(tài)從INIT轉(zhuǎn)為UP。
第五,主動端和被動端的狀態(tài)都為UP,主動端和被動端兩側(cè)建立好BFD會話并開始進(jìn)行鏈路狀態(tài)的檢測。
5.BFD定時器協(xié)商機(jī)制
在兩端BFD會話建立前,BFD報文發(fā)送間隔不小于1000ms。BFD會話建立后,兩端將會以協(xié)商好的時間間隔發(fā)送報文來檢測網(wǎng)絡(luò)鏈路。為達(dá)到最優(yōu)的檢測效果,兩端控制報文的發(fā)送時間間隔及檢測時間在會話建立后可隨時協(xié)商修改。BFD控制報文發(fā)送時間間隔是本端Desired Min TX Interval與對端Required Min RX Interval兩者的最大值,本端BFD檢測時間等于對端BFD報文中的Detect Mult乘以協(xié)商好后的對端報文的發(fā)送時間間隔。主動端和被動端定時器參數(shù)協(xié)商交互流程如圖2所示。
第一,N1發(fā)起定時器參數(shù)協(xié)商請求,修改報文發(fā)送間隔T為60ms,接收間隔R為20ms,檢測乘數(shù)D為6。N1發(fā)送的協(xié)商報文中將P置位為1,報文中攜帶協(xié)商的定時器參數(shù)。
第二,N2收到對端P置位的報文,對比自身報文發(fā)送參數(shù),發(fā)送F置位的回應(yīng)報文并攜帶本端可以接受的時間參數(shù):發(fā)送間隔T為30ms,接收間隔R為50ms,檢測參數(shù)D為4。
第三,N1接收到F置位的報文,根據(jù)其所攜帶的信息,保證滿足其最低要求來確定自身的參數(shù)。
第四,根據(jù)定時器協(xié)商機(jī)制,兩端的發(fā)送時間間隔和檢測時間的協(xié)商結(jié)果是:N1發(fā)送間隔T為60ms,接收間隔R為30ms,N2發(fā)送間隔T為30ms,接收間隔R為60ms,檢測乘數(shù)D不參與協(xié)商。N1檢測時間=N2發(fā)送間隔T30ms*N2檢測乘數(shù)D4=120ms,N2檢測時間=N1發(fā)送間隔T60ms*N1檢測乘數(shù)D6=360ms。
6.BFD故障檢測
BFD會話建立及定時器協(xié)商好后,會話兩端將根據(jù)協(xié)商好的時間間隔互發(fā)BFD報文。如果本端在檢測時間內(nèi)沒有收到對端的BFD報文,BFD機(jī)制將認(rèn)為會話兩端的網(wǎng)絡(luò)鏈路中斷,將本端的會話狀態(tài)由UP轉(zhuǎn)為DOWN,同時通知上層協(xié)議進(jìn)行故障處理。
二、BFD在第二匯聚點(diǎn)中的部署
1.電力信息網(wǎng)結(jié)構(gòu)
本文介紹的電力信息網(wǎng)是省級電力公司主匯聚點(diǎn)和第二匯聚點(diǎn)的典型結(jié)構(gòu)。主匯聚點(diǎn)一般位于省會城市,第二匯聚點(diǎn)一般位于省內(nèi)的其他城市。主匯聚點(diǎn)和第二匯聚點(diǎn)各有一臺CE路由器,CE路由器橫向互聯(lián);主匯聚點(diǎn)和第二匯聚點(diǎn)另各有一臺防火墻與接入路由器,接入路由器通過防火墻與CE路由器互聯(lián);主匯聚點(diǎn)和第二匯聚點(diǎn)的接入路由器通過省內(nèi)信息網(wǎng)與地市公司互聯(lián)。
通常情況下,CE路由器和接入路由器之間可以運(yùn)行動態(tài)路由協(xié)議,此時防火墻采用透明模式。但如果省公司采用的不是國家電網(wǎng)公司統(tǒng)一分配的IP地址,需要在防火墻上進(jìn)行地址轉(zhuǎn)換(NAT)時,接入路由器、防火墻和CE路由器之間選擇怎樣的路由協(xié)議需要仔細(xì)考慮(見圖3)。
2.路由協(xié)議的選擇
(1)動態(tài)路由協(xié)議。主匯聚點(diǎn)和第二匯聚點(diǎn)的CE路由器、防火墻和接入路由器可采用動態(tài)路由協(xié)議。采用動態(tài)路由協(xié)議可以及時感知主匯聚點(diǎn)和第二匯聚點(diǎn)的設(shè)備與鏈路故障,并進(jìn)行自動切換,但經(jīng)過測試存在以下不足:
1)如果防火墻使用路由模式且參與OSPF協(xié)議的運(yùn)行,因?yàn)閺V域網(wǎng)路由條目較多,這將增大防火墻的運(yùn)行壓力。雖然現(xiàn)有的防火墻都支持OSPF協(xié)議,但實(shí)踐證明現(xiàn)有防火墻在運(yùn)行多路由條目的動態(tài)路由協(xié)議時,會出現(xiàn)不穩(wěn)定的情況。另外,使用HA模式的防火墻運(yùn)行OSPF,對于主備防火墻之間同步也存在風(fēng)險,容易出現(xiàn)異常情況,導(dǎo)致網(wǎng)絡(luò)出現(xiàn)波動。一旦產(chǎn)生影響,將影響整個網(wǎng)省公司與國家電網(wǎng)公司的互連。
2)如果防火墻采用透明模式,也就是說CE路由器和接入路由器建立OSPF鄰居,但是防火墻需要啟用NAT功能。從理論上來說,也是可行的。但是邏輯拓?fù)浣Y(jié)構(gòu)復(fù)雜,需要考慮OSPF報文穿越防火墻的問題,另外還涉及到主備防火墻的切換問題。不利于故障出現(xiàn)時,快速隔離故障、恢復(fù)業(yè)務(wù)。
由此可見,在需要進(jìn)行IP地址轉(zhuǎn)換的條件下,主匯聚點(diǎn)和第二匯聚點(diǎn)之間運(yùn)行動態(tài)路由協(xié)議并不是最佳方案。
(2)靜態(tài)路由協(xié)議。主匯聚點(diǎn)和第二匯聚點(diǎn)的CE路由器、防火墻和接入路由器也可以采用靜態(tài)路由協(xié)議,但是靜態(tài)路由協(xié)議在發(fā)現(xiàn)故障方面存在先天缺陷。例如主匯聚點(diǎn)的CE路由器出現(xiàn)故障時,主匯聚點(diǎn)的接入路由器因?yàn)榕c防火墻之間的鏈路和端口是正常的,靜態(tài)路由仍然正常工作,數(shù)據(jù)包會繼續(xù)流向防火墻,此時防火墻已與CE路由器中斷,從而導(dǎo)致網(wǎng)絡(luò)故障。
(3)靜態(tài)路由的BFD檢測。使用BFD+靜態(tài)路由的組網(wǎng)模式既可以彌補(bǔ)靜態(tài)路由缺少故障探測的弱點(diǎn),又可以使得網(wǎng)絡(luò)快速收斂。此時,靜態(tài)路由作為上層應(yīng)用,BFD作為底層探測協(xié)議,一旦探測對端失敗,那么通知上層協(xié)議靜態(tài)路由來DOWN掉配置的路由,進(jìn)而完成切換。例如主匯聚點(diǎn)的CE路由器出現(xiàn)故障時,BFD探測到主匯聚點(diǎn)接入路由器無法到達(dá)CE路由器,BFD主動通知靜態(tài)路由協(xié)議將原先靜態(tài)路由置為失效狀態(tài),此時數(shù)據(jù)流量通過第二匯聚點(diǎn)到達(dá)國家電網(wǎng)公司,從而達(dá)到故障自動發(fā)現(xiàn)、業(yè)務(wù)快速恢復(fù)的目的。同時,在主匯聚點(diǎn)和第二匯聚點(diǎn)使用靜態(tài)路由協(xié)議,只需要將江蘇公司的地址發(fā)布給國家電網(wǎng)公司即可,路由條目簡單明了,在出現(xiàn)故障時也能迅速隔離故障、恢復(fù)業(yè)務(wù)。
三、結(jié)束語
BFD作為一種常用的網(wǎng)絡(luò)檢測技術(shù)應(yīng)用的場景很多,在電力信息網(wǎng)第二匯聚點(diǎn)的建設(shè)中使用BFD技術(shù)能夠很好地保證主匯聚點(diǎn)和第二匯聚點(diǎn)的順利切換,從而確保國家電網(wǎng)公司與下屬網(wǎng)省公司的級聯(lián)貫通。
參考文獻(xiàn):
[1]宋哲.IP快速重路由技術(shù)的研究[D].成都:電子科技大學(xué),2010.
[2]陳利兵.BFD技術(shù)在IP承載網(wǎng)中的應(yīng)用[J].現(xiàn)代電信科技,
2008,1(1):61-64.
[3]徐俊,秦藝力,唐淼,等.通信IP網(wǎng)BFD應(yīng)用的研究[J].電子設(shè)計工程,2012,20(3):39-43.
[4]Katz D,Ward D.Bidirectional Forwarding Detection[M].IETF RFC5880,2010.
[5]Katz D,Ward D.Generic Application of Bidirectional Forwarding Detection[M].IETF RFC5882,2010.
(責(zé)任編輯:孫晴)