◆楊凱江 馬恩寧 段曉雪 陸蔚琳
網絡拓撲主動發現關鍵技術研究
◆楊凱江 馬恩寧 段曉雪 陸蔚琳
(云南電網有限責任公司大理供電局 云南 671000)
闡述網絡拓撲結構管理的重要性,對比幾種拓撲主動發現技術的優缺點,最終采用基于ICMP的拓撲主動發現技術分析網絡拓撲結構,列舉在電網廠站網絡分析中遇到的難點并給出雙網口設備唯一識別、防火墻與隔離裝置等邊界設備識別與多區域拓撲合成等問題的解決方案,并且通過應用測試給出了分析總結。
拓撲發現;主動發現;邊界設備識別;多區域拓撲合成
在進行網絡故障分析與排除時,真實的網絡拓撲結構對于分析來說非常的重要,它對運維人員的日常設備檢測起到不錯的輔助作用。同時,因運維人員更替時常導致資產臺賬管理不清問題,主動發現網絡拓撲技術能夠在短時間內使管理人員了解現階段網絡設備的情況,有助于資產的清點、設備的故障分析與排除。當前主流的以設備為核心的拓撲結構有:樹型拓撲結構、胖樹拓撲結構[1]以及VL2拓撲結構等,而以服務器為中心的拓撲結構主要有:FiCoon拓撲結構以及DCell拓撲結構等。
精確全面的網絡拓撲對于資產發現、故障處置分析、故障定位等工作,起著非常重要的輔助作用,一直是網絡運維工作中的重點。目前,電力監控系統網絡特別是廠站網絡,歷史投運設備多且分區隔離管理,這給網絡拓撲自動管理帶來難度,主要是通過人工進行臺賬和拓撲維護。人工排查網絡拓撲帶來的問題如下:一是排查時間長效率低,人員需要對照臺賬,逐一排查分析;二是排查過程判斷條件多且復雜,要求網絡運維人員具有較高的專業知識與經驗;三是排查結果不形象直觀,排查結果需要人工繪制拓撲,期間的理解、記憶與繪制過程費時費力。
(1)基于ICMP與UDP協議的拓撲主動發現技術
ICMP協議在網絡中主要作用是主機探測、路由維護、路由選擇和流量控制[2],此主要網絡拓撲主動發現技術主要應用ICMP協議中的主機探測功能來實現存活設備的檢測。
首先,指明需檢測的IP地址范圍,對檢測范圍內所有的IP地址發送ICMP報文,根據報文的返回結果,將回顯結果中包含“TTL”關鍵詞的活躍IP地址記錄至存活IP隊列中。Traceroute是一種測量IP網絡拓撲的基本方法[3],Traceroute的原理是探測點向目標點發送跳限(hop limit)逐跳增加的ICMP或UDP報文[4],由每一個經過的路由器中返回的ICMP超時報文中的信息,獲取從探測點到目標點經過的所有路由器對應接口的IP地址,并記錄在路由表中,從此路由表中提取一個IP地址,以發出命令的測試機為出發點,通過TraceRoute操作,獲取測試機到目的IP地址之間包含的所有設備IP,并記錄到路由隊列中。重復上述步驟,直至存活IP隊列中的每一個IP地址都操作完畢。接下來對IP隊列中每一個IP地址發送特定的報文,從回復報文中獲取該IP地址所歸屬的網段。將所得結果進行分析對照,將屬于同一路由器的不同IP地址合并,從而得到最終的網絡拓撲結構。此算法理論上來說簡單易操作,適用性高,在發現拓撲結構的同時,還能夠檢測存活的網絡設備與主機。
它的不足在于ping命令檢測的方式單一,如果兩臺設備之間能夠互相ping通,只能保證兩臺設備之間至少存在對應的一條物理連接,而無法獲取這兩臺設備之間經過的設備有哪些。雖然基于TraceRoute命令,能夠獲取經過路由器接口的IP地址,但獲取的路由表不能夠直觀地表現出探測設備與目的設備之間的連線關系。同時由于檢測的IP地址是一個范圍,其中可能包含著大量無用的IP地址,篩選存活的IP會需要對檢測范圍內每一個IP地址進行ping與TraceRoute操作,時間的開銷和系統的開銷與選定的地址范圍成正比,因此該方法檢測所花費的時間比較長。此外如果防火墻處于開啟狀態,那么防火墻會將ICMP的報文進行攔截,這就會認為禁ping而實際上存活的設備是死的,也就無法識別出準確的網絡拓撲結構。
UDP協議在通信前不需要先建立連接,它提供的是面向事務的、簡單不可靠信息傳送服務,具有資源消耗小,處理速度快的優點[5],且UDP沒有擁塞控制機制,不管網絡擁塞與否,都按照源站自身的能力以不變的速率發送報文[6],適合于一次傳輸少量數據,為了在給定的主機上能識別多個目的地址,同時允許多個應用程序在同一臺主機上工作并能獨立地進行數據包的發送和接收,雖然UDP協議數據包丟失會比較嚴重,但由于UDP不屬于連接型協議,它只能通過應用層來實現并保證數據傳輸的可靠性,因而具有資源消耗小,處理速度快的優點。對于ICMP協議發現不了的禁PING設備,可以通過UDP通信獲取其存活狀態,對于準確識別網絡拓撲有重要的作用。但是UDP報文沒有可靠性保證、順序保證和流量控制阻斷等,可靠性差。
(2)基于SNMP協議的拓撲主動發現技術
該方法是通過標準的SNMP(簡單網絡管理協議)[7]協議來實現的,通過讀取指定或者默認的路由器中的路由信息。采用廣度優先遍歷或深度優先遍歷整個網絡內的路由節點,從網絡中獲取有序的線性路由節點。將目的IP地址與子網掩碼進行邏輯與運算,獲取目的IP地址所在的網段,再通過判斷路由類型,確定連接的子網類型,從而獲取網絡中各設備之間的互聯關系,繪制網絡拓撲圖。此算法簡單易行,網絡設備發現效率高,網絡與系統開銷小,并且由于其簡單易實現的特性,已經在網絡管理領域成了標準,現在主流的網絡設備基本上都能夠對SNMP協議進行支持,因此SNMP協議在網絡層的拓撲發現中被廣泛地采用。使用SNMP的優點在于設備信息能夠隨著網絡的改變而及時更新,這樣能及時反映網絡的實時狀況。其不足是:但是該方法要求被監測的網絡設備必須支持SNMP協議[8]。同時,考慮到網絡安全方面,需要密碼來訪問管理信息庫,在不知道密碼的情況下就無法獲取到網絡連接的信息。
在電網廠站中,ICMP協議對應的設備端口通常是開放的,這對于基于ICMP協議主動拓撲發現[9]技術來說非常重要,又由于檢測設備采用的是便攜式的終端設備,對檢測時間有著極高的忍耐性,此外對電網廠站設備的存活性掃描有助于故障設備的排查,因此采用基于ICMP協議的拓撲主動發現技術較為合適。
變電站監控主機、總控裝置通常具有兩個以上的網口,其IP地址與Mac地址就不是唯一的,當擁有雙網口的設備出現在網絡結構中,那么很有可能會將它識別成兩個不同的設備,通過簡單的IP識別已經無法滿足這種識別雙網口設備的特殊情況,因此,如何將這種擁有兩個網口的設備識別成一臺設備存在著技術上的難點。
該網絡拓撲自動發現的實現技術對設備版本信息的認知局限在一般主機的認知,像防火墻與隔離裝置這種特殊的設備,它們的版本信息在設備版本信息指紋庫中缺乏大量的相關信息,同時缺乏對變電站防火墻和隔離裝置的多次測試,使得根據已有的設備版本信息指紋庫很難去識別防火墻和隔離裝置設備。
一個變電站存在著多個區域,如一區、二區、三區等,每一個區域的檢測都需要更換測試機的IP地址,因此一次性生成整個變電站的拓撲很難實現,而單獨區域的拓撲對理解整個變電站網絡結構起著障礙作用。
(1)無法將擁有雙網口設備識別成唯一設備的解決方案
電網廠站的總控裝置、后臺監控機設備通常存在雙網口,盡管這些設備擁有兩個IP地址與MAC(Media Access Control)[10]地址,但是他們的設備版本信息中包含的操作系統類型與操作系統的版本號、開放端口、主機名稱、廠商的信息是一致的。首先,掃描當前區域的所有設備信息,其中包含IP地址、操作系統等設備版本信息,基于開放的端口獲取操作系統類型與版本號、主機名稱,通過操作系統類型與版本號又可以獲取廠商信息,將這些設備信息進行數據比對,憑借這些設備信息一致或相似很高,判斷為一臺設備。解決方案的流程圖如圖1所示

圖1 雙網口唯一識別流程圖
(2)防火墻、隔離裝置等邊界設備不易識別及多區域拓撲合成的解決方案
對于電網廠站的隔離裝置和防火墻設備的識別,這需要根據多次現場防火墻與隔離裝置設備版本信息檢測的結果對比進行分析,得出相似的部分,將這些檢測結果記錄至設備版本信息指紋庫中,設備版本信息的識別主要依賴于設備版本信息指紋庫,而其中指紋庫記錄對應設備的版本信息。又由于電網廠站所有的防火墻和隔離裝置設備的廠家信息相對較少和固定,因此可以基于這個相似部分來識別出電網廠站的防火墻與隔離裝置設備。
一個變電站存在多個區域,因相鄰區域無法直接通信,且測試機在不同的區域中,需要更換IP地址、子網掩碼和網關,最好的解決方式是將不同區域的拓撲,選擇實現拓撲合并。通過系統中的拓撲合成功能,選中需要合成的拓撲圖,系統會依據選中的拓撲對應的版本號,將這些拓撲圖合并成一張完整的拓撲圖,相鄰區域之間用防火墻或隔離裝置等邊界設備來劃分不同區域,每一個邊界設備連接相鄰區域的最上層交換機或者路由器,來呈現出符合實際情況的拓撲圖。拓撲合成流程圖如圖2所示

圖2 邊界設備及拓撲合成流程圖
根據實際廠站測試的雙網口設備的效果圖如圖3所示:

圖3 雙網口設備連線樣式
圖4為隔離裝置的設備信息:

圖4 隔離裝置的設備信息
圖5為兩個不同區域的設備的拓撲圖合并的測試效果圖。
整體上來說,網絡拓撲主動發現技術能夠減少人工排查所帶來大量的時間耗費,提高運維人員的檢測效率,且此技術也能夠避免因現場實施導致的安全隱患問題,一個區域的網絡拓撲生成時間不會超過30分鐘,相比于人工方式,所耗費的時間和精力大大減少。此外,想要高速精確識別出具體的設備版本信息,需要大量的數據支撐,將這些數據對應的設備版本信息記錄在設備信息指紋庫中,當指紋庫中的數據量足夠龐大時,設備的版本信息檢測的精確度會進一步提升。

圖5 不同區域拓撲合成
[1]陳忠平,趙海娣.InfiniBand網絡胖樹路由算法分析[J].計算機工程與科學,2009,31(S1):50-51+72.
[2]杜樹杰.基于ICMP協議的Ping主機探測[J].計算機系統應用,2009,18(12):212-214.
[3]朱正一,陳鳴,王占豐.6Topo:一種測量IPv6網絡拓撲的新方法[J].小型微型計算機系統,2020,41(06):1209-1215.
[4]馬東雯,劉述,高強.基于Traceroute路徑的IPv6過渡元素識別策略[J].計算機工程與設計,2013,34(12):4120-4125.
[5]劉閱軍,閔新力,等.基于UDP協議的心電圖波形傳輸研究與實現[J].計算機應用與軟件,2016,33(01):65-67.
[6]袁凱,李俊娥,等.一種基于UDP的電力廣域保護系統可靠通信方法[J].自動化學報:1-13[2020-11-01].
[7]楊芳南,劉春.基于SNMP的應用進程監控系統研究與實現[J].北京交通大學學報,2016,40(05):35-39.
[8]曹文斌,陳國順,等.基于ICMP和SNMP的網絡設備監測技術[J].計算機工程與設計,2014,35(04):1152- 1155+1160.
[9]宋宇波,樊明,等.一種基于拓撲分析的網絡攻擊流量分流和阻斷方法[J].信息網絡安全,2020,20(03):9-17.
[10]張良,郝凱鋒.基于RSSI變化序列的MAC地址與目標匹配方法[J].系統仿真學報,2020,32(01):113-121.