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