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