【摘 要】提出一種適用于空管實際運行情況的網(wǎng)絡(luò)設(shè)備維護平臺,該平臺通過C#設(shè)計實現(xiàn),與此同時固化了常規(guī)交換機、路由器的相關(guān)命令。命令進行封裝入庫,通過SQL數(shù)據(jù)庫分級索引管理實現(xiàn)命令的快速檢索。與此同時,通過后臺cmd命令行的設(shè)計和修改可以實現(xiàn)對不同型號的交換機、路由器和防火墻等網(wǎng)絡(luò)設(shè)備的遠程維護。系統(tǒng)實現(xiàn)通過C/S模式,人機交互界面友好。
【關(guān)鍵詞】網(wǎng)絡(luò)設(shè)備維護;CMD;SQL;C#;空管
0.引言
隨著空管信息化的推進,網(wǎng)絡(luò)在空管業(yè)務(wù)運行、內(nèi)部辦公中所起的作用越來越大,網(wǎng)絡(luò)拓撲也日益復(fù)雜,交換機、路由器和防火墻等也逐日增多。另一方面,大量的網(wǎng)絡(luò)設(shè)備,型號不一,而且分散布置于各機房,甚至邊遠臺站。這對于技術(shù)維護人員來說無疑是一個繁重的維護工程。而型號的不一以及設(shè)備版本的升級更是造成網(wǎng)絡(luò)設(shè)備的技術(shù)維護更加復(fù)雜與繁瑣。本文提出一種適用于空管實際情況的網(wǎng)絡(luò)設(shè)備維護平臺,該平臺通過對新進設(shè)備的版本管理及命令維護,借助C#開發(fā)平臺visual2010設(shè)計提高技術(shù)維護效率和安全保障準確率,系統(tǒng)實現(xiàn)根據(jù)實際需要采用C/S模式。實踐證明,其在實際運行中能較好滿足工作需求。
1.系統(tǒng)總體設(shè)計
系統(tǒng)通過將不同型號、不同品牌的網(wǎng)絡(luò)設(shè)備的命令進行庫封裝管理,并給予其版本索引號,在SQL數(shù)據(jù)庫中進行輸入管理,相關(guān)的命令通過文本形式存儲于固定路徑下。而在檢索方面則分為多級管理,第一級檢索為型號檢索、第二級為版本檢索,第三級為命令分類檢索,第四級為命令檢索。通過分級檢索,系統(tǒng)實現(xiàn)了數(shù)據(jù)庫與檢索的快速結(jié)合,對提高檢索速度和實際功能實現(xiàn)性能有較大的提高。數(shù)據(jù)庫針對某一特定網(wǎng)絡(luò)設(shè)備進行檢索,找到匹配的命令及相關(guān)操作功能,系統(tǒng)向遠端網(wǎng)絡(luò)設(shè)備進行命令指定發(fā)送,這個過程通過軟件中應(yīng)用系統(tǒng)cmd命令模塊,并將返回信息進行簡易存儲。最后在存儲信息的文檔中提取相應(yīng)狀態(tài)信息并對應(yīng)顯示在軟件界面中。實現(xiàn)則通過C#中的正則表達式進行匹配提取,實驗證明這種方式可以滿足實際應(yīng)用需求。而對于命令庫的入庫管理、網(wǎng)絡(luò)設(shè)備版本型號管理、狀態(tài)信息與界面顯示樣式,系統(tǒng)提供了多種可供選擇的樣式和人機交互方式,為系統(tǒng)的魯棒性及擴展性提供支持。另外,系統(tǒng)還提供模塊化維護管理以及系統(tǒng)操作、告警日志,在不影響現(xiàn)行運行的情況下提高系統(tǒng)的維護性。這種設(shè)計一方面簡化了技術(shù)保障人員的操作和日常維護,另一方面為后續(xù)安全事件調(diào)查提供數(shù)據(jù)支持。
2.相關(guān)模塊設(shè)計簡介
2.1 C#實現(xiàn)cmd命令
在軟件設(shè)計上分別對該模塊進行分子模塊設(shè)計。分別為調(diào)用命令函數(shù)模塊和執(zhí)行模塊。其中調(diào)用命令模塊提供了命令輸入接口,在實際工作中,命令輸入接口將提供與網(wǎng)絡(luò)設(shè)備的維護命令庫進行對接并返回相應(yīng)的信息。在C#中可以由如下實現(xiàn):
Private string CMD(string CMD)
{
process.StartInfo.CreateNoWindow=true;
process.StartInfo.FileName=\"cmd.exe\";
process.StartInfo.UseShellExecute=1;
process.StartInfo.RedirectStandardError=true;
process.StartInfo.RedirectStandardInput=true;
process.StartInfo.RedirectStandardOutput=true;
process.Start();
process.StandardInput.WriteLine(CMD);
process.StandardInput.WriteLine(\"exit\");
string outString=proessc.StandardOutput.ReadToEnd();
process.Close();
return outString;
}
其中process為系統(tǒng)定義的進程,可以在系統(tǒng)初始化中進行設(shè)置。其中string CMD則為網(wǎng)絡(luò)設(shè)備維護的cmd遠程命令,在系統(tǒng)工作過程,只需要將數(shù)據(jù)庫命令庫中的命令以字符串的方式傳入string CMD便可實現(xiàn)系統(tǒng)的維護,設(shè)計簡潔可行。另一方面,在另一模塊系統(tǒng)提供了對出了CMD命令的其他軟件接口調(diào)用在C#中實現(xiàn)有:
public void RunProgram(string programName)
{
this.RunProgram(programName,\"\");
}
2.2對信息的處理
根據(jù)文獻[2],系統(tǒng)對于上述配置文件的文本進行正則表達式匹配,提取出有用的版本信息,系統(tǒng)根據(jù)版本信息進行不同版本的設(shè)備的不同命令庫調(diào)用。調(diào)用命令庫后針對性根據(jù)C#對cmd處理模塊進行處理,并與此返回系統(tǒng)的維護信息。對于返回的信息,系統(tǒng)通過正則表達式匹配也可以提取出相關(guān)的狀態(tài)信息,并對應(yīng)于數(shù)據(jù)庫中的狀態(tài)函數(shù)進行狀態(tài)的顯示。如在H3C交換機中首先調(diào)用一級命令庫中H3C的執(zhí)行命令display version(華為dis version,思科show version),獲取版本號,并以C#正則表達式進行版本信息提取版本號。
Regex reg1=new Rgex(\"(?i)(?<=[H3C]=\\")[^\\"]*(?=\\")\");
MatchCollection mc1=reg1.Matches(str);
System.Collections.ArrayList ar1=new Sys-tem.Collections.ArrayList();
foreach (Match m in mc1)
{
ar1.Add(m.Value);
}
并在此基礎(chǔ)上通過數(shù)據(jù)庫cmd命令查詢,找尋其對應(yīng)的命令庫與cmd執(zhí)行模塊進行對接。
3.結(jié)語
本文提出一種簡易實現(xiàn)的網(wǎng)絡(luò)設(shè)備維護平臺,該平臺通過后臺cmd命令庫的設(shè)計與管理,借助C#快速實現(xiàn)了對版本配置文件的正則匹配并進行庫調(diào)用,實現(xiàn)了對大型復(fù)雜網(wǎng)絡(luò)設(shè)備的遠程監(jiān)控與管理。系統(tǒng)通過C/S模式實現(xiàn)了適用于空管實際運行的網(wǎng)絡(luò)設(shè)備維護,系統(tǒng)在提高日常維護工作效率上具有顯著的作用。
【參考文獻】
[1]趙良敏.Harris20-20程控交換機的維護和管理[J].機電信息,2011(21).
[2]曾培彬,高升秋.基于Web信息處理的機位信息融合設(shè)計與實現(xiàn)[J].中國民航飛行學院學報,2014(05).
[3]黃公彝.路由和交換設(shè)備的安全管理方法[J].通信技術(shù),2008(11).