摘 要:隨著電力行業計算機通信網絡系統和應用日益普及和完善,集中式的網管軟件面臨應用挑戰,其拓撲管理的實時性不能滿足網絡規模擴大后的應用要求。文中分析分布式網絡拓撲管理方案,通過有效的網絡拓撲分割方式,設計并實現了由拓撲管理主站和嵌入式Linux裝置實現的拓撲管理子站構成的、實時性增強的分布式網絡管理系統。結合系統的實現,進行了實現難點分析和總結,并為下一步的改進完善指出了方法。
關鍵詞:分布式系統 網絡管理 拓撲管理 嵌入式Linux
中圖分類號:TP319.3 文獻標識碼:A 文章編號:1672-3791(2012)11(a)-0004-04
隨著計算機與網絡技術的發展,數字化電網的新時代正在向我們走來。電力通信網絡針對電力行業的應用特點和各種系統要求進行設計和建設,以適應各電力行業應用系統的需要。從總體上,國家電力通信網已經建成以國網骨干網和省一級數據網為核心的IP網絡結構。根據國網的省網建設規范,采用分層設計,各省級電力通信網也陸續建成了核心層、骨干層和接入層等三層結構為總體的IP數據網。各地市網絡則分別組成四級網結構,接入省網骨干層。
在設計原則上,電力通信網絡首先統一了N-1可靠性原則、雙出口原則,確保了網絡基礎結構的可靠性;其次,統一制定了BGP和OSPF為域間和域內路由協議的路由體制,保證了網絡聯通性和網絡應用實時性需求的充分實現;同時,還統一制定了基于MPLS的VPN網絡組網體制,以充分滿足電力二次安防體制的分區實現技術需求。上述電力數據網絡的規劃和部署為電力應用的數字化邁進,為建設堅強的智能電網打下了堅實的網絡通信基礎。
網絡管理是電力通信網絡必須實現的基本功能,是保證網絡安全可靠運行所必須的技術手段。網絡管理五大基本功能包括配置、性能、故障、安全、統計計費管理,而根據電力數據網的具體運行管理需求,網絡管理還應該包括其他一些功能,如報表管理、告警輸出等。
電力行業現有的網絡管理軟件所采用的是一種集中式管理結構[1],所有的網管功能和軟件運行在一個集中的網管服務器或網管系統中,對于電力數據網絡應用日益豐富,網絡拓撲日益復雜的情況,這種集中式運行的網管系統越來越難以滿足實際電力通信網管應用的需要。本文根據我們所開發的電力應用地市級分布式網絡管理系統的實踐,對其中的分布式網絡拓撲管理問題進行研究和總結。
1 分布式網絡拓撲管理總體方案
一個網絡的拓撲結構由若干個節點和這些節點之間的互連關系構成,這些節點和連接的集合稱為拓撲域。一個網絡本身就是一個巨大的拓撲域,為了拓撲發現的分布式運行,需要將一個拓撲域劃分為若干個小的子域,每個子域設置一個子站采集裝置,采集各個設備的數據并確定其連接關系;然后將所有子域中的信息通過網絡傳輸至主站,由主站將信息匯總并計算,從而得到整個網絡的拓撲連接。
電力行業中的大型網絡的拓撲域劃分可以根據實際網絡情況采用兩種不同的劃分策略:電力系統網絡一般會根據不同的功能劃分為不同的應用系統,每個應用系統工作于相同的子網中,因此可以直接將各個系統對應劃分為若干拓撲子域(如圖1所示);另一種網絡環境是一個完整的拓撲域通常起始于一個核心路由設備,將該設備的不同端口配置不同的子網,從而有層次地拓展出整個網絡,此時可以依據核心交換設備的各個端口劃分不同的子域。如果某端口連接的子域網絡仍然復雜,則可以采用同樣的方法進一步對該子域進行劃分(圖2)。
一個完整的網絡拓撲管理系統包括拓撲發現模塊、拓撲顯示模塊和報警功能模塊等。
(1)拓撲發現模塊:獲得拓撲所需要的數據,通過分析數據推斷網絡拓撲結構,并按照一定的格式存儲結果。該模塊中包含設備確定模塊、數據采集模塊、信息分析模塊和信息存儲模塊。設備確定模塊通過SNMP采集設備名、描述、sysServices和ipForwarding的值確定設備的存在以及設備類型;數據采集模塊通過SNMP采集設備的端口表、ARP表、地址轉發表等信息;信息分析模塊通過對采集的數據的分析確定了各設備間的連接關系;當網絡規模較大時數據存儲需要采用數據庫,信息存儲模塊設計數據庫接口,將信息分析結果存放到數據庫中,實現了信息計算與拓撲顯示的分離。
(2)拓撲顯示模塊:獲得拓撲發現模塊所產生的反應當前拓撲結構的結果,通過合理的節點布局將該結果通過圖形化的方式顯示出來。
(3)報警功能模塊:根據數據庫中預設的報警項和閾值,與數據采集模塊采集的數據比較,確定報警,并通過界面展示等方式處理報警。
2 分布式網絡拓撲管理系統主站設計
2.1 主站功能分析
分布式網絡拓撲管理系統中的主站是一個中央級的數據中心,它不僅完成從核心交換設備與下一級子站之間的拓撲連接的發現,而且會根據各個子站拓撲發現的結果分析得到整個網絡的詳細拓撲并展示。因此,分布式網絡拓撲管理系統的主站主要具備以下功能。
(1)拓撲發現:根據配置的根節點設備,通過SNMP獲得設備信息,確定根節點與下一級子站管理的拓撲子域之間的連接關系,同時確定子站拓撲發現的起始節點。
(2)配置下發:根據拓撲發現的結果,分析得到子站進行拓撲發現的條件,如起始節點、子網范圍等,通過網絡傳輸至子站。
(3)子站數據接收:主站接收來自于子站的拓撲發現信息,分析并存入數據庫;除此之外,完成拓撲發現后,還可以接收子站拓撲網絡運行的信息,如線路流量等,用于完成系統的報警管理功能。
(4)拓撲展示:根據數據庫存儲的拓撲數據,依據設備的類型并合理的布局,用圖形化的方式展示整個網絡的拓撲結構。
2.2 主站數據庫設計
本文實現的系統中,主站采用MYSQL數據庫存儲網絡拓撲信息和設備運行信息。為了完成該網絡拓撲管理系統,主要幾個關鍵數據:設備信息表Devices、設備端口表Ifs和連接關系表Links。表1~3列出了這三個數據表中的重要表項和描述。其中設備信息用于存儲拓撲發現的各個設備,并依據采集的信息對設備類型進行判斷;設備端口用于描述端口信息,除了表中列出的數據項外,通過SNMP還可以采集端口速度、通信包接收和發送的流量等信息,實現對系統的監控;連接關系具體到一個設備的具體端口,對無法響應SNMP請求的設備,默認其端口號為0。
3 基于嵌入式裝置的拓撲管理子站系統實現
分布式系統在20世紀八九十年代占主導地位。其核心思想是集中管理、分散控制,即管理與控制相分離,主站用于集中監視管理功能,若干臺嵌入式采集裝置下放分散到現場實現分布式測量與控制,主站與嵌入式采集裝置之間用控制網絡互連以實現相互之間的信息傳遞。因此,這種分布式的測控系統體系結構有力地克服了集中式數字測控系統對控制器處理能力和可靠性要求高的缺陷。
3.1 子站功能分析
由高性能嵌入式裝置與主站組成對電力系統網絡的拓撲發現和管理系統,采用專業的嵌入式Linux操作系統,并配備多網口和大容量數據存儲器,對大規模電力系統網絡實現有效的拓撲子域劃分。結合實際應用需求,此類嵌入式子站裝置主要實現的功能包括。
(1)網絡拓撲發現:根據設定的子域范圍,嵌入式裝置通過SNMP協議采集子域內網絡設備的相關信息,根據算法確定設備的連接關系。
(2)數據處理與存儲:設計數據庫接口,嵌入式裝置對數據進行分析處理后,將得到的設備信息和連接信息存入數據庫。為了保證與主站端數據的一致性和數據存儲的高效性,在嵌入式裝置中通常采用sqlite數據庫,該數據庫中的主要數據表設計與主站中的設計相同。
(3)與主站的數據通信:該功能主要包括兩個方面:一是接收主站端的配置數據下發,包括拓撲發現的起始節點、子站管理的網絡范圍和拓撲管理所需的數據采集項;二是子站采集數據的同步,主要是數據庫中的設備列表、連接信息列表以及監控數據項的實時采集數據。要實現高效的網絡處理通信流程,必須對通信流程進行優化,實現異步無阻塞的通信模式。所謂非阻塞方式(non-block),就是進程或線程執行此函數時不必非要等待事件的發生,一旦執行肯定返回,以返回值的不同來反映函數的執行情況,而進程或線程繼續執行,從而提高代碼效率。在Linux平臺下,使用Select函數就可以設計和完成非阻塞方式的網絡通信程序。
3.2 分布式系統的架構
分布式系統由主站和嵌入式采集裝置構成,每個采集裝置完成一個拓撲子域內的拓撲發現,主站根據所有子站以及自身拓撲發現的結果,分析數據得到整個網絡的拓撲連接關系,通過合理的布局將實現拓撲結構的圖形化展示。一種典型的分布式系統架構圖如圖3所示。
4 分布式拓撲發現算法分析及實現
網絡拓撲發現算法分為邏輯層與物理層,也可稱為網絡層和數據鏈路層。邏輯層拓撲發現用來發現路由器與路由器、路由器與子網之間的連接;物理層發現用來發現局域網內部交換機與交換機、交換機與主機之間的連接關系。
4.1 算法理論基礎
目前常見的網絡設備如路由器、交換機、服務器等都支持SNMP協議,傳統網絡拓撲自動發現算法從一個根節點出發,發現效率較低或準確率難以滿足應用要求。本文提出的算法通過分布式方案部署,將整個網絡劃分為多個子域,提高了算法效率和準確性;算法首先確定整個網絡中的所有子網,通過遍歷子網發現活動網絡設備,然后通過采集設備的地址轉發表和ARP表,發現一些無法響應SNMP協議的網絡設備,如未開啟SNMP服務的PC機等,并確定這些設備在網絡中的連接。同時,通過采集設備的端口表信息,可以實現對網絡設備相關信息的監控和管理。
算法中使用的一些術語含義如下。
(1)節點:網絡中的交換或路由設備起到了不斷擴展網絡的作用,這些設備作為算法中的節點,根據節點的不同功能可以分為根節點、中間節點和葉子節點。
(2)上行端口:與根節點直接或間接相連的設備端口。
(3)下行端口:從根節點出發到該節點后,該節點繼續與其他節點相連的端口。
(4)葉子端口:從根節點出發到該節點后,該節點中只連接了PC機或服務器等非交換或路由設備的端口。
(5)葉子交換機/路由器:該交換機或路由器只具備上行端口和葉子端口,沒有下行端口。
4.2 算法流程概述
本文的拓撲發現算法分為兩步:第一步是邏輯層的拓撲發現,主要作用是發現網絡中的設備、確定設備類型以及確定邏輯層的連接關系,該連接關系主要通過發現的設備上行端口的IP地址屬于哪一個子網來實現;第二步是物理層的拓撲發現,主要根據設備的地址轉發表,從葉子路由器或交換機開始,層層向上確定連接關系,直至根節點。
算法需要使用多個鏈表用于存儲不同類型的待連接設備及端口,主要包括子網列表N、待處理的交換和路由設備列表D、待連接的服務器上行端口列表SP、待連接的交換設備上行端口DP、待處理的葉子設備列表L、待連接的未知類型端口TP和表征連接關系的隊列Link。
邏輯層拓撲發現流程如圖4所示。
(1)獲取根節點設備信息,初始化子網列表N。
(2)遍歷列表N中子網的所有IP,通過SNMP獲取IP-MIB中的ipAdEntNetMask項,獲得設備端口的子網信息,將發現的新的子網加入N,發現的路由和交換設備加入點處理設備列表D,發現的支持SNMP協議的服務器的唯一上行端口加入列表SP。
(3)根據子網發現的順序,確定子網之間的層級關系,不斷重復直至完成所有子網的遍歷。
物理層的拓撲發現流程如圖5所示。
(1)遍歷設備列表D,通過SNMP獲取設備的dTpFdbTable(地址轉發表,表明該設備連接的MAC地址信息)、ifPhysAddress(設備端口的MAC地址信息表)和ipNetTo
MediaPhysAddress(設備ARP表,表明IP地址與MAC地址的對應關系,用于完善設備地址轉發表)。
(2)根據采集的信息判斷設備的類型,將葉子節點存入列表L。葉子節點的判斷依據:葉子路由器在邏輯層拓撲發現中不是列表中其他設備的父節點;葉子交換機下行端口的地址轉發表中標識的端口均已經加入了列表SP或DP。
(3)處理列表L中的葉子節點。節點的上行端口存入列表DP,葉子路由器的其他端口不處理,葉子交換機的其他端口依據地址轉發表分別處理:下行端口從列表DP中得到待連接的子節點端口,從SP列表中得到待連接的服務器,其他MAC地址通過ARP表確定對應的IP地址,這些IP地址均為不支持SNMP協議的PC主機等設備;葉子端口只連接服務器或其他不支持SNMP協議的設備;未知類型的端口加入至列表TP。將上述已確定的連接關系加入至隊列Link。
(4)不斷重復上述過程直至隊列L和D均為空。完成遍歷后,列表TP中的未連接端口根據邏輯層拓撲發現的結果,直接與父節點設備中處于同一子網中的端口相連接。
4.3異常現象處理
在電力系統網絡中,有兩種常見的網絡結構會引起某些拓撲發現算法的異常:一是環網拓撲,即多臺設備構成一個圓環,很多拓撲發現算法處理這類網絡無法保證得到閉合的連接;二是冗余備份,即某些路由設備的部分端口在同一個子網中,由于拓撲發現的算法多為多線程操作,則在發現過程中會有多個線程同時通過SNMP協議獲取設備信息,造成網絡擁塞,導致拓撲發現無法順利完成。
本文介紹的算法可以在邏輯層拓撲發現階段通過有效的預處理方式,避免上述兩種異常現象的發生。在邏輯成拓撲發現過程中,本算法發現的子網首先會確定一個父節點IP地址,該地址對應為某一設備的端口地址,然后在遍歷子網過程中發現的活動節點均認定為該父節點的子節點。環形網絡的特點決定了網絡中至少有一個設備存在兩個向上連接的端口,即某一子節點有兩個不同的父節點,該設備具有兩個上行端口,此類設計保證了從根節點出發拓撲發現匯聚于該子節點,實現了環形網絡的閉合。另一方面,為了避免多個線程同時采集同一個設備造成網絡擁塞,增加了一個臨時活動設備的隊列AP,在遍歷隊列N中的所有IP之前,通過SNMP獲取設備的名稱,確定設備是否響應SNMP協議,將活動設備加入列表AP中,然后再對列表AP中的各個設備采集IP-MIB中的信息。由于采集設備名稱的SNMP協議僅產生幾個字節的數據流量,不會造成網絡通道的阻塞,因此該初篩步驟可以保證拓撲發現的順利進行。
4.4 分布式拓撲管理系統的運行實例
將該分布式系統應用于電力系統網絡中,應用上述拓撲發現算法對某通信機房的網絡進行拓撲發現,可以得到如圖6所示的拓撲結果。從圖中可以看出,該算法可以發現各種網絡設備,包括未開啟SNMP服務的PC機,并且正確計算并顯示這些設備的連接關系,并且該算法對環網結構以及結構復雜的子網都具有同樣的拓撲發現能力。
5 結語
拓撲發現不僅要發現網絡中相關實體,而且要得到實體間的連接關系。本文通過獲取網絡設備的SNMP信息,將邏輯層和物理層拓撲發現相結合,基于葉子節點的概念實現網絡拓撲發現。同時結合分布式計算技術,搭建了主站和嵌入式子站裝置相結合的分布式系統,實現整個拓撲網絡的分層/分塊管理,使拓撲發現更加靈活,網絡管理和監控更加的實時有效,尤其適用于類似電力行業具有分布式特點的網絡結構。
參考文獻
[1] 劉振山,徐孟春,程瑋瑋.基于SNMP協議的網絡拓撲結構發現[J].信息工程大學學報.
[2] Hwa-Chun Lin,YI-Fan Wang, Chien-Hsing Wang,et al.Web-based distributed topology discovery of IP network[J].Information Networking,2001. Proceedings 15th International Conference,2001:857-862.
[3] D T STOTT.Snmp-based layer-3 path discovery[J].Tech.Rep.ALR-2002- 005,Avaya Labs Research,Avaya Inc.Basking Ridge,NJ,2002.
[4] 姜譽,胡銘曾,方濱興,等.一個Internet 路由器級拓撲自動發現系統[J].通信學報,2002,12.
[5] 徐敏,周保飛.分布式計算技木的應用研究[J].Journal of Computer Research & Development[J],2003,116.
[6] Wu J,Li H.On calculating connected dominating sets for efficient routing in ad hoc wireless networks[J].In:Proc. of the 3rd Int’l Workshop Discrete Algorithms and Methods for Mobile Computing and Comm.1999:7-14.
[7] 岑玲.基于簡單對象訪問協議的分布式計算技術[J].微型機與應用,2001(7).