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