趙杰


摘 要:上海的歐洲貓自動化系統已運行多年,在其發生過的網絡故障中,路由器工作異常導致塔臺席位降級是其中的一個典型案例。文章以該現象為線索,通過對其進行深入分析,找到問題結癥所在,并嘗試性地提出相應的解決方案,以期為今后工作的開展提供便利。
關鍵詞:歐洲貓系統;網絡故障;XSR-1850路由器;塔臺席位降級
中圖分類號:V226 文獻標識碼:A 文章編號:1006-8937(2014)32-0019-03
1 上海歐洲貓系統主用網絡結構簡述
上海區域管制中心使用的歐洲貓系統共分設四個分部:區調分部、進近分部、虹橋塔臺分部以及浦東塔臺分部。系統中的A、B兩個網絡組成雙冗余的工作網模式,即便某個交換機或路由器出現故障,也能保障各分部之間的數據通信。在分區內部采用smartswitch系列的交換機,在邏輯鏈路上,它們之間通過SPANNING TREE協議連接,形成在邏輯拓撲結構上的無環網絡,既可減少物理結構的雙網冗余模式下的資源浪費,又可通過軟件設置將多個物理端口合成為一個邏輯端口,減少網絡風暴的可能性。
從網絡分層的角度來說,歐洲貓網絡一般分為三層架構:
歐洲貓系統的交換機等設備處于網絡的最底層,即接入層,負責將區管ACC、TMA或是遠程塔臺的數據流導入網絡,所有的終端用戶(即歐洲貓上的席位和服務器)通過接入層來訪問網絡;而XSR-1850路由器處于整個網絡的中間層,它的目地就是通過使用各種路由策略來處理接入層進來的數據包,顯然,XSR-1850使用的是OSPF路由協議;在這兩層之上,則是網絡的核心層,它負責傳輸從本地路由器來的數據包(主要是UDP包),發送到遠端的路由器上,目前上海三地的環網連接方式如圖1所示。
2 XSR-1850路由器簡介
由圖1所示,圖中的Router實例是歐洲貓所用的XSR-1850路由器,該路由器承擔著區管和兩個塔臺工作網間數據的路由交換功能。
2.1 到塔臺鏈路的設備分布情況
從圖1可以看出,青浦-虹橋塔臺、青浦-浦東塔臺兩部分分別采用了該型號的路由器,每個路由器配1個以太網網口,用于連接本地以太網,還配置一個E1接口,用于串連對端遠端網絡。
2.2 虛擬路由功能(VRRP)
所有XSR-1850路由器配置的虛擬網絡地址都是相應的A網路由器的IP地址,并且虛擬的MAC地址也默認是A網路由器的MAC地址,當整個網絡啟動時,在同一個分組中,擁有最高優先權(一般是0~255中的某個數字)的那臺路由器將成為主用狀態;如果優先權相同,則哪臺路由器的IP地址大,哪臺就被選為主路由器;當主路由器癱瘓時,它的優先權就變為0,那么將由其它路由器來代替。
涉及塔臺的VRRP共分2組:
GROUP 3:TMA-虹橋塔;GROUP 4:TMA-浦東塔臺。
2.3 所使用的路由算法:OSPF
該協議的建立比較復雜,通過5種不同的OSPF分組通知來建立完整的路由信息,有:hello分組、DBD分組、LSR分組、LSU分組和LSAck分組,故每個路由器都要花費一定的時間來完成對整個網絡的路由信息的維護,從而才能夠為數據包做出路由選擇。
歐洲貓系統的OSPF協議配置較為簡單,整個上海歐洲貓系XSR-1850路由器都配在一個區域內,可在路由器上通過指令show ip ospf來了解相應的配置情況,同時也可以通過指令show ip route來了解路由表信息。
當XSR-1850路由器啟動后,需要在自己所處的組中選舉VR,并在自己所處的區域中完成OSPF的鏈路更新。
3 故障現象
3.1 故障綜述
目前,XSR-1850路由器出現頻率最高的故障就是E1端口不斷地在進行UP、DOWN的切換,這種切換也叫做路由翻動(flapping)。根據OSPF的協議規定,一條翻動的鏈路必然會促使相關路由器發送一系列的LSU分組通知,那么,接收到這些更新的路由器將不得不重新運行SPF算法來更新自己的路由表。而長時間的翻動會嚴重影響路由器的性能,不斷重復進行的SPF計算則會導致錄取一點CPU負擔過重;而從整個網段來看,連續不斷地進行路由更新回使得OSPF的鏈路狀態數據庫無法快速、有效地收斂。凡是涉及到與遠程塔臺通信出現故障,且能夠第一時間在OASYS上監控到有某個路由器的端口在不停地翻動的情況,那么無一例外是E1端口在翻動,即從側面反映了每個分區的內部網絡是比較穩定的。從目前的現實情況來看,由于中心結點光端機機器放在虹橋,所以通常做電信切割時,影響到的是青浦到兩個塔臺的路由器,因為有VR的存在,A、B路的路由器不會同時發生路由翻動的情況,通常情況是A路某個E1口翻動,并迅速恢復,所以如果切換到B路,那么B網上的路由器也會有同樣的問題出現。
塔臺接收從青浦傳來的UDP數據包,根據不同的用途,分為3種類型,它們被分別放到不同的緩存中去:
TYPE 1數據:存放在buffer_infos和buffer兩個不同的緩存中,前者負責描述存儲在內的數據(如:存儲編號),后者則是一個循環鏈表,存儲實際要發送的數據;
TYPE 2數據:存放在循環鏈表buf2中。
FIFO 數據:存放在循環鏈表fifo_buffer中。
后兩種數據被CDP發送后即刻刪除,這樣便可以保障這兩個緩存基本上不出于飽和狀態;而對于TYPE 1數據類型來說,當青浦向塔臺發送一個TYPE 1數據后,塔臺的CDP在收到數據的同時會回送一個ACK的消息(即:內容與計數器類似),此時青浦會將該數據在bufer_infos和buffer中刪除;否則會將向塔臺CDP發送一個NACK的消息,用于塔臺CDP判斷還有哪些數據需要本方來傳送。
3.2 故障現象一:塔臺席位目標停滯
當路由器E1端口出現翻動現象前5~10 min,CDP的日志中就已經有鏈路oerflow的告警提示了,具體日志信息如下:
lscmio文件:設備SHTM_HQRT_CDP處于非正常工作狀態;
too many requests stored in buffer
No packet monitoring on link to shrhcdp1ada because overflow status
Msg not added because link is in overflow
DLI messge NOT sent to HQRT:shrhcdp1ada
cdp00x文件:RX PACKET from HQRT:shrhcdp1ada
CONNECT from HQRT:shrhcdp1ada
Link is OVERFLOW and we have received a CON- connection has been dropped at the other end.
在緩存中有大量傳送數據的請求,鏈路處于overflow(溢出)狀態,由于緩存容量有限,故DLI信息無法送到目的地(shrhcdp1ada)。
塔臺席位內的日志信息:
ENV:FDP Mode:NORMAL
RDP Mode:MULTI
DLI信息里主要是雷達航跡,由于DLI信息在buffer中發送,所以屬于TYPE 1類型;上述情況表明雷達航跡無法傳送到塔臺的CDP節點,顯然在塔臺的席位上,會出現雷達航跡不更新的現象,相當于其管制的航班停滯不前了;此時,塔臺席位的雷達航跡不更新,而且也不降級,鼠標、鍵盤功能都正常,這種情況系統更本不能自動降級,只是鏈路斷續,在路由器上E1端口的翻動現象很頻繁,但路由器本身沒有失效,CDP的相應鏈路會顯示處于STARTING狀態,必須重啟路由器。
3.3 現象二:塔臺席位降級使用
塔臺席位內的日志信息:
ENV:FDP Mode:NORMAL /LOCAL
RDP Mode:MULTI /BYPASS
從監控上看到塔臺的工作網鏈路中斷時,CDP的相應鏈路會顯示處于FAILED狀態(如:shtm-hqrt-cdp FAILED),在這種情況下,青浦不能將數據發送到塔臺,那么塔臺席位將自動降級;此時在外部鏈路回復正常前,重啟路由器無效。
3.4 降級后的恢復
當確認外部鏈路正常后,再對路由器進行重啟,一般塔臺席位都能恢復正常。
此時青浦的日志信息為:
Resetting active link type 1 to HQRT and the other type one.
BNS resending required form HQRT.
Starting REMOTE consistency for HQRT:shrhcdp1ada and resetting all the buffers.
ADDING initialisation_data in buffer at indes 0 for link to HQRT.
4 故障探討
在OSI七層模型中,數據鏈路層的作用是將強物理層傳輸原始bit的功能,該層發送的數據都封裝在數據幀(Data Frame)中,該層又分為MAC和LLC兩個子層,MAC負責對共享介質的存取,而LLC即:邏輯鏈路控制子層,負責處理差錯檢測(Error Detection)和差錯控制(Error Control);對于上海的EUROCAT-X系統來說,降級多發生于虹橋塔臺,這是由于外部鏈接上的特殊性所造成的:由于網絡公司的中心結點在虹橋航管樓,從航管樓到虹橋塔臺還要經過一個從大光端機到小光端機的傳輸環節,比到浦東塔臺多了一個環節;故當電信切割發生在虹橋中心節點機上后,SDH設備需要重新建鏈時,大、小光端機有所差異(大約有55 ms的空隙時間),由于其本身沒有時鐘同步機制,導致發生時隙延時,從而導致了數據幀的傳送錯誤;這往往會影響到歐洲貓路由器的同步,表現為E1端口不斷地翻動,如果此時察看路由器的Slip seconds參數,那么必有數值增加的現象。此外,為了保障可靠的傳輸,數據鏈路層要求對端回送特殊的控制幀,作為對發送端的肯定或是否定性的確認,這些都會產生大量XSR-1850可以容忍的CRC校驗錯誤,最終導致青浦無法向塔臺傳送信息。
由于XSR-1850路由器支持VR,且默認配置是A路路由器優先級高于B路,故一旦A路出故障,只要路由器認為自己還是正常的,只不過是有一個端口狀態不穩定而已,那么鏈路就不可能自動切換到B路,從而導致塔臺席位降級。
5 建 議
在對歐洲貓的兩個遠程分區進行A/B網連接時,應為A/B網設置不同的工作鏈路,并且將A網(系統默認主用網絡)放在相對更安全的那條鏈路上。
此外,基于到遠程分區的鏈路都要通過租用外部運營商的通信鏈路,那么我們還可以通過引入多套外部傳輸鏈路,如:中國聯通ATM機、中國移動光端機設備等,分解由單一運行商設備故障導致的鏈路問題。具體改造方案如圖2所示。
6 結 語
以XSR-1850路由器為代表的網絡設備是系統分區間數據發送的物理中轉站,當發生塔臺席位降級現象時,可結合具體鏈路情況并結合查詢系統日志進行統一分析,提高故障定位的準確性,從而可為塔臺席位恢復正常使用節約下寶貴的時間;但作為維護人員,從根本上解決這種情況需要從目前的網絡架構入手進行改造,才能從本質上減少由于網絡原因造成塔臺席位降級的可能性。
參考文獻:
[1] 龔宏偉,周欣.基于塔臺仿真系統的飛行短期沖突檢測[J].計算機技術與發展,2013,(4).