謝大海,王 勇,周 泉,盧 峰
(國網合肥供電公司,安徽 合肥 230022)
交換機是信息網絡的重要組網設備,也是終端用戶的基本接入設備。信息網絡的安全管理、資源管理都必須以交換機為切入點,管理、核對與修改這些配置文件,是基礎運維的重要工作。由于不同廠商、品牌和型號的差異,導致交換機配置文件的格式以及采集配置文件的操作都存在不同程度的差異。
國網安徽省電力有限公司合肥供電公司的信息運維人員,對交換機配置文件自動采集及分析進行研究。
目前,在交換機管理方面,市面上有很多成熟系統,有的側重于網絡運行分析,有的側重于終端客設備管理,有的側重于拓撲結構管理,有的側重于服務器類設備,適用于基礎運維人員的,適應不同品牌交換機的分析系統相對較少,且費用高昂,從而為自主研究提供了可行性[1]。
北塔(Before Trouble Network Manager,簡稱BTNM)是上海北塔軟件股份有限公司基于Windows操作系統開發的信息網絡運維軟件。該軟件通過收集與業務/服務相關的各種信息:網絡設備信息、全網流量信息、服務器內存、I/O的使用情況,以圖形化呈現拓撲視圖。
優爾準入系統主要采用地址解析協議(ARP)分析、流量分析等技術,建立終端識別指紋庫,通過終端的身份鑒別,有效阻止非法終端的隨意接入,實現網絡透視功能和終端快速定位功能,輔助網絡運維管理。
還有,以Zabbix為代表的一系列國外引進系統,比如:Cacti、Nagios等,大多是英文界面,功能強大,但不適應中文環境。
目前交換機通用連接協議有3個,分別是Telnet,SSH1和SSH2。
(1)Telnet是基于TCP/IP連接的遠程訪問協議,其明文傳輸一直是該協議的詬病,安全性得不到保證。
(2)SSH是替代Telnet的行業標準,提供了多種加密方式,還可以為ftp、pop甚至ppp提供一個安全的“通道”。SSH協議的初期版本為SSH1,又可分為1.3和1.5兩個主要版本。SSH1采用DES、3DES和RC4等對稱加密算法保護數據安全傳輸,而對稱加密算法的密鑰是通過非對稱加密算法(RSA)來完成交換的[2]。該協議還使用循環冗余校驗碼(CRC)來保證數據的完整性。
(3)SSH2協議修補了CRC的缺陷,采用數字簽名算法(DSA)和密鑰交換算法(Diffie-Hellman,簡稱DH)密鑰交換算法來代替非對稱加密算法(RSA),完成對稱密鑰的交換,用消息證實代碼(HMAC)來代替循環冗余校驗碼(CRC)。同時SSH2增加了高級加密標準(AES)和雙魚區塊加密算法(Twofish)等對稱加密算法。
目前,SSH2已經成為交換機連接控制的通用協議。
在了解交換機的連接協議后,開始對自動采集的研究。理論上可以用任何編程語言或任何操作系統來實現應用系統的開發。按照開發人員的個人知識結構和編程經驗,選擇用Java語言來作為開發語言,IntelliJ IDEA為開發環境,MY SQL數據庫為數據存儲后臺,操作系統選用Windows。本文一些代碼舉例也將以Java語言為主。
應用系統與交換機的數據傳輸,以流的方式進行,Java語言所有的流類位于java.io包中,都分別繼承4種抽象流類型,分別是輸入字節流InputStream、輸入字符流Reader、輸出字節流OutputStream、輸出字符流Writer。采用Java語言數據流的循環讀取技術,獲取交換機反饋的信息。
根據交換機實際情況,采用智能判斷技術,雖然增加了代碼量和編寫代碼的難度,但是這一技術實現了登錄協議的自動選擇[3],減少了人工操作,提高了登錄效率[2-3]。
Telnet協議采用Apache組織發布的Telnet開發包。SSH2協議采用JCraft公司的jsch包。因為本公司還有一些老舊交換機運行,因此保留了SSH1協議連接方式,采用MindTerm組件,該組件較為罕見,2010年左右停止更新。
在定義了3種不同的登錄協議后,結合Socket對象,判斷端口的開通情況,然后嘗試登錄,并選擇適合的協議開展登錄。
針對不同交換機和獲取參數的需求,列出主要命令。
各個生產廠家和型號版本的差異,有的交換機有連續顯示功能,有的交換必須分頁顯示。
獲取提示符的原理,是輸入一個回車,然后獲取返回文本,接著對文本進行分析,從而獲得提示符。
交換機配置文件的分析,其實就是對采集文本的分析,大多是文本處理,這里僅給出3個容易忽略的關鍵點。
在分析MAC地址類型時,除了“動態”、“靜態”之外,少量交換機有“BlackHole(黑洞)”類型,在此加以區分。
中興交換機的配置文件與華三、華為系列不同,用分段標志把配置文件分成若干段,可以根據分段標志,截取需要的段落,進行分析。
在研究過程中發現有的交換機,型號和主版本相同,僅小版本有細微不同,其配置文件差異卻很大,影響了數據分析。比如:某品牌S2352P-EI型號交換機的5.70(V100R005C01)版本和5.70(V100R006C03)版本。這兩類交換機的版本差異很小,但是MAC表卻存在很大差別,系統在處理MAC表時,要加以區分。
(1)研究開發了一套完整的應用系統,該系統可以自動循環處理所有交換機,也可以手動處理部分交換機,并將采集到的配置文件保存在數據庫中;通過分析配置文件,生成3份表格,包括交換機信息、端口信息、MAC信息;最后將這些數據,應用在交,換機管理、端口識別等工作上,加快了故障判斷的準確率,提高了工作效率。
(2)對電力信息網中,交換機配置文件的自動采集及分析進行了研究,比如:版本號的細微差別、輸入輸出流的等待時隙、端口名稱的規范和識別、Java語言系統后臺自動運行機制等,在公司信息運維主業化建設上有著深遠的意義。
(3)本文研究僅局限于采集和分析這兩方面,相同的原理和技術手段,也可以開展交換機配置文件的寫入工作。通過進一步提升,可以實現交換機類設備的全自動運維。這將是信息運維自動化研究的提升方向。
(4)通過這一研究,國網合肥供電公司積累了豐富的經驗、成果和資料,可以推廣至各個相關企業或行業,共同交流。各單位可以合作,針對市場上不同品牌、不同系列的交換機,建立一個龐大的基礎資料庫,和操作模板庫,基礎資料庫為計算機自動分析提供依據,而操作模板庫可以為自動操作提供參考。