安學(xué)民,么利中,楊尉薇
(國(guó)網(wǎng)山西省電力公司電力科學(xué)研究院,山西 太原 030001)
隨著電力企業(yè)信息化建設(shè)的不斷推廣,企業(yè)內(nèi)部的大部分事務(wù)(如財(cái)務(wù)報(bào)銷(xiāo)、用車(chē)申請(qǐng)、值班管理、通知公告、公文等)均依賴(lài)企業(yè)局域網(wǎng)來(lái)承載,每個(gè)員工均需要接入局域網(wǎng),因此網(wǎng)絡(luò)設(shè)備的數(shù)量較多。隨著企業(yè)規(guī)模的不斷擴(kuò)大,企業(yè)局域網(wǎng)的規(guī)模也不斷擴(kuò)大。如何高效管理大量的網(wǎng)絡(luò)設(shè)備,成為網(wǎng)絡(luò)管理員必須面對(duì)的問(wèn)題。
電力企業(yè)信息化的快速發(fā)展,使信息系統(tǒng)的基礎(chǔ)性、全局性作用越來(lái)越強(qiáng)。信息化給電力企業(yè)帶來(lái)便利的同時(shí),病毒感染、黑客攻擊等極大地威脅著電力企業(yè)的網(wǎng)絡(luò)安全與應(yīng)用安全。電力企業(yè)從2008年起,逐步開(kāi)始實(shí)施了“雙網(wǎng)雙機(jī)”和“分區(qū)分域”工程,實(shí)現(xiàn)了信息內(nèi)網(wǎng)和信息外網(wǎng)的物理隔離,網(wǎng)絡(luò)設(shè)備的數(shù)量也隨之成倍增加。對(duì)供電公司來(lái)說(shuō),網(wǎng)絡(luò)設(shè)備主要分布在公司本部信息機(jī)房、各樓層配線間以及直屬單位、變電站、營(yíng)業(yè)所等地方,其中接入交換機(jī)所占比例較大。對(duì)于地市級(jí)的供電公司,網(wǎng)絡(luò)設(shè)備的數(shù)量已超過(guò)100臺(tái)。由于電力企業(yè)網(wǎng)絡(luò)的分期建設(shè)以及集中采購(gòu)國(guó)產(chǎn)化的要求使得企業(yè)內(nèi)部網(wǎng)絡(luò)設(shè)備的品牌較多。
網(wǎng)絡(luò)管理員日常運(yùn)維中經(jīng)常處理的問(wèn)題包括:定期登錄到每臺(tái)網(wǎng)絡(luò)設(shè)備對(duì)其配置進(jìn)行備份;根據(jù)公司信息安全管理的要求,登錄到所有網(wǎng)絡(luò)設(shè)備上對(duì)設(shè)備的配置進(jìn)行安全加固;網(wǎng)絡(luò)設(shè)備超過(guò)保修期后,逐臺(tái)登錄到網(wǎng)絡(luò)設(shè)備上查看并記錄每臺(tái)設(shè)備的序列號(hào),提供給維修保護(hù)廠家;由于企業(yè)的業(yè)務(wù)擴(kuò)展,新增辦公場(chǎng)所,需要逐臺(tái)配置網(wǎng)絡(luò)設(shè)備。對(duì)于大部分網(wǎng)絡(luò)設(shè)備,網(wǎng)絡(luò)管理員登錄到設(shè)備后修改配置的方法是類(lèi)似的,大部分時(shí)間都耗費(fèi)在登錄網(wǎng)絡(luò)設(shè)備的過(guò)程(輸入IP地址、用戶(hù)名、口令、超級(jí)口令)、配置命令輸入過(guò)程、配置命令輸入后的等待時(shí)間及命令執(zhí)行完成后相關(guān)信息的導(dǎo)出時(shí)間等。因此,日常運(yùn)維中網(wǎng)絡(luò)設(shè)備的操作大部分為重復(fù)性操作,占用大量的時(shí)間,效率很低。
根據(jù)對(duì)網(wǎng)絡(luò)設(shè)備操作過(guò)程的分析,工程技術(shù)人員利用登錄軟件結(jié)合腳本來(lái)對(duì)操作過(guò)程進(jìn)行模擬,代替網(wǎng)絡(luò)管理員登錄到網(wǎng)絡(luò)設(shè)備,輸入相應(yīng)的命令,提取需要的信息。本文以C#、SecureCRT結(jié)合VBScript為例,實(shí)現(xiàn)批量配置網(wǎng)絡(luò)設(shè)備。
SecureCRT是網(wǎng)絡(luò)管理員常用的工具軟件之一 , 它 支 持 SSH1、 SSH2、 Telnet、 Telnet/SSL、Rlogin、Serial、TAPI等多種協(xié)議的終端仿真程序,是管理網(wǎng)絡(luò)設(shè)備較為理想的工具。該軟件提供了豐富的圖形化操作方法,并提供了1套Active接口,方便了網(wǎng)絡(luò)管理員通過(guò)程序?qū)崿F(xiàn)自動(dòng)化操作[1]。
SecureCRT支持VBScript、JScript腳本語(yǔ)言,可自動(dòng)解釋執(zhí)行腳本指令與路由器進(jìn)行交互執(zhí)行,路由器根據(jù)腳本指令完成相應(yīng)的操作任務(wù)[2]。SecureCRT提供的ActiveX接口的結(jié)構(gòu)圖見(jiàn)圖1[1]。
圖1 ActiveX結(jié)構(gòu)圖
圖1中Application Object提供了所有的SecureCRT對(duì)象的屬性和方法,它屬于頂級(jí)對(duì)象;Session Object提供了當(dāng)前與遠(yuǎn)程服務(wù)器端的連接和會(huì)話信息的狀態(tài)和屬性;Screen Object提供了終端界面的信息訪問(wèn)的方法與屬性;Window Object提供了訪問(wèn)SecureCRT窗口的信息和狀態(tài)等信息;Dialog Object提供了一些自定義對(duì)話框的對(duì)象和方法;Arguments Object是通過(guò)命令行方式啟動(dòng)SecureCRT程序的參數(shù)對(duì)象。文中主要用到Session Object、Screen Object 2個(gè)對(duì)象中的7個(gè)屬性。
a)crt.session.LogFileName返回或設(shè)定當(dāng)前的Log名字。
b)crt.session.Log啟用或者不啟用Log信息。
c)crt.session.Connect連接遠(yuǎn)程服務(wù)器。
d)crt.session.DisConnect斷開(kāi)遠(yuǎn)程服務(wù)器。
e)crt.Screen.Synchronous設(shè)置是否同步。
f)crt.Screen.Send發(fā)送命令。
g)crt.Screen.WaitForString等待某一個(gè)字符串。
VBScript(Microsoft’s Visual Basic Scripting Edition)是一種強(qiáng)大的解釋型腳本語(yǔ)言,它可以用于客戶(hù)端和服務(wù)端等多種環(huán)境。VBScript是Visual Basic(VB) 的一個(gè)子集,它有Visual Basic的所有優(yōu)勢(shì),同時(shí)又無(wú)需龐大的集成開(kāi)發(fā)環(huán)境IDE(Integrated Development Environment),也無(wú)需花錢(qián)購(gòu)買(mǎi)軟件。VBScript是一種腳本語(yǔ)言,不是程序設(shè)計(jì)語(yǔ)言[3]。
VBScript的主要特點(diǎn)有語(yǔ)法簡(jiǎn)單,執(zhí)行效率高(解釋執(zhí)行);多種嵌入形式(內(nèi)嵌式和外聯(lián)式);嵌入方式簡(jiǎn)單。
日常運(yùn)行維護(hù)工作中對(duì)網(wǎng)絡(luò)設(shè)備的人工操作步驟為:輸入網(wǎng)絡(luò)設(shè)備的IP地址;輸入用戶(hù)名及密碼;輸入超級(jí)口令;根據(jù)工作需要,輸入相應(yīng)的命令并執(zhí)行;根據(jù)工作需要記錄相應(yīng)的回顯信息(可選);退出登錄;輸入下一網(wǎng)絡(luò)設(shè)備的IP地址,循環(huán)執(zhí)行步驟,直到所有設(shè)備均執(zhí)行完畢。圖2給出了人工操作網(wǎng)絡(luò)設(shè)備流程。
圖2 人工操作網(wǎng)絡(luò)設(shè)備流程
3.2.1 創(chuàng)建IP地址和用戶(hù)名及密碼文本文件
創(chuàng)建文本文件的目的是:自動(dòng)登錄網(wǎng)絡(luò)設(shè)備時(shí),根據(jù)此文本文件提取網(wǎng)絡(luò)設(shè)備的登錄信息(IP地址、登錄名、登錄口令、超級(jí)口令);網(wǎng)絡(luò)設(shè)備的配置存在差異時(shí)(如修改網(wǎng)絡(luò)設(shè)備的密碼且每個(gè)網(wǎng)絡(luò)設(shè)備的密碼均不相同),根據(jù)該文本文件可提取相應(yīng)的命令參數(shù)。
如文本框所示,創(chuàng)建一個(gè)“.txt”文檔,命名為“devicelist.txt”。此文檔每行由兩部分?jǐn)?shù)據(jù)組成,分別為登錄信息(IP地址、登錄名、登錄口令、超級(jí)口令);命令參數(shù)。每行的各數(shù)據(jù)之間均由空格鍵進(jìn)行分隔。
3.2.2 創(chuàng)建VBScript腳本文件
圖3 自動(dòng)操作網(wǎng)絡(luò)設(shè)備腳本流程圖
3.2.2.1 標(biāo)識(shí)腳本類(lèi)型
SecureCRT支持VBScript和Jscript的調(diào)用,所以在調(diào)用其ActiveX接口時(shí),首先要標(biāo)識(shí)所使用的語(yǔ)言和ActiveX的版本號(hào),腳本頭部的每一行必須以“#”開(kāi)頭,頭部包括$language行和$interface行[1]。
本文所述方法采用VBScript,標(biāo)注格式為
#$language= “VBScript”
#$interface=“1.0”
3.2.2.2 腳本主體
讀取及分離參數(shù)。首先定義變量,然后對(duì)定義的變量進(jìn)行賦值,相應(yīng)的腳本及注釋為
Dimfso,file1,line,str1,params‘定義變量
Set fso=CreateObject(“Scripting.FileSystemObject”)‘創(chuàng)建 FSO 對(duì)象
Setfile1=fso.OpenTextFile(“D∶data_inputdeviclist.txt”,F(xiàn)orreading,F(xiàn)alse)‘讀取指定路徑的文本文件
line=file1.ReadLine‘讀出文檔中的每行
params=Split(line)‘分離出每行的參數(shù)信息
自動(dòng)登錄網(wǎng)絡(luò)設(shè)備并執(zhí)行命令。用循環(huán)和ReadLine方法遍歷文件,每次讀取一行數(shù)據(jù),然后逐行地處理。以H3C網(wǎng)絡(luò)設(shè)備為例(其他網(wǎng)絡(luò)設(shè)備的操作只需替換相應(yīng)的操作命令即可),相應(yīng)的腳本及注釋為以下幾個(gè)過(guò)程。
以上腳本以查看網(wǎng)絡(luò)設(shè)備的序列號(hào)為例進(jìn)行說(shuō)明。本方法運(yùn)用到日常運(yùn)維管理其他工作時(shí)需要對(duì)b)的內(nèi)容進(jìn)行調(diào)整。編寫(xiě)腳本時(shí)需要先在一個(gè)設(shè)備上進(jìn)行操作,并對(duì)操作過(guò)程輸入的命令及網(wǎng)絡(luò)設(shè)備的回顯信息進(jìn)行記錄,以便編輯腳本,自動(dòng)執(zhí)行相應(yīng)的操作命令。
3.2.3 根據(jù)不同品牌的網(wǎng)絡(luò)設(shè)備創(chuàng)建相應(yīng)的腳本文件
由于企業(yè)內(nèi)部的網(wǎng)絡(luò)設(shè)備品牌較多,不同的網(wǎng)絡(luò)設(shè)備有不同的操作系統(tǒng)(如華為設(shè)備的操作系統(tǒng)為VRP(Versatile Routing Platform),H3C設(shè)備的操作系統(tǒng)為Comware,Cisco的設(shè)備的操作系統(tǒng)為IOS(Internetwork Operating System)),配置命令也不相同,因此需要根據(jù)企業(yè)中網(wǎng)絡(luò)設(shè)備品牌的具體情況,編寫(xiě)不同的腳本。
3.2.4 利用C#編程調(diào)用SecureCRT執(zhí)行VBScript腳本
3.2.4.1 SecureCRT中執(zhí)行VBScript腳本
SecureCRT中腳本的執(zhí)行路徑見(jiàn)圖4。
圖4 執(zhí)行腳本文件的路徑截圖
3.2.4.2 C#調(diào)用SecureCRT執(zhí)行VBScript腳本。
為提高本方法的可移植性,便于調(diào)用SecureCRT軟件,可將SecureCRT的軟件包放至該方法的程序包中;將編譯好的VBScript腳本放至“VBS”文件夾中(腳本的數(shù)量取決于局域網(wǎng)中網(wǎng)絡(luò)設(shè)備的品牌數(shù)量);將網(wǎng)絡(luò)設(shè)備的“IP地址、用戶(hù)名及密碼文本文件”放至“data_input”文件夾中;將VBScript腳本的輸出文件路徑指定到“data_output”文件夾中,見(jiàn)圖5。利用C#編程首先打開(kāi)SecureCRT軟件包文件夾運(yùn)行SecureCRT程序,在SecureCRT中順序執(zhí)行“VBS”文件夾中所有的腳本文件,程序運(yùn)行完畢后會(huì)在“data_output”文件夾中產(chǎn)生相應(yīng)的日志文檔,記錄腳本執(zhí)行過(guò)程中的數(shù)據(jù)的交互情況。
圖5 腳本相關(guān)的程序包文件夾
利用批量配置網(wǎng)絡(luò)設(shè)備的方法在國(guó)網(wǎng)山西省電力公司電力科學(xué)研究院信息內(nèi)外網(wǎng)進(jìn)行了相關(guān)的驗(yàn)證測(cè)試。利用常規(guī)方法備份信息內(nèi)外網(wǎng)絡(luò)設(shè)備(大約60臺(tái))需要3 h左右;利用本方法僅用6 min就完成了該項(xiàng)工作。
通過(guò)利用C#調(diào)用登錄軟件結(jié)合腳本的方法,實(shí)現(xiàn)了網(wǎng)絡(luò)設(shè)備的批量自動(dòng)登錄,并對(duì)網(wǎng)絡(luò)設(shè)備進(jìn)行配置,明顯提高了網(wǎng)絡(luò)設(shè)備管理的效率,對(duì)于網(wǎng)絡(luò)設(shè)備數(shù)量大且設(shè)備品牌較多的單位效果更好。
[1] 張斌.精通QTP與自動(dòng)化測(cè)試框架設(shè)計(jì)實(shí)戰(zhàn)[M].北京:人民郵電出版社,2010:228-241.
[2] 汪玲敏,陳兵.利用VBScript腳本功能提高信息網(wǎng)絡(luò)日常維護(hù)工作效率[J].電腦知識(shí)與技術(shù),2013,9(2):420-422.
[3] Adrian Kingsley-Hughes,Kathie Kingsley-Hughes,Daniel Read.VBScript程序員參考手冊(cè)[M].3.富弘毅,陳鋼,譯.北京:清華大學(xué)出版社,2009:31-43.