艾武
上海局鐵路數(shù)據(jù)通信網(wǎng)由邊緣路由器(PE)、用戶邊緣路由器(CE)、核心路由器(P)組成,在每個(gè)車站部署2臺(tái)接入邊緣路由器PE 01(主用)、PE 02(備用)。PE間采用光纖GE互聯(lián),不同業(yè)務(wù)通過(guò)不同VPN來(lái)隔離,各業(yè)務(wù)系統(tǒng)相互獨(dú)立。2臺(tái)PE與2臺(tái)CE互聯(lián),形成“口”字型冗余組網(wǎng)[1]。用戶側(cè)CE01和CE02前端各有1臺(tái)防火墻設(shè)備(Firewall 01,02),用于數(shù)據(jù)通信網(wǎng)與用戶側(cè)的安全域隔離,防火墻使用透明模式接入網(wǎng)絡(luò),不改變網(wǎng)絡(luò)路由應(yīng)用。在防火墻設(shè)置安全策略,保證網(wǎng)絡(luò)安全。
全網(wǎng)采用多協(xié)議標(biāo)簽交換虛擬專用網(wǎng)絡(luò)(MPLS/BGP VPN),自治域內(nèi)部設(shè)備路由采用IS-IS協(xié)議,業(yè)務(wù)路由采用內(nèi)部邊界網(wǎng)關(guān)(IBGP)協(xié)議,VPN用戶路由采用多協(xié)議-邊界網(wǎng)關(guān)(MP-BGP)協(xié)議[2]。承載業(yè)務(wù)包括旅客服務(wù)信息系統(tǒng)(PSIS)、牽引供電(電力)遠(yuǎn)動(dòng)系統(tǒng)(SCADA)和GPRS系統(tǒng)等。正常狀態(tài)下,鐵路數(shù)據(jù)通信網(wǎng)承載業(yè)務(wù)接入流量走向見(jiàn)圖1。
PE與CE間使用靜態(tài)路由,在PE側(cè)配置業(yè)務(wù)地址,指向CE的靜態(tài)VPN路由,并在MPLS/BGP VPN實(shí)例里引入靜態(tài)路由[3],實(shí)現(xiàn)各PE間業(yè)務(wù)路由的學(xué)習(xí)。下行業(yè)務(wù)流量走向根據(jù)IS-IS度量值參數(shù)(Metric)來(lái)進(jìn)行BGP路由選路。正常業(yè)務(wù)流量走向?yàn)镻E 03→P 01→PE 01→CE 01。
為防止業(yè)務(wù)側(cè)接入交換機(jī)至CE發(fā)生單點(diǎn)失效問(wèn)題,CE側(cè)使用虛擬路由冗余協(xié)議(VRRP),對(duì)業(yè)務(wù)網(wǎng)關(guān)進(jìn)行冗余保護(hù)。CE 01設(shè)備VRRP為主用(master)狀態(tài),監(jiān)控上行互聯(lián)鏈路狀態(tài),CE 02設(shè)備VRRP為備用(backup)狀態(tài)。上行正常業(yè)務(wù)流量走向?yàn)镃E 01→PE 01→P 01→PE 03。
這種網(wǎng)絡(luò)易產(chǎn)生非對(duì)稱路由,當(dāng)鐵路數(shù)據(jù)通信網(wǎng)組網(wǎng)方式發(fā)生變化或用戶在CE側(cè)進(jìn)行業(yè)務(wù)主備切換時(shí),可能導(dǎo)致業(yè)務(wù)中斷。
非對(duì)稱路由是指發(fā)送和接收數(shù)據(jù)包時(shí),分別使用了主機(jī)和目的地設(shè)備之間2條不同的路徑。根據(jù)《鐵路數(shù)據(jù)網(wǎng)編號(hào)規(guī)則及路由規(guī)范》,同一多自治系統(tǒng)(AS)域內(nèi)路由器的業(yè)務(wù)路由策略應(yīng)一致,不適用路由控制及過(guò)濾策略,因此鐵路數(shù)據(jù)通信網(wǎng)側(cè)PE路由器不對(duì)相關(guān)業(yè)務(wù)路由進(jìn)行策略屬性控制。當(dāng)2臺(tái)PE路由器發(fā)布相同業(yè)務(wù)網(wǎng)段的路由時(shí),路由屬性相同,對(duì)端PE設(shè)備根據(jù)IS-IS度量值參數(shù)(Metric)來(lái)進(jìn)行BGP路由選路[4]。
當(dāng)鐵路數(shù)據(jù)通信網(wǎng)設(shè)備互聯(lián)鏈路斷開(kāi)時(shí),設(shè)備間Metric值將會(huì)發(fā)生變化,設(shè)備會(huì)重新進(jìn)行路由選擇,并最終產(chǎn)生非對(duì)稱路由[4]。如圖2所示,當(dāng)邊緣路由器(PE 01)至核心路由器(P 01)設(shè)備鏈路中斷時(shí),設(shè)備間會(huì)重新進(jìn)行路由計(jì)算選擇。上行流量走向?yàn)镃E 01→PE 01→PE 02→P 02→PE 03,PE 03設(shè)備優(yōu)先選擇PE 02設(shè)備發(fā)布的路由,加入本地VPN路由表[5],由于PE 02配置了業(yè)務(wù)網(wǎng)段的靜態(tài)路由,業(yè)務(wù)下行流量走向?yàn)镻E 03→P 02→PE 02→CE 02,上行流量和下行流量路徑不一致,即形成非對(duì)稱路由。
當(dāng)鐵路數(shù)據(jù)通信網(wǎng)新增邊緣路由器PE時(shí),設(shè)備間Metric值同樣會(huì)發(fā)生變化,設(shè)備會(huì)重新進(jìn)行路由選擇,最終產(chǎn)生非對(duì)稱路由。如圖3所示,當(dāng)PE 03與P 01之間新增PE 04設(shè)備后,PE 03設(shè)備優(yōu)先選擇PE 02設(shè)備發(fā)布的路由加入本地VPN路由表,業(yè)務(wù)下行回程流量則通過(guò)PE 03→P 02→PE 02→CE 02,由于用戶側(cè)CE設(shè)備無(wú)法感知數(shù)據(jù)網(wǎng)絡(luò)的變化,上行流量為CE 01→PE 01→P 01→P 02→PE 03,上行流量和下行流量路徑不一致,形成非對(duì)稱路由。
圖1 鐵路數(shù)據(jù)通信網(wǎng)正常業(yè)務(wù)流量走向
圖2 數(shù)據(jù)通信網(wǎng)網(wǎng)互聯(lián)鏈路中斷導(dǎo)致非對(duì)稱路由
當(dāng)鐵路數(shù)據(jù)通信網(wǎng)PE設(shè)備和CE設(shè)備間存在非對(duì)稱路由時(shí),PE設(shè)備和CE設(shè)備間防火墻設(shè)備的狀態(tài)檢測(cè)機(jī)制會(huì)引起業(yè)務(wù)中斷。以TCP(傳輸控制協(xié)議)業(yè)務(wù)流量為例,業(yè)務(wù)系統(tǒng)主機(jī)發(fā)送TCP SYN(同步序列編號(hào))請(qǐng)求報(bào)文,經(jīng)過(guò)CE 01-Firewall 01-PE 01發(fā)送至對(duì)方服務(wù)器,但對(duì)方服務(wù)器響應(yīng)SYN+ACK(確認(rèn))報(bào)文需要通過(guò)PE 02-Firewall 02-CE 02返回業(yè)務(wù)主機(jī)。由于Firewall 02開(kāi)啟了TCP狀態(tài)檢測(cè)功能,只要檢查不到既有生成的會(huì)話表后,就對(duì)報(bào)文進(jìn)行丟棄,導(dǎo)致TCP三次握手無(wú)法正常建立,影響業(yè)務(wù)正常使用。
當(dāng)用戶側(cè)CE設(shè)備與防火墻設(shè)備間鏈路中斷時(shí),VRRP協(xié)議觸發(fā)主備倒換,最終產(chǎn)生非對(duì)稱路由。如圖4所示,當(dāng)用戶側(cè)CE 01設(shè)備與Firewall 01設(shè)備間鏈路中斷時(shí),CE 01設(shè)備變?yōu)閎ackup狀態(tài),CE 02設(shè)備變?yōu)閙aster狀態(tài),上行業(yè)務(wù)流量走向切換為CE 02→PE 02→P 02→PE 03。由于PE設(shè)備至CE設(shè)備間使用靜態(tài)路由協(xié)議,PE 01無(wú)法準(zhǔn)確感知鏈路變化,此時(shí)PE 01與防火墻01間鏈路狀態(tài)正常,靜態(tài)路由不會(huì)發(fā)生變化,PE 01正常向外發(fā)布BGP VPN路由下行流量走向?yàn)镻E 03→P 01→PE 01→CE 01,由于CE 01至Firewall 01互聯(lián)鏈路中斷,導(dǎo)致數(shù)據(jù)報(bào)文被丟棄。
為解決非對(duì)稱路由影響業(yè)務(wù)的問(wèn)題,可采用以下優(yōu)化方案。
1)關(guān)閉防火墻狀態(tài)檢測(cè)功能,使防火墻對(duì)SYN+ACK、icmp reply(Internet控制報(bào)文協(xié)議延時(shí))等非首包的回應(yīng)報(bào)文也能創(chuàng)建會(huì)話表,正常轉(zhuǎn)發(fā)相應(yīng)流量。此種方式僅能用于解決鐵路數(shù)據(jù)通信網(wǎng)變化后,非對(duì)稱路由導(dǎo)致的業(yè)務(wù)中斷。
2)利用BFD(雙向轉(zhuǎn)發(fā)檢測(cè)技術(shù))、NQA(網(wǎng)絡(luò)質(zhì)量探測(cè)技術(shù))對(duì)互聯(lián)鏈路進(jìn)行檢測(cè),并綁定靜態(tài)路由[6]。當(dāng)鏈路中斷后,BFD、NQA會(huì)探測(cè)失效,從而聯(lián)動(dòng)PE路由器靜態(tài)路由失效。該方式僅能解決用戶側(cè)CE設(shè)備至防火墻鏈路中斷后,形成非對(duì)稱路由導(dǎo)致的業(yè)務(wù)中斷。
3)采用外部邊界網(wǎng)關(guān)協(xié)議(EBGP)替代PE至CE設(shè)備間靜態(tài)路由協(xié)議[7]。利用EBGP協(xié)議的鄰居狀態(tài)檢測(cè)機(jī)制,可以自動(dòng)檢測(cè)故障狀態(tài)下鄰居關(guān)系,并自動(dòng)撤銷相關(guān)業(yè)務(wù)路由,可解決用戶側(cè)CE設(shè)備至防火墻鏈路中斷后,形成非對(duì)稱路由導(dǎo)致的業(yè)務(wù)中斷;還可以利用EBGP協(xié)議中多出口區(qū)分(MED)屬性,替代IS-IS協(xié)議下Metric參數(shù)值進(jìn)行路由選路,解決鐵路數(shù)據(jù)通信網(wǎng)網(wǎng)絡(luò)變化后,非對(duì)稱路由導(dǎo)致的業(yè)務(wù)中斷。
圖3 數(shù)據(jù)通信網(wǎng)新增PE設(shè)備導(dǎo)致非對(duì)稱路由
圖4 用戶側(cè)CE設(shè)備與防火墻互聯(lián)鏈路中斷導(dǎo)致非對(duì)稱路由
將PE-CE設(shè)備間路由協(xié)議改為EBGP協(xié)議,在CE 01設(shè)備邊界網(wǎng)關(guān)協(xié)議(BGP)進(jìn)程里配置MED屬性為100,在CE 02設(shè)備BGP協(xié)議進(jìn)程里配置MED屬性為200。此時(shí)PE 01、PE 02設(shè)備將攜帶不同MED屬性的MPLS/BGP VPN路由。對(duì)端PE 03設(shè)備會(huì)優(yōu)先根據(jù)MED值來(lái)進(jìn)行選路,而不再對(duì)IS-IS協(xié)議Metric值進(jìn)行比較,最終選擇將MED值較小的PE 01發(fā)布的路由加入路由表。當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí),路由MED值屬性不會(huì)發(fā)生變化,下行業(yè)務(wù)流量走向?yàn)镻E 03→PE 01→CE 01,與上行流量走向一致,解決了鐵路數(shù)據(jù)通信網(wǎng)非對(duì)稱路由導(dǎo)致的業(yè)務(wù)中斷問(wèn)題。
EBGP協(xié)議鄰居狀態(tài)檢測(cè)默認(rèn)時(shí)長(zhǎng)為180 s,BFD協(xié)議檢測(cè)默認(rèn)時(shí)長(zhǎng)為300 ms,EBGP協(xié)議檢測(cè)周期較長(zhǎng)。同時(shí)在PE設(shè)備和CE設(shè)備的BGP進(jìn)程下啟用BFD功能。以圖4為例,BFD協(xié)議檢測(cè)到PE 01與CE 01設(shè)備間狀態(tài)異常后,PE 01將與CE 01的BGP鄰居狀態(tài)變?yōu)榭臻e(idle)狀態(tài),同時(shí)向全網(wǎng)發(fā)布撤銷相關(guān)VPN業(yè)務(wù)路由的信息。PE 03收到該信息后,從本地VPN路由表里刪除PE 01發(fā)布的VPN業(yè)務(wù)路由,切換到由PE 02設(shè)備發(fā)布的VPN業(yè)務(wù)路由[8]。下行業(yè)務(wù)流量走向變?yōu)镻E 03→PE 02→CE 02,上行業(yè)務(wù)流量為CE 02→PE 02→PE 03,上下行業(yè)務(wù)流量保持一致,解決了用戶側(cè)CE設(shè)備至防火墻鏈路中斷后,非對(duì)稱路由導(dǎo)致的業(yè)務(wù)中斷。
本文主要針對(duì)鐵路數(shù)據(jù)通信網(wǎng)PE-CE互聯(lián)鏈路增加防火墻組網(wǎng)方式下,非對(duì)稱路由的優(yōu)化,使用EBGP+BFD的方式,解決非對(duì)稱路由產(chǎn)生的來(lái)回路徑不一致問(wèn)題,既能達(dá)到安全防火墻的應(yīng)用效果,又能快速的進(jìn)行冗余倒換,減少故障發(fā)生。建議逐步對(duì)現(xiàn)網(wǎng)設(shè)備進(jìn)行優(yōu)化改造,保障鐵路承載業(yè)務(wù)系統(tǒng)更加安全、可靠、高效。