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